127.0.0.1: บ้านเลขที่อมตะ... แต่ทำไมต้องเป็นเลข 127?
สำหรับชาว IT ไม่ว่าจะสาย System, Network หรือ Developer ไม่มีใครไม่รู้จักคำว่า localhost หรือ IP Address 127.0.0.1 มันคือเลขมหัศจรรย์ที่เราเอาไว้ปิง (ping) เช็คสถานะการ์ดแลน หรือเอาไว้เปิดหน้าเว็บเทสระบบภายในเครื่องตัวเองก่อนอัปเดตขึ้นระบบจริงให้ลูกค้า
แต่เคยสงสัยกันไหมครับว่า ในบรรดาหมายเลข IPv4 ที่มีอยู่ตั้ง 4 พันล้านเลข ทำไมคณะทำงานยุคบุกเบิกอินเทอร์เน็ต (IETF) ถึงเลือกเอาเลข 127 มาทำเป็น Loopback Address? ทำไมไม่ใช้ 1.1.1.1 หรือ 0.0.0.0? วันนี้เราจะมาถอดรหัสวิชาการปนความฮาเรื่องนี้กันครับ
1. ย้อนรอยความขี้เกียจในอดีต
The History: ย้อนกลับไปในช่วงปี 1981 ตอนที่มีการกำหนดโครงสร้างคลาสของ IP Address (Classful Network) เลข IP คลาส A จะเริ่มต้นตั้งแต่
1.0.0.0ไปจนถึง127.0.0.0The Reality: ในตอนนั้น วิศวกรระบบต้องการเลขสักชุดหนึ่งเอาไว้ให้คอมพิวเตอร์ "คุยกับตัวเอง" เพื่อทดสอบระบบภายใน (Internal Testing) โดยไม่ต้องส่งแพ็กเก็ตออกไปนอกสายแลน และเนื่องจากคลาส A ตัวสุดท้ายคือ 127 พวกเขาเลยคิดว่า "งั้นเอาเลข 127 ทั้งคลาสเนี่ยแหละ เก็บไว้ทำ Loopback!"
ความฮาในความสูญเปล่า: คุณลองคิดดูนะครับ คลาส A หนึ่งคลาส มีจำนวน IP Address มหาศาลถึง 16,777,216 หมายเลข! (ตั้งแต่
127.0.0.0ไปจนถึง127.255.255.255) แต่ทุกวันนี้เราใช้กันจริงๆ แค่127.0.0.1ตัวเดียว! ส่วนอีก 16 ล้านเลขที่เหลือ... ถูกทิ้งไว้ให้ระลึกถึงความใจป้ำของคนยุคก่อนครับ!
[ IPv4 Class A Pool ]
├── 1.0.0.0 (ใช้งานทั่วไป)
├── 2.0.0.0 (ใช้งานทั่วไป)
└── 127.0.0.0 ───► [ Loopback Block: 16.7 ล้านเลข! ]
├── 127.0.0.1 <-- ตัวตึงที่แอดมินใช้ทุกวัน
└── 127.9.9.9 <-- อยู่คุยกับตัวเองเงียบๆ ไม่มีใครคบ
2. พิสูจน์ทฤษฎี: ลองคุยกับตัวเองในเลขอื่นดูไหม?
หลายคนคิดว่าในเครื่องเรามีแค่ 127.0.0.1 เท่านั้นที่ใช้งานได้ วันหยุดเหงาๆ แบบนี้ คุณลองเปิดหน้าจอ PowerShell ขึ้นมาแล้วลองรันคำสั่งนี้ดูครับ:
ping 127.9.9.9หรือping 127.55.66.77
ผลลัพธ์: มันจะ
Replyกลับมาปกติเหมือน127.0.0.1เป๊ะครับ! เพราะตามมาตรฐานเน็ตเวิร์กแล้ว คอมพิวเตอร์จะมองว่าเลขอะไรก็ตามที่ขึ้นต้นด้วย 127 คือตัวมันเองทั้งหมด ต่อให้พิมพ์เลขมั่วขนาดไหน แพ็กเก็ตก็ไม่หลุดออกไปนอกเครื่องครับ
💡 IT Tips: เคล็ดลับสลัดบักระบบเครือข่าย เมื่อ Localhost งอนแอดมิน
ในฐานะที่ต้องดูแลทั้งระบบหรือตั้งค่าผูกสคริปต์ PowerShell บางครั้งเราอาจจะเจออาการผีหลอก เช่น รันแอปพลิเคชันบนเครื่อง Server แล้วเรียกผ่าน localhost ไม่ขึ้น แต่เรียกผ่านไอพีจริงของเครื่อง (เช่น 192.168.x.x) กลับใช้งานได้ซะงั้น! เอาเทคนิคเช็คลิสต์ 2 ข้อนี้ไปสแกนดูครับ:
1. มหากาพย์ IPv6 แย่งซีน (::1)
ใน Windows Server รุ่นใหม่ๆ ระบบจะเปิดใช้งาน IPv6 เป็นค่ามาตรฐาน ซึ่งค่า Loopback ของ IPv6 คือ ::1 * The Bug: บางครั้งแอปพลิเคชันเก่าของลูกค้าที่เราไปช่วยทำเซ็ทอัพ พยายามจะวิ่งไปหา 127.0.0.1 (IPv4) แต่ Windows ดันแปลคำว่า localhost ให้กลายเป็น ::1 (IPv6) ส่งผลให้ระบบมองไม่เห็นกัน
The Fix: เข้าไปเช็คที่ไฟล์
hosts(C:\Windows\System32\drivers\etc\hosts) แล้วดูว่ามีการเอาเครื่องหมาย#ออกจากหน้าบรรทัด127.0.0.1 localhostหรือยัง เพื่อบังคับให้ระบบให้ความสำคัญกับ IPv4 ก่อนครับ
2. Proxy ตัวร้าย กับคำสั่งยกเว้น
หากองค์กรหรือเครื่องแล็บของคุณเลิศฤทธิ์มีการตั้งค่า Proxy ไว้สำหรับออกอินเทอร์เน็ตภายนอก บางครั้ง Proxy มันขยันเกินเหตุ แอบจับแพ็กเก็ตที่วิ่งเข้า localhost ส่งออกไปนอกโลกด้วย
The Solution: ตรวจสอบนโยบายใน Microsoft Intune หรือใน Settings ของเครื่องตรงหัวข้อ Proxy ชี้เป้าว่าต้องใส่คำว่า
localhost;127.0.0.1;<local>ไว้ในช่อง Bypass proxy server for local addresses เสมอครับ ไม่งั้นระบบภายในจะคุยกันไม่รู้เรื่อง
💡 สรุปส่งท้ายประจำวันหยุด
คำกล่าวที่ว่า "There is no place like 127.0.0.1" (ไม่มีที่ไหนสุขใจเหมือนบ้านเรา) ยังคงเป็นจริงเสมอในโลกไอทีครับ การเข้าใจเบื้องลึกของ Loopback Address ช่วยให้เราแยกแยะได้ว่า ปัญหาที่ระบบเชื่อมต่อไม่ได้ เกิดจากการ์ดเน็ตเวิร์กพัง โปรแกรมเพี้ยน หรือเป็นที่ระบบเน็ตเวิร์กภายนอกกันแน่
#ITTipsAndTricks #LoopbackAddress #Localhost #Network101 #SystemEngineer #IPv4History #InfrastructureManager #ITAdminLife #BloggerIT
Comments
Post a Comment