24Aug

Hvad er forskellen mellem Locahost og lokal IP-adresse?


Hvis du laver en masse netværkstankering, konfigurerer LAN-baserede apps og serverværktøjer, eller bare nysgerrige, har du sandsynligvis bemærket, at der er forskel på lokalehosten til den lokale IP-adresse. Læs videre for at lære forskellene.

Dagens Spørgsmål &Svar session kommer til os høflighed af SuperUser-en underafdeling af Stack Exchange, en community-drevet gruppe af Q & A-websteder.

Spørgsmål

SuperUser-læser Diogo ønsker at vide, hvorfor ping-kommandoen behandler lokalhosten og den lokale IP-adresse forskelligt, når de på overfladen synes at være de samme:

Brug af cmd og ping på Windows gav mig følgende resultater:

Pinging "localhost":

Pinging "192.168.0.10"( lokal IP-adresse):

Er begge situationer nøjagtigt de samme?

Jeg mener, jeg pinger samme interface, den samme maskine og den samme adresse. Hvorfor får jeg så forskellige resultater?

Selvfølgelig er der en forskel af en slags, men hvad sker der, når du skifter mellem de to?

Svaret

SuperUser-bidragyder Tom Wijsman tilbyder følgende indsigt i de subtile forskelle mellem de to:

Du pinge ikke samme interface , uden fysiske grænseflader har du stadig en "lokal vært".

Dit lokalehost er brugt til at henvise til din computer fra sin "interne" IP, ikke fra nogen "eksterne" IP'er på din computer. Så passerer pingpakkerne ikke gennem nogen fysisk netværksgrænseflade;kun via en virtuel loop back-grænseflade, som direkte sender pakkerne fra port til port uden nogen fysisk humle.

Du kan stadig spekulere på, hvorfor localhost løses til: : 1, mens vi traditionelt forventes at løse IPv4-adressen 127.0.0.1.Bemærk at. lokalhost er traditionelt et topdomæne( se RFC 2606), der peger tilbage til loop back IP-adressen( til IPv4, se RFC 3330, især 127.0.0.0/8).

Opsporing af localhost ved hjælp af nslookup giver os:

nslookup localhost

. .. Navn: localhost Adresser:: : 1 127.0.0.1

Således foretrækker Windows at bruge IPv6 loop back IP-adressen: : 1( se RFC 2373) som det eropført først.

Okay, så, hvor kommer det fra, lad os se på værtsfilen.

type% WINDIR% \ System32 \ Drivers \ Etc \ Hosts

. .. # localhost navneopløsning håndteres i selve DNS.# 127.0.0.1 localhost #: : 1 localhost. ..

Hmm, vi skal se på DNS-indstillingerne i Windows.

Denne KB artikel fortæller os om en indstilling, der påvirker, hvad Windows foretrækker, med fed skrift:

  1. I Registreringseditor finder du og klikker på følgende undernøgle i registreringsdatabasen: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip6 \ Parametre
  2. Dobbeltklik på DisabledComponents tilændre indstillingen DisabledComponents. Note: Hvis indgangen DisabledComponents ikke er tilgængelig, skal du oprette den. For at gøre dette skal du følge disse trin:
    1. På Rediger-menuen skal du pege på Ny og derefter klikke på DWORD-værdi( 32-bit).
    2. Type DisabledComponents, og tryk derefter på ENTER.
    3. Dobbeltklik på DisabledComponents.
  3. Indtast en af ​​følgende værdier i feltet Værdidata: for at konfigurere IPv6-protokollen til den ønskede tilstand, og klik derefter på OK:
    • Type 0 for at aktivere alle IPv6-komponenter.(Windows standardindstilling)
    • Type 0xffffffff for at deaktivere alle IPv6-komponenter, undtagen IPv6-loopback-grænsefladen. Denne værdi konfigurerer også Windows for at foretrække at bruge Internet Protocol version 4( IPv4) over IPv6 ved at ændre indgange i præfiks-politiktabellen. Yderligere oplysninger finder du under Valg af kilde og destinationsadresse.
    • Type 0x20 for at foretrække IPv4 over IPv6 ved at ændre indgange i præfikspolitikstabellen.
    • Type 0x10 for at deaktivere IPv6 på alle nintunnel-grænseflader( både på LAN og Point-to-Point Protocol [PPP] -grænseflader).
    • Type 0x01 for at deaktivere IPv6 på alle tunnelgrænseflader. Disse omfatter Intra Site Automatic Tunnel Addressing Protocol( ISATAP), 6to4 og Teredo.
    • Type 0x11 for at deaktivere alle IPv6-grænseflader bortset fra IPv6-loopback-grænsefladen.
  4. Genstart computeren, så denne indstilling træder i kraft.

Hvad er dette præfiks politik bord?

netsh interface ipv6 vis præfikspolicies( eller præfikspolicy på tidligere 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

Denne tabel bestemmer hvilke præfikser der har forrang i forhold til andre præfikser under DNS-opløsninger.

Åh, så ved at bruge den KB kunne vi tilføje poster her, der angiver, at IPv4 har højere prioritet end IPv6.

Bemærk: Der er ingen grund til at tilsidesætte denne adfærd, medmindre du oplever kompatible problemer.Ændring af denne indstilling på vores Windows Server brød vores mail server, så den skal håndteres med omhu. ..

Der er intet, vi kan lide mere end et grundigt og informativt svar med tilknyttede supportdokumenter. Det er klart, at lokalehost og lokal IP-adresse er forskellige enheder, tjener forskellige formål, og nu ved vi alle, hvorfor.

Har du noget at tilføje til forklaringen? Lyde af i kommentarerne. Vil du læse flere svar fra andre tech-savvy Stack Exchange brugere? Tjek den fulde diskussionstråd her.