24Aug

Hva er forskjellen mellom Locahost og lokal IP-adresse?


Hvis du gjør mye nettverkstanking, konfigurerer LAN-baserte apper og serververktøy, eller bare nysgjerrig, har du sannsynligvis lagt merke til at det er en forskjell mellom lokalehosten den lokale IP-adressen. Les videre for å lære forskjellene.

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-leseren Diogo vil vite hvorfor ping-kommandoen behandler lokalhosten og den lokale IP-adressen annerledes når de ser ut til å være det samme:

Ved å bruke cmd og ping på Windows ga jeg følgende resultater:

Pinging "localhost":

Pinging "192.168.0.10"( lokal IP-adresse):

Er ikke begge situasjonene det samme?

Jeg mener, jeg pinging samme grensesnitt, samme maskin og samme adresse. Hvorfor får jeg slike forskjellige resultater?

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:

Du pingerer ikke det samme grensesnittet , uten fysiske grensesnitt har du fortsatt en "lokal vert".

Ditt lokalehost er brukt 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: 1, mens vi tradisjonelt vil forvente at det skal løses til IPv4-adressen 127.0.0.1.Merk at. localhost er tradisjonelt et toppdomæne( se RFC 2606) som peker tilbake til IP-adressen til IP-4( se RFC 3330, spesielt 127.0.0.0/8).

Å lete opp localhost ved hjelp av nslookup gir oss:

nslookup localhost

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

Således foretrekker Windows å bruke IPv6 loop back IP-adressen: : 1( se RFC 2373) som det eroppført først.

Ok, så, hvor kommer det fra, la oss se på vertsfilen.

type% WINDIR% \ System32 \ Drivere \ Etc \ Hosts

. .. # localhost navnoppløsning håndteres i selve DNS.# 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:

  1. I Registerredigering, finn og klikk deretter følgende undernøkkel under registret: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip6 \ Parameters
  2. Dobbeltklikk DisabledComponents tilEndre DisabledComponents-oppføringen. Merk: Hvis oppføringen DisabledComponents ikke er tilgjengelig, må du opprette den. For å gjøre dette, følg disse trinnene:
    1. På Rediger-menyen, pek på Ny, og klikk deretter DWORD-verdi( 32-biters).
    2. Type DisabledComponents, og trykk deretter ENTER.
    3. Dobbeltklikk DisabledComponents.
  3. 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 for å 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 for å foretrekke IPv4 over IPv6 ved å endre oppføringer i prefiks policy tabellen.
    • Type 0x10 for å 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.
  4. Start datamaskinen på nytt for denne innstillingen trer i kraft.

Hva er dette prefiksetabellen?

netsh-grensesnitt ipv6 vis prefikspolicyer( eller prefikspolicy 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-oppløsninger.

Å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 e-postserveren vår, så den skal håndteres med forsiktighet. ..

Det er ingenting vi liker mer enn et grundig og informativt svar med koblede støttedokumenter som kan 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.