Bạn không ping cùng một giao diện , không có bất kỳ giao diện vật lý nào bạn vẫn có một "máy chủ cục bộ".
Your localhost
được sử dụng để chỉ máy tính của bạn từ IP "bên trong" của nó, không phải từ bất kỳ IP "bên ngoài" nào của máy tính của bạn. Vì vậy, các gói ping không đi qua bất kỳ giao diện mạng vật lý nào; chỉ thông qua một giao diện vòng lặp ảo mà trực tiếp gửi các gói từ cổng này sang cổng khác mà không có bất kỳ bước nhảy vật lý nào.
Bạn vẫn có thể tự hỏi tại sao lại localhost
giải quyết ::1
, trong khi theo truyền thống, chúng tôi sẽ mong đợi nó giải quyết theo địa chỉ IPv4 127.0.0.1
. Lưu ý rằng .localhost
theo truyền thống là TLD (xem RFC 2606 ) trỏ lại địa chỉ IP của vòng lặp trở lại (đối với IPv4, xem RFC 3330 , đặc biệt là 127.0.0.0/8).
Tra cứu localhost
bằng cách sử dụng nslookup
cho chúng tôi:
nslookup localhost
...
Name: localhost
Addresses: ::1
127.0.0.1
Do đó, Windows thích sử dụng địa chỉ IP quay lại IPv6 ::1
(xem RFC 2373 ) vì nó được liệt kê đầu tiên.
Được rồi, vì vậy, nó đến từ đâu, hãy nhìn vào tập tin máy chủ.
type %WINDIR%\System32\Drivers\Etc\Hosts
...
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
...
Hmm, chúng ta phải xem các cài đặt DNS của Windows.
Bài viết KB này cho chúng tôi biết về một cài đặt ảnh hưởng đến những gì Windows thích, được nhấn mạnh bằng chữ in đậm:
Trong Registry Editor, xác định vị trí và sau đó nhấp vào khoá con đăng ký sau:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters
Bấm đúp vào DisconnectComponents để sửa đổi mục DisconnectComponents.
Lưu ý: Nếu mục DisablesComponents không có sẵn, bạn phải tạo nó. Để làm điều này, hãy làm theo các bước sau:
Trong menu Chỉnh sửa, trỏ đến Mới, rồi bấm Giá trị DWORD (32-bit).
Nhập DisconnectComponents, sau đó nhấn ENTER.
Bấm đúp vào DisconnectComponents.
Nhập bất kỳ một trong các giá trị sau vào trường Dữ liệu giá trị: để định cấu hình giao thức IPv6 sang trạng thái mong muốn, sau đó bấm OK:
- Nhập
0
để kích hoạt tất cả các thành phần IPv6. (Cài đặt mặc định của Windows)
- Nhập
0xffffffff
để vô hiệu hóa tất cả các thành phần IPv6, ngoại trừ giao diện loopback IPv6. Giá trị này cũng cấu hình Windows để sử dụng Giao thức Internet phiên bản 4 (IPv4) hơn IPv6 bằng cách sửa đổi các mục trong bảng chính sách tiền tố. Để biết thêm thông tin, hãy xem Lựa chọn địa chỉ nguồn và đích.
- Nhập
0x20
để thích IPv4 hơn IPv6 bằng cách sửa đổi các mục trong bảng chính sách tiền tố.
- Gõ
0x10
để vô hiệu hóa IPv6 trên tất cả các giao diện nontunnel (trên cả hai mạng LAN và Point-to-Point Protocol [PPP] giao diện).
- Nhập
0x01
để tắt IPv6 trên tất cả các giao diện đường hầm. Chúng bao gồm Giao thức địa chỉ đường hầm tự động nội bộ (ISATAP), 6to4 và Teredo.
- Nhập
0x11
để vô hiệu hóa tất cả các giao diện IPv6 ngoại trừ giao diện loopback IPv6.
Khởi động lại máy tính để cài đặt này có hiệu lực.
Bảng chính sách tiền tố này là gì?
netsh interface ipv6 show prefixpolicies
(hoặc prefixpolicy
trên các phiên bản trước)
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
Bảng này quyết định tiền tố nào được ưu tiên hơn các tiền tố khác trong quá trình phân giải DNS.
À, vì vậy bằng cách sử dụng KB đó, chúng tôi có thể thêm các mục ở đây biểu thị rằng IPv4 có quyền ưu tiên cao hơn IPv6.
Lưu ý: Không có lý do để ghi đè hành vi này, trừ khi bạn đang gặp vấn đề tương thích. Thay đổi cài đặt này trên Máy chủ Windows của chúng tôi đã phá vỡ máy chủ thư của chúng tôi, do đó, cần xử lý cẩn thận ...