Dagens Spørsmål & Svar-sesjon kommer til oss med høflighet av SuperUser-en underavdeling av Stack Exchange, en fellesskapsdrevet gruppering av Q & A-nettsteder.
Spørsmålet
SuperUser-leser Diogo vil vite hvorfor ping-kommandoen behandler lokalhosten og den lokale IP-adressen annerledes når de ser ut til å være det samme på overflaten:
Using cmd and ping on Windows gave me the following results:
Pinging “localhost”:
I mean, I’m pinging the same interface, the same machine and the same address. Why do I get such different results?
Tydeligvis er det en forskjell av noe slag, men hva skjer når du bytter mellom de to?
Svaret
SuperUser-bidragsyter Tom Wijsman tilbyr følgende innsikt i de subtile forskjellene mellom de to:
You are not pinging the same interface, without any physical interfaces you still have a “local host”.
Your
localhost
brukes til å henvise til din datamaskin fra sin "interne" IP, ikke fra noen "eksterne" IP-er på datamaskinen din. Så går ikke pingpakkerene gjennom et fysisk nettverksgrensesnitt; bare gjennom et virtuelt loop back-grensesnitt som direkte sender pakkene fra port til port uten fysisk humle.
Du kan fortsatt lure på hvorfor
localhost
løser til
::1
mens vi tradisjonelt ville forvente at det skulle løses til IPv4-adressen
127.0.0.1
. Noter det
.localhost
er tradisjonelt et toppdomæne (se RFC 2606) som peker tilbake til loop back IP-adressen (for IPv4, se RFC 3330, spesielt 127.0.0.0/8).
Ser opp
localhost
ved hjelp av
nslookup
gir oss:
nslookup localhost
… Name: localhost Addresses:::1 127.0.0.1
Derfor foretrekker Windows å bruke IPv6-loopback-IP-adressen
::1
(se RFC 2373) som den er oppført først.
Ok, så, hvor kommer det fra, la oss se på vertsfilen.
type %WINDIR%System32DriversEtcHosts
… # localhost name resolution is handled within DNS itself. # 127.0.0.1 localhost #::1 localhost …
Hmm, vi må se på DNS-innstillingene for Windows.
Denne KB-artikkelen forteller oss om en innstilling som påvirker hva Windows foretrekker, understreket med fet skrift:
-
I Registerredigering, finn og klikk deretter følgende undernøkkel for register:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpip6Parameters
-
Dobbeltklikk DisabledComponents for å modifisere DisabledComponents-oppføringen. Merk: Hvis innstillingen DisabledComponents ikke er tilgjengelig, må du opprette den. For å gjøre dette, følg disse trinnene:
- På Rediger-menyen, pek på Ny, og klikk deretter DWORD-verdi (32-biters).
- Skriv DisabledComponents, og trykk deretter ENTER.
- Dobbeltklikk DisabledComponents.
-
Skriv inn en av de følgende verdiene i feltet Verdidata: for å konfigurere IPv6-protokollen til ønsket tilstand, og klikk deretter OK:
-
Type
0
for å aktivere alle IPv6-komponenter. (Windows standardinnstilling)
-
Type
0xffffffff
å deaktivere alle IPv6-komponenter, bortsett fra IPv6 loopback-grensesnittet. Denne verdien konfigurerer også Windows for å foretrekke å bruke Internet Protocol versjon 4 (IPv4) over IPv6 ved å endre oppføringer i prefiks policy tabellen. For mer informasjon, se Valg av kilde og destinasjonsadresse.
-
Type
0x20
å foretrekke IPv4 over IPv6 ved å endre oppføringer i prefiks policy tabellen.
-
Type
0x10
å deaktivere IPv6 på alle nunnelgrensesnitt (på både LAN og Point-to-Point Protocol [PPP] grensesnitt).
-
Type
0x01
for å deaktivere IPv6 på alle tunnelgrensesnitt. Disse inkluderer Intra Site Automatic Tunnel Addressing Protocol (ISATAP), 6to4 og Teredo.
-
Type
0x11
for å deaktivere alle IPv6-grensesnitt bortsett fra IPv6-loopback-grensesnittet.
- Start datamaskinen på nytt for denne innstillingen trer i kraft.
Hva er dette prefiksetabellen?
netsh interface ipv6 show prefixpolicies
(eller
prefixpolicy
på tidligere versjoner)
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
Denne tabellen bestemmer hvilke prefikser som har forrang over andre prefikser under DNS-løser.
Åh, så bruker vi KB kan vi legge til oppføringer her som angir at IPv4 har høyere prioritet enn IPv6.
Merk: Det er ingen grunn til å overstyre denne oppførselen, med mindre du opplever kompatible problemer. Endring av denne innstillingen på vår Windows Server brøt vår mail server, så den skal håndteres med forsiktighet …
Det er ingenting vi liker mer enn et grundig og informativt svar med koblede støttedokumenter å spare. Klart lokalhost og lokal IP-adresse er forskjellige enheter, tjener forskjellige formål, og nå vet vi alle hvorfor.
Har du noe å legge til forklaringen? Lyde av i kommentarene. Vil du lese flere svar fra andre tech-savvy Stack Exchange-brukere? Sjekk ut hele diskusjonstråden her.