24Aug

Vad är skillnaden mellan Locahost och lokal IP-adress?


Om du gör mycket nätverkstinkning, konfigurerar LAN-baserade appar och serververktyg eller bara nyfiken, har du antagligen märkt att det finns en skillnad mellan lokalahosten för den lokala IP-adressen. Läs vidare för att lära känna skillnaderna.

Dagens fråga &Svarssession kommer till oss med tillstånd av SuperUser-en indelning av Stack Exchange, en community-driven gruppering av Q & A-webbplatser.

Frågan

SuperUser-läsaren Diogo vill veta varför ping-kommandot behandlar lokalhosten och den lokala IP-adressen på olika sätt när de verkar vara samma sak:

Använda cmd och ping på Windows gav mig följande resultat:

Pinging "localhost":

Pinging "192.168.0.10"( lokal IP-adress):

Är inte båda situationerna exakt desamma?

Jag menar att jag pingar samma gränssnitt, samma maskin och samma adress. Varför får jag så olika resultat?

Självklart finns det en skillnad av något slag, men vad händer när du växlar mellan de två?

Svaret

SuperUser-bidragsgivaren Tom Wijsman erbjuder följande inblick i de subtila skillnaderna mellan de två:

Du pingar inte samma gränssnitt utan några fysiska gränssnitt har du fortfarande en "lokal värd".

Din lokala värd används för att referera till din dator från sin "interna" IP, inte från någon "extern" IP-adress på din dator. Så passerar inte pingpaketen genom något fysiskt nätverksgränssnitt;bara genom ett virtuellt loop back-gränssnitt som skickar direkt paket från port till port utan några fysiska humle.

Du kanske fortfarande undrar varför localhost löses till: : 1, medan vi traditionellt skulle förvänta oss att det löser sig till IPv4-adressen 127.0.0.1.Observera att. ocalhost är traditionellt en toppdomän( se RFC 2606) som pekar tillbaka till back-IP-adressen( för IPv4, se RFC 3330, speciellt 127.0.0.0/8).

Letar upp localhost med nslookup ger oss:

nslookup localhost

. .. Namn: localhost Adresser:: : 1 127.0.0.1

Således föredrar Windows att använda IPv6-loop back IP-adressen: : 1( se RFC 2373) som den ärlistade först.

Okej, var, var kommer det ifrån, låt oss titta på värdfilen.

typ% WINDIR% \ System32 \ Drivers \ Etc \ Hosts

. .. # localhost namnupplösning hanteras inom DNS själv.# 127.0.0.1 localhost #: : 1 localhost. ..

Hmm, vi måste titta på DNS-inställningarna för Windows.

Denna KB-artikel berättar om en inställning som påverkar vad Windows föredrar, betonas med fetstil:

  1. I registret, letar du efter och klickar sedan på följande registerundernyckel: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip6 \ Parametrar
  2. Dubbelklicka på DisabledComponents tillÄndra Inaktiverade Komponenter entry. Note: Om Inträffad DisabledComponents-posten är otillgänglig måste du skapa den. Gör så här genom att följa dessa steg:
    1. På redigeringsmenyn pekar du på Ny och klickar sedan på DWORD( 32-bitars) värde.
    2. Typ DisabledComponents, och tryck sedan på ENTER.
    3. Dubbelklicka på DisabledComponents.
  3. Skriv något av följande värden i fältet Värdesdata: för att konfigurera IPv6-protokollet till önskat tillstånd och klicka sedan på OK:
    • Type 0 för att aktivera alla IPv6-komponenter.(Windows standardinställning)
    • Typ 0xffffffff för att inaktivera alla IPv6-komponenter, förutom IPv6-loopback-gränssnittet. Detta värde konfigurerar också Windows för att föredra att använda Internet Protocol version 4( IPv4) över IPv6 genom att ändra poster i prefix policy tabellen. Mer information finns i Källa och Destination Address Selection.
    • Typ 0x20 för att föredra IPv4 över IPv6 genom att ändra poster i prefix policy tabellen.
    • Typ 0x10 för att inaktivera IPv6 på alla nontunnel-gränssnitt( på både LAN och Point-to-Point Protocol [PPP] gränssnitt).
    • Typ 0x01 för att inaktivera IPv6 på alla tunnelgränssnitt. Dessa inkluderar Tunneladresseringsprotokoll( ISATAP), 6to4 och Teredo.
    • Typ 0x11 för att inaktivera alla IPv6-gränssnitt förutom IPv6-loopback-gränssnittet.
  4. Starta om datorn för att den här inställningen ska träda i kraft.

Vad är det här prefixpolitiska tabellen?

netsh interface ipv6 visa prefixpolicies( eller prefixpolicy på tidigare versioner)

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

I tabellen bestäms vilka prefix som föregår andra prefix under DNS-lösningar.

Åh, med hjälp av den KB kunde vi lägga till poster här som anger att IPv4 har högre prioritet än IPv6.

Obs! Det finns ingen anledning att åsidosätta detta beteende, om inte du upplever kompatibla problem. Byte av denna inställning på vår Windows Server bröt vår mailserver, så den bör hanteras med försiktighet. ..

Det finns ingenting vi tycker om mer än ett grundligt och informativt svar med länkade supportdokument som finns att spara. Klart lokalhosten och den lokala IP-adressen är olika enheter, tjänar olika ändamål, och nu vet vi alla varför.

Har du något att lägga till förklaringen? Ljud av i kommentarerna. Vill du läsa mer svar från andra tech-savvy Stack Exchange-användare? Kolla in hela diskussionsgängan här.