ข้อแตกต่างระหว่าง Locahost และที่อยู่ IP ในพื้นที่คืออะไร
หากคุณกำลังทำการเครือข่ายจำนวนมากกำหนดค่าแอพที่ใช้ LAN และเครื่องมือเซิร์ฟเวอร์หรืออยากรู้อยากเห็นคุณอาจสังเกตเห็นว่ามีความแตกต่างระหว่าง localhost ที่อยู่ IP ท้องถิ่น อ่านต่อไปเพื่อเรียนรู้ความแตกต่าง.
เซสชั่นคำถามและคำตอบในวันนี้มาถึงเราด้วยความอนุเคราะห์จาก SuperUser - แผนกย่อยของ Exchange Exchange ซึ่งเป็นกลุ่มที่ขับเคลื่อนด้วยชุมชนของเว็บไซต์ถาม - ตอบ.
คำถาม
ผู้อ่าน SuperUser Diogo ต้องการทราบว่าเหตุใดคำสั่ง ping จึงปฏิบัติต่อ localhost และที่อยู่ IP ในท้องถิ่นแตกต่างกันเมื่อปรากฏบนพื้นผิวพวกเขาดูเหมือนจะเป็นสิ่งเดียวกัน:
การใช้ cmd และ ping บน Windows ให้ผลลัพธ์ดังนี้:
ส่ง Ping“ localhost”:
ส่ง Ping ไปที่“ 192.168.0.10” (ที่อยู่ IP ในเครื่อง):
ทั้งสองสถานการณ์ไม่เหมือนกันทั้งหมด?
ฉันหมายถึงฉันกำลังกระตุกอินเทอร์เฟซเดียวกันเครื่องเดียวกันและที่อยู่เดียวกัน ทำไมฉันถึงได้ผลลัพธ์ที่แตกต่าง?
เห็นได้ชัดว่ามีความแตกต่างของการเรียงลำดับบางอย่าง แต่สิ่งที่เกิดขึ้นเมื่อคุณสลับระหว่างทั้งสอง?
คำตอบ
Tom Wijsman ผู้สนับสนุน SuperUser นำเสนอข้อมูลเชิงลึกเกี่ยวกับความแตกต่างที่ลึกซึ้งระหว่างสอง:
คุณไม่ได้กระตุกอินเทอร์เฟซเดียวกัน, ไม่มีอินเทอร์เฟซทางกายภาพใด ๆ คุณยังคงมี "โลคัลโฮสต์".
ของคุณ
localhost
ใช้เพื่ออ้างถึงคอมพิวเตอร์ของคุณจาก IP“ ภายใน” ไม่ใช่จาก IP“ ภายนอก” ของคอมพิวเตอร์ของคุณ ดังนั้นแพ็กเก็ต ping จึงไม่ผ่านส่วนต่อประสานเครือข่ายทางกายภาพใด ๆ ผ่านอินเทอร์เฟซวนกลับเสมือนซึ่งส่งแพ็กเก็ตโดยตรงจากพอร์ตไปยังพอร์ตโดยไม่ต้องใช้ฟิสิคัลฮ็อป.คุณยังอาจสงสัยว่าทำไม
localhost
กำลังแก้ไข:: 1
, ในขณะที่เราคาดว่ามันจะแก้ปัญหาที่อยู่ IPv4127.0.0.1
. สังเกตได้ว่า.localhost
เดิมเป็น TLD (ดู RFC 2606) ซึ่งชี้กลับไปที่ลูปแบ็คที่อยู่ IP (สำหรับ IPv4 ดู RFC 3330 โดยเฉพาะ 127.0.0.0/8).ค้นหา
localhost
การใช้nslookup
ให้เรา:
nslookup localhost
…ชื่อ: localhost ที่อยู่: :: 1 127.0.0.1
ดังนั้น Windows ต้องการใช้ที่อยู่ IP IPv6 วนกลับ
:: 1
(ดู RFC 2373) ตามที่แสดงไว้ก่อน.เอาล่ะมาจากไหนมาดูไฟล์โฮสต์กันดีกว่า.
พิมพ์% WINDIR% \ System32 \ Drivers \ Etc \ Hosts
… # localhost การจำแนกชื่อได้รับการจัดการภายใน DNS เอง # 127.0.0.1 localhost # :: 1 localhost …
อืมเราต้องดูการตั้งค่า DNS ของ Windows.
บทความ KB นี้บอกเราเกี่ยวกับการตั้งค่าที่มีผลต่อสิ่งที่ Windows ต้องการโดยเน้นเป็นตัวหนา:
- ใน Registry Editor ให้ค้นหาและคลิกที่คีย์ย่อยของรีจิสทรีต่อไปนี้:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip6 \ Parameters
- คลิกสองครั้งที่ DisabledComponents เพื่อแก้ไขรายการ DisabledComponents หมายเหตุ: หากรายการ DisabledComponents ไม่พร้อมใช้งานคุณจะต้องสร้างมันขึ้นมา โดยทำตามขั้นตอนต่อไปนี้:
- ในเมนูแก้ไขชี้ไปที่ใหม่แล้วคลิกค่า DWORD (32 บิต).
- พิมพ์ DisabledComponents แล้วกด ENTER.
- คลิกสองครั้งที่ DisabledComponents.
- พิมพ์ค่าใดค่าหนึ่งต่อไปนี้ในฟิลด์ข้อมูลค่า: เพื่อกำหนดค่าโปรโตคอล IPv6 ให้อยู่ในสถานะที่ต้องการแล้วคลิกตกลง:
- ชนิด
0
เพื่อเปิดใช้งานส่วนประกอบ IPv6 ทั้งหมด (การตั้งค่าเริ่มต้นของ Windows)- ชนิด
0xffffffff
เพื่อปิดการใช้งานส่วนประกอบ IPv6 ทั้งหมดยกเว้นส่วนต่อประสานย้อนกลับ IPv6 ค่านี้ยังกำหนดค่า Windows ให้นิยมใช้ Internet Protocol รุ่น 4 (IPv4) ผ่าน IPv6 โดยการแก้ไขรายการในตารางนโยบายคำนำหน้า สำหรับข้อมูลเพิ่มเติมดูที่การเลือกแหล่งที่มาและที่อยู่ปลายทาง.- ชนิด
0x20
เพื่อชอบ IPv4 มากกว่า IPv6 โดยการแก้ไขรายการในตารางนโยบายคำนำหน้า.- ชนิด
0x10
การปิดการใช้งาน IPv6 ในอินเทอร์เฟซแบบ nontunnel ทั้งหมด (บนทั้ง LAN และอินเตอร์เฟสแบบจุดต่อจุด [PPP]).- ชนิด
0x01
เพื่อปิดใช้งาน IPv6 ในทุกอินเทอร์เฟซทันเนล ซึ่งรวมถึงโปรโตคอลการกำหนดที่อยู่ของอุโมงค์อัตโนมัติภายในเว็บไซต์ (ISATAP), 6to4 และ Teredo.- ชนิด
0x11
เพื่อปิดใช้งานการเชื่อมต่อ IPv6 ทั้งหมดยกเว้นสำหรับการเชื่อมต่อวนกลับ IPv6.- รีสตาร์ทคอมพิวเตอร์เพื่อให้การตั้งค่านี้มีผล.
ตารางนโยบายคำนำหน้านี้คืออะไร?
ส่วนต่อประสาน netsh ipv6 แสดงคำนำหน้านโยบาย
(หรือprefixpolicy
ในรุ่นก่อนหน้า)คำนำหน้าฉลากก่อนหน้า ---------- ----- -------------------------------- 50 0 :: 1/128 45 13 fc00 :: / 7 40 1 :: / 0 10 4 :: ffff: 0: 0/96 7 14 2002 2002 :: / 16 5 5 2001 :: / 32 1 11 fec0 :: / 10 1 12 3ffe :: / 16 1 10 :: / 96
ตารางนี้ตัดสินว่าส่วนนำหน้าใดที่มีความสำคัญเหนือกว่าส่วนนำหน้าอื่น ๆ ในระหว่างการแก้ไข DNS.
อ่าใช้ KB ที่เราสามารถเพิ่มรายการที่นี่ซึ่งแสดงว่า IPv4 มีความสำคัญมากกว่า IPv6.
บันทึก: ไม่มีเหตุผลที่จะแทนที่พฤติกรรมนี้เว้นแต่ว่าคุณกำลังประสบปัญหาที่เข้ากันได้ การเปลี่ยนการตั้งค่านี้ใน Windows Server ของเราทำให้เมลเซิร์ฟเวอร์ของเราแตกหักดังนั้นจึงควรจัดการอย่างระมัดระวัง ...
ไม่มีอะไรที่เราชอบมากกว่าคำตอบที่ละเอียดและให้ข้อมูลพร้อมเอกสารสนับสนุนที่เชื่อมโยงเพื่อสำรองไว้ เห็นได้ชัดว่า localhost และที่อยู่ IP ในท้องถิ่นเป็นเอนทิตีที่แตกต่างกันทำหน้าที่เพื่อวัตถุประสงค์ที่แตกต่างกัน.
มีสิ่งที่จะเพิ่มคำอธิบายหรือไม่ ปิดเสียงในความคิดเห็น ต้องการอ่านคำตอบเพิ่มเติมจากผู้ใช้ Stack Exchange คนอื่นหรือไม่ ลองอ่านหัวข้อสนทนาเต็มได้ที่นี่.