/ / Mitä eroa Locahost- ja paikallisilla IP-osoitteilla on?

Mikä on locahostin ja paikallisen IP-osoitteen välinen ero?


Jos teet paljon verkon välitystä,määrittäessäsi LAN-pohjaisia ​​sovelluksia ja palvelintyökaluja tai vain uteliaita, olet todennäköisesti huomannut, että paikallismajoittajan ja paikallisen IP-osoitteen välillä on ero. Lue oppiaksesi erot.

Tämän päivän kysymys- ja vastausistunto on meille SuperUser-palvelun myötä - Stack Exchange -yksikön alaosasto, joka on yhteisön vetämä Q & A-verkkosivustojen ryhmittely.

Kysymys

SuperUser-lukija Diogo haluaa tietää, miksi ping-komento käsittelee localhostia ja paikallista IP-osoitetta eri tavalla, kun pinnalla ne näyttävät olevan sama asia:

Cmd: n ja pingin käyttäminen Windowsissa antoi minulle seuraavat tulokset:

Pinging “localhost”:

Pinging “192.168.0.10” (paikallinen IP-osoite):

Eivätkö molemmat tilanteet ole täysin samat?

Tarkoitan, pingistan samaa käyttöliittymää, samaa konetta ja samaa osoitetta. Miksi saan niin erilaisia ​​tuloksia?

Ilmeisesti on jonkinlainen ero, mutta mitä tarkalleen tapahtuu, kun vaihdat näiden kahden välillä?

Vastaus

SuperUser-avustaja Tom Wijsman tarjoaa seuraavan kuvan näiden kahden välisistä hienoista eroista:

Et pingitä samaa käyttöliittymää, ilman fyysisiä rajapintoja sinulla on edelleen ”paikallinen isäntä”.

teidän localhost käytetään viitaamaan tietokoneeseen sen“Sisäinen” IP, ei minkään tietokoneen “ulkoisesta” IP: stä. Joten ping-paketit eivät läpäise minkään fyysisen verkkoliittymän kautta; vain virtuaalisen silmukan takaisinliittymän kautta, joka lähettää paketit suoraan satamasta porttiin ilman fyysistä hyppyä.

Saatat silti ihmetellä miksi localhost on päättämässä ::1, vaikka perinteisesti odottaisimme sen ratkaisevan IPv4-osoitteeseen 127.0.0.1. Ota huomioon, että .localhost on perinteisesti TLD (katso RFC 2606), joka osoittaa takaisin silmukan takaisin IP-osoitteeseen (IPv4: katso RFC 3330, erityisesti 127.0.0.0/8).

Katse localhost käyttämällä nslookup antaa meille:

nslookup localhost

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

Siksi Windows mieluummin käyttää IPv6-silmukka-IP-osoitetta ::1 (katso RFC 2373), koska se on lueteltu ensin.

Okei, niin mistä se tulee, katsotaanpa isäntätiedostoa.

type %WINDIR%System32DriversEtcHosts

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

Hmm, meidän on tarkasteltava Windowsin DNS-asetuksia.

Tämä KB-artikkeli kertoo lihavoituna korostetusta asetuksesta, joka vaikuttaa Windowsin suosimaan asetuksiin:

  1. Etsi ja napsauta seuraava rekisteriavain rekisterieditorissa:
    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpip6Parameters
    
  2. Kaksoisnapsauta DisabledComponents muokataksesi DisabledComponents-merkintää.Huomaa: Jos DisabledComponents-merkintää ei ole saatavana, sinun on luotava se. Voit tehdä tämän seuraavasti:
    1. Valitse Muokkaa-valikosta Uusi ja valitse sitten DWORD (32-bittinen) arvo.
    2. Kirjoita DisabledComponents ja paina sitten ENTER-painiketta.
    3. Kaksoisnapsauta DisabledComponents.
  3. Kirjoita jokin seuraavista arvoista Arvodata: -kenttään määrittääksesi IPv6-protokollan haluttuun tilaan ja napsauta sitten OK:
    • Tyyppi 0 jotta kaikki IPv6-komponentit voidaan ottaa käyttöön. (Windowsin oletusasetus)
    • Tyyppi 0xffffffff poistaaksesi kaikki IPv6-komponentit pois lukien IPv6silmukkarajapinta. Tämä arvo myös määrittää Windowsin mieluummin käyttämään Internet-protokollan versiota 4 (IPv4) IPv6: n kanssa muuttamalla etuliitekäytäntötaulukon merkintöjä. Lisätietoja on kohdassa Lähde- ja kohdeosoitteen valinta.
    • Tyyppi 0x20 mieluummin IPv4 kuin IPv6 muuttamalla etuliitekäytäntötaulukon merkintöjä.
    • Tyyppi 0x10 poistaa IPv6 käytöstä kaikissa nontunnel-rajapinnoissa (sekä LAN- että point-to-point Protocol [PPP] -rajapinnoissa).
    • Tyyppi 0x01 poistaa IPv6 käytöstä kaikissa tunnelirajapinnoissa. Näitä ovat sivuston sisäinen automaattinen tunnelinosoitusprotokolla (ISATAP), 6to4 ja Teredo.
    • Tyyppi 0x11 kaikkien IPv6-rajapintojen poistaminen käytöstä, paitsi IPv6-silmukkarajapinta.
  4. Käynnistä tietokone uudelleen, jotta tämä asetus tulee voimaan.

Mikä on tämä etuliitekäytäntötaulukko?

netsh interface ipv6 show prefixpolicies (tai prefixpolicy aiemmissa versioissa)

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ämä taulukko päättää, mitkä etuliitteet saavat etusijan muihin etuliitteisiin verrattuna DNS-ratkaisun aikana.

Ah, joten käyttämällä tätä KB: tä voisimme lisätä tähän merkintöjä, jotka osoittavat, että IPv4: llä on korkeampi prioriteetti kuin IPv6: lla.

merkintä: Ei ole syytä ohittaa tätä käyttäytymistä, ellei sinulla ole yhteensopivia ongelmia. Asetuksen muuttaminen Windows Server -palvelimella rikkoi postipalvelimesi, joten sitä on käsiteltävä varoen ...

Emme halua muuta kuin perusteellista jainformatiivinen vastaus ja linkitetyt tukidokumentit säästääksesi. On selvää, että localhost ja paikallinen IP-osoite ovat erillisiä kokonaisuuksia, palvelevat erilaisia ​​tarkoituksia, ja nyt me kaikki tiedämme miksi.


Onko jotain lisättävää selitykseen? Kuuntele kommentteja. Haluatko lukea lisää vastauksia muilta teknisesti hyödyllisiltä Stack Exchange -käyttäjiltä? Katso koko keskusteluketju täältä.