คุณไม่ได้กระตุกอินเทอร์เฟซเดียวกันโดยไม่ต้องมีอินเทอร์เฟซทางกายภาพใด ๆ ที่คุณยังมี "โลคัลโฮสต์"
คุณlocalhost
ใช้เพื่ออ้างถึงคอมพิวเตอร์ของคุณจาก IP "ภายใน" ไม่ใช่จาก IP ภายนอก "" ของคอมพิวเตอร์ของคุณ ดังนั้นแพ็กเก็ต ping จึงไม่ผ่านส่วนต่อประสานเครือข่ายทางกายภาพใด ๆ ผ่านอินเทอร์เฟซวนกลับเสมือนเท่านั้นซึ่งส่งแพ็กเก็ตโดยตรงจากพอร์ตไปยังพอร์ตโดยไม่ต้องมีฟิสิคัลฮ็อป
คุณอาจจะยังคงสงสัยว่าทำไมlocalhost
มีการแก้ไขปัญหาไปในขณะที่แบบดั้งเดิมที่เราจะคาดหวังให้แก้ไขไปยังที่อยู่::1
IPv4 127.0.0.1
โปรดทราบว่าโดยทั่วไป.localhost
คือ TLD (ดูRFC 2606 ) ซึ่งชี้กลับไปยังที่อยู่ IP แบบวนกลับ (สำหรับ IPv4 ดูที่RFC 3330โดยเฉพาะ 127.0.0.0/8)
การค้นหาlocalhost
โดยใช้nslookup
ช่วยให้เรา:
nslookup localhost
...
Name: localhost
Addresses: ::1
127.0.0.1
ดังนั้น Windows ต้องการใช้ที่อยู่ IP IPv6 วนกลับ::1
(ดูRFC 2373 ) เนื่องจากเป็นรายการแรก
เอาล่ะมาจากไหนมาดูไฟล์โฮสต์กันดีกว่า
type %WINDIR%\System32\Drivers\Etc\Hosts
...
# localhost name resolution is handled within DNS itself.
# 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
พิมพ์ค่าใดค่าหนึ่งต่อไปนี้ในฟิลด์ Value data: เพื่อกำหนดค่าโปรโตคอล 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 interface ipv6 show prefixpolicies
(หรือprefixpolicy
ในรุ่นก่อนหน้า)
Precedence Label Prefix
---------- ----- --------------------------------
50 0 ::1/128
45 13 fc00::/7
40 1 ::/0
10 4 ::ffff:0:0/96
7 14 2002::/16
5 5 2001::/32
1 11 fec0::/10
1 12 3ffe::/16
1 10 ::/96
ตารางนี้ตัดสินว่าส่วนนำหน้าใดที่มีความสำคัญเหนือกว่าส่วนนำหน้าอื่น ๆ ในระหว่างการแก้ไข DNS
อ่าใช้ KB ที่เราสามารถเพิ่มรายการที่นี่ซึ่งแสดงว่า IPv4 มีความสำคัญมากกว่า IPv6
หมายเหตุ:ไม่มีเหตุผลที่จะแทนที่พฤติกรรมนี้เว้นแต่ว่าคุณกำลังประสบปัญหาที่เข้ากันได้ การเปลี่ยนการตั้งค่านี้ใน Windows Server ของเราทำให้เมลเซิร์ฟเวอร์ของเราแตกหักดังนั้นจึงควรจัดการอย่างระมัดระวัง ...