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

    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 lokala värdens lokala IP-adress. Läs vidare för att lära känna skillnaderna.

    Dagens Question & Answer-session 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äsare Diogo vill veta varför ping-kommandot behandlar lokala värd och lokala IP-adress på olika sätt när de på ytan 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 samma?

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

    Självfallet är det en skillnad av något slag, men vad exakt är det som 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 lokal 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 pingpaketen inte igenom 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 lokal värd löser till :: 1, medan vi traditionellt skulle förvänta oss att det skulle lösa IPv4-adressen 127.0.0.1. Anteckna det .lokal värd är traditionellt en toppdomän (se RFC 2606) som pekar tillbaka till loop back IP-adressen (för IPv4, se RFC 3330, speciellt 127.0.0.0/8).

    Slår upp lokal värd använder sig av nslookup ger oss:

    nslookup localhost

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

    Windows föredrar därför att använda IPv6-loop-back-IP-adressen :: 1 (se RFC 2373) som den listas först.

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

    skriv% 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 Registereditorn, leta reda på och klicka sedan på följande undernyckel för register:
      HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip6 \ Parameters 
    2. Dubbelklicka på DisabledComponents för att ändra DisabledComponents-posten. Anmärkning: Om inloggningen DisabledComponents inte är tillgänglig måste du skapa den. Gör så här genom att följa dessa steg:
      1. På Redigera-menyn pekar du på Ny och klickar sedan på DWORD (32-bitars) värde.
      2. Skriv 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:
      • Typ 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 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 In-Site Automatic Tunnel Addressing Protocol (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-gränssnittet ipv6 visar 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 denna tabell bestäms vilka prefix som föregår andra prefix under DNS-lösningar.

    Åh, så att vi använder den KB kunde vi lägga till poster här som anger att IPv4 har högre prioritet än IPv6.

    Notera: 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 inget som vi gillar mer än ett grundligt och informativt svar med länkade supportdokument att spara. Det är uppenbart att 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.