/ / Aký je rozdiel medzi Locahost a lokálnou IP adresou?

Aký je rozdiel medzi Locahost a lokálnou IP adresou?


Ak robíte veľa sieťovania,konfiguráciou aplikácií a serverových nástrojov založených na LAN alebo ste len zvedaví, pravdepodobne ste si všimli, že medzi localhost a lokálnou IP adresou je rozdiel. Čítajte ďalej a dozviete sa rozdiely.

Dnešná sekcia otázok a odpovedí prichádza so zdvorilosťou na SuperUser - rozdelenie Stack Exchange, zoskupovanie webových stránok s otázkami a odpoveďami na komunitu.

Otázka

Čítačka SuperUser Diogo chce vedieť, prečo príkaz ping zaobchádza s localhost a lokálnou IP adresou odlišne, keď sa zdá, že na povrchu vyzerajú rovnako:

Použitie cmd a ping na Windows mi prinieslo nasledujúce výsledky:

Ping ping „localhost“:

Pinging „192.168.0.10“ (miestna adresa IP):

Nie sú obidve situácie úplne rovnaké?

Myslím tým, že pingujem na rovnaké rozhranie, na rovnaký stroj a na rovnakú adresu. Prečo získam také odlišné výsledky?

Je zrejmé, že existuje nejaký rozdiel, ale čo sa presne deje, keď prepínate medzi nimi?

Odpoveď

SuperUser prispievateľ Tom Wijsman ponúka nasledujúci pohľad na jemné rozdiely medzi nimi:

Nie ste ping na rovnaké rozhranie, bez fyzického rozhrania máte stále „miestneho hostiteľa“.

tvoj localhost sa používa na označenie vášho počítača„Interná“ IP, nie z „externých“ IP vášho počítača. Pakety ping neprechádzajú žiadnym fyzickým sieťovým rozhraním; iba cez zadné rozhranie virtuálnej slučky, ktoré priamo odosiela pakety z portu na port bez fyzického chmeľu.

Stále by ste sa mohli čudovať, prečo localhost sa rozhoduje ::1, zatiaľ čo tradične by sme očakávali, že sa zmení na adresu IPv4 127.0.0.1, Poznač si to .localhost je tradične TLD (pozri RFC 2606), ktorý ukazuje späť na spätnú IP adresu slučky (pre IPv4 pozri RFC 3330, najmä 127.0.0.0/8).

Vyhľadávam localhost použitím nslookup dáva nám:

nslookup localhost

...
Name:    localhost
Addresses:  ::1
127.0.0.1

Preto Windows uprednostňuje použitie zadnej adresy IP slučky IPv6 ::1 (pozri RFC 2373), ako je uvedený na prvom mieste.

Dobre, takže odkiaľ to pochádza, pozrime sa na súbor hostiteľov.

type %WINDIR%System32DriversEtcHosts

...
# localhost name resolution is handled within DNS itself.
#       127.0.0.1       localhost
#       ::1             localhost
...

Hmm, musíme sa pozrieť na nastavenia DNS systému Windows.

Tento článok KB hovorí o nastavení, ktoré ovplyvňuje preferencie systému Windows, zvýraznené tučným písmom:

  1. V Editore databázy Registry vyhľadajte nasledujúci podkľúč databázy Registry a kliknite naň:
    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpip6Parameters
    
  2. Dvakrát kliknite na DisabledComponents a zmeňte položku DisabledComponents. Poznámka: Ak položka DisabledComponents nie je k dispozícii, musíte ju vytvoriť. Postupujte takto:
    1. V ponuke Úpravy ukážte na položku Nové a potom kliknite na položku Hodnota DWORD (32-bit).
    2. Zadajte DisabledComponent a stlačte kláves ENTER.
    3. Dvakrát kliknite na DisabledComponent.
  3. Do poľa Value data: zadajte ľubovoľnú z nasledujúcich hodnôt a nakonfigurujte protokol IPv6 do požadovaného stavu a potom kliknite na tlačidlo OK:
    • typ 0 povoliť všetky komponenty IPv6. (Predvolené nastavenie systému Windows)
    • typ 0xffffffff vypnúť všetky komponenty IPv6, okrem IPv6loopback interface. Táto hodnota tiež konfiguruje systém Windows, aby uprednostňoval používanie protokolu IPv4 (IPv4) pred protokolom IPv6 úpravou položiek v tabuľke politiky predpony. Ďalšie informácie nájdete v časti Výber zdroja a cieľovej adresy.
    • typ 0x20 preferovať IPv4 pred IPv6 úpravou položiek v tabuľke politiky predpony.
    • typ 0x10 zakázať protokol IPv6 na všetkých rozhraniach, ktoré nie sú prepojené (na rozhraniach LAN aj protokolov Point-to-Point [PPP]).
    • typ 0x01 vypnúť IPv6 na všetkých rozhraniach tunela. Patria medzi ne Protokol automatického tunelového adresovania v rámci lokality (ISATAP), 6to4 a Teredo.
    • typ 0x11 vypnúť všetky rozhrania IPv6 okrem rozhrania spätnej slučky IPv6.
  4. Aby sa toto nastavenie prejavilo, reštartujte počítač.

Čo je táto tabuľka pravidiel prefixov?

netsh interface ipv6 show prefixpolicies (alebo prefixpolicy v predchádzajúcich verziách)

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

Táto tabuľka určuje, ktoré predpony budú mať prednosť pred ostatnými predponami počas prekladov DNS.

Aha, pomocou KB sme tu mohli pridať položky, ktoré označujú, že IPv4 má vyššiu prioritu ako IPv6.

Poznámka: Neexistuje žiadny dôvod na potlačenie tohto správania, pokiaľ sa nestanú kompatibilné problémy. Zmena tohto nastavenia na našom systéme Windows Server narušila náš poštový server, preto by sa s ním malo zaobchádzať opatrne ...

Nie je nič, čo by sme radi viac ako dôkladné ainformatívna odpoveď s pripojenými podpornými dokumentmi k rezerve. Je zrejmé, že localhost a lokálna IP adresa sú odlišné entity, slúžia rôznym účelom a teraz všetci vieme prečo.


Máte k vysvetleniu niečo, čo by ste mali pridať? V komentároch vypnite zvuk. Chcete si prečítať viac odpovedí od ostatných technicky zdatných používateľov servera Exchange Exchange? Pozrite sa na celú diskusnú tému tu.