Nie pingujesz tego samego interfejsu , bez fizycznych interfejsów nadal masz „hosta lokalnego”.
Twoje localhost
odnosi się do twojego komputera z jego „wewnętrznego” adresu IP, a nie z „zewnętrznych” adresów IP twojego komputera. Pakiety ping nie przechodzą przez fizyczny interfejs sieciowy; tylko przez interfejs wirtualnej pętli zwrotnej, który bezpośrednio wysyła pakiety z portu do portu bez żadnych fizycznych przeskoków.
Nadal możesz się zastanawiać, dlaczego localhost
tak się dzieje ::1
, podczas gdy tradycyjnie spodziewalibyśmy się, że rozwiąże to na adres IPv4 127.0.0.1
. Zauważ, że .localhost
tradycyjnie jest to TLD (patrz RFC 2606 ), który wskazuje na adres IP pętli zwrotnej (dla IPv4, patrz RFC 3330 , szczególnie 127.0.0.0/8).
Wyszukiwanie za localhost
pomocą nslookup
daje nam:
nslookup localhost
...
Name: localhost
Addresses: ::1
127.0.0.1
W związku z tym system Windows woli używać adresu IP z pętlą zwrotną IPv6 ::1
(patrz RFC 2373 ), ponieważ jest wymieniony jako pierwszy.
Okej, skąd to się bierze, spójrzmy na plik hosts.
type %WINDIR%\System32\Drivers\Etc\Hosts
...
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
...
Hmm, musimy spojrzeć na ustawienia DNS systemu Windows.
W tym artykule bazy wiedzy opisano ustawienie wpływające na preferencje systemu Windows, wyróżnione pogrubioną czcionką:
W Edytorze rejestru zlokalizuj, a następnie kliknij następujący podklucz rejestru:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters
Kliknij dwukrotnie pozycję DisabledComponents, aby zmodyfikować wpis DisabledComponents.
Uwaga: Jeśli pozycja DisabledComponents jest niedostępna, musisz ją utworzyć. Aby to zrobić, wykonaj następujące kroki:
W menu Edycja wskaż polecenie Nowy, a następnie kliknij opcję Wartość DWORD (32-bitowa).
Wpisz DisabledComponents, a następnie naciśnij klawisz ENTER.
Kliknij dwukrotnie DisabledComponents.
Wpisz dowolną z następujących wartości w polu Dane wartości: aby skonfigurować protokół IPv6 do pożądanego stanu, a następnie kliknij przycisk OK:
- Wpisz,
0
aby włączyć wszystkie składniki IPv6. (Ustawienie domyślne systemu Windows)
- Wpisz,
0xffffffff
aby wyłączyć wszystkie składniki IPv6, z wyjątkiem interfejsu sprzężenia zwrotnego IPv6. Ta wartość konfiguruje również system Windows, aby wolał używać protokołu internetowego w wersji 4 (IPv4) niż IPv6, modyfikując wpisy w tabeli zasad prefiksów. Aby uzyskać więcej informacji, zobacz Wybór adresu źródłowego i docelowego.
- Wpisz,
0x20
aby preferować IPv4 zamiast IPv6, modyfikując wpisy w tabeli strategii przedrostków.
- Wpisz,
0x10
aby wyłączyć IPv6 na wszystkich interfejsach nie-tunelowych (zarówno w sieci LAN, jak i interfejsach PPP).
- Wpisz,
0x01
aby wyłączyć IPv6 na wszystkich interfejsach tunelu. Należą do nich międzyplatformowy automatyczny protokół adresowania tuneli (ISATAP), 6to4 i Teredo.
- Wpisz,
0x11
aby wyłączyć wszystkie interfejsy IPv6 z wyjątkiem interfejsu sprzężenia zwrotnego IPv6.
Uruchom ponownie komputer, aby to ustawienie zaczęło obowiązywać.
Co to jest ta tabela zasad prefiksów?
netsh interface ipv6 show prefixpolicies
(lub prefixpolicy
we wcześniejszych wersjach)
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
Ta tabela określa, które prefiksy mają pierwszeństwo przed innymi prefiksami podczas rozstrzygania DNS.
Ach, więc używając tej KB, moglibyśmy dodać tutaj wpisy, które wskazują, że IPv4 ma wyższy priorytet niż IPv6.
Uwaga: Nie ma powodu, aby zastępować to zachowanie, chyba że występują problemy z kompatybilnością. Zmiana tego ustawienia w naszym systemie Windows Server spowodowała uszkodzenie naszego serwera poczty, dlatego należy się z nim obchodzić ostrożnie ...