Hvad er forskellen mellem Locahost og lokal IP-adresse?
Hvis du laver en masse netværkstanker, 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 med venlig hilsen af SuperUser-en underafdeling af Stack Exchange, en community-driven gruppe af Q & A-websteder.
Spørgsmålet
SuperUser-læser Diogo vil vide, hvorfor ping-kommandoen behandler lokalhosten og den lokale IP-adresse forskelligt, når de på overfladen ser ud til at være det 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 ens?
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 pingerer ikke samme grænseflade, uden fysiske grænseflader har du stadig en "lokal vært".
Dine
localhost
bruges 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 undre dig over hvorfor
localhost
løser til:: 1
, mens vi traditionelt vil forvente, at det løser IPv4-adressen127.0.0.1
. Noter det.localhost
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).Kigger op
localhost
ved brug afnslookup
giver os:
nslookup localhost
... Navn: localhost Adresser: :: 1 127.0.0.1
Windows foretrækker derfor at bruge IPv6-loop-back-IP-adressen
:: 1
(se RFC 2373) som det er anført først.Okay, så, hvor kommer det fra, lad os se på værtsfilen.
skriv% WINDIR% \ System32 \ Drivers \ Etc \ Hosts
... # localhost navnoplø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, fremhævet med fed skrift:
- I Registreringseditor finder du og klikker på følgende undernøgle i registreringsdatabasen:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ TCPIP6 \ Parameters
- Dobbeltklik på DisabledComponents for at æ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:
- På Rediger-menuen skal du pege på Ny, og derefter klikke på DWORD-værdi (32-bit).
- Skriv DisabledComponents, og tryk derefter på ENTER.
- Dobbeltklik på DisabledComponents.
- 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
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
at foretrække IPv4 over IPv6 ved at ændre indgange i præfikspolitikstabellen.- Type
0x10
at deaktivere IPv6 på alle nontunnel-grænseflader (både på LAN og Point-to-Point Protocol [PPP] -grænseflader).- Type
0x01
at deaktivere IPv6 på alle tunnelgrænseflader. Disse omfatter Intra Site Automatic Tunnel Addressing Protocol (ISATAP), 6to4 og Teredo.- Type
0x11
at deaktivere alle IPv6-grænseflader undtagen IPv6-loopback-grænsefladen.- Genstart computeren, så denne indstilling træder i kraft.
Hvad er dette præfiks politik bord?
netsh interface ipv6 viser prefixpolicies
(ellerprefixpolicy
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-løsninger.
Åh, så ved at bruge det 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å det skal håndteres med omhu ...
Der er ikke noget, vi kan lide mere end et grundigt og informativt svar med tilknyttede supportdokumenter. Det er klart, at lokalhost 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.