Koks skirtumas tarp Locahost ir vietinio IP adreso?

Turinys:

Koks skirtumas tarp Locahost ir vietinio IP adreso?
Koks skirtumas tarp Locahost ir vietinio IP adreso?
Anonim
 Jei atliksite daug tinklų klastojimo, konfigūruojamų LAN programų ir serverių įrankių arba tiesiog įdomu, jūs tikriausiai pastebėjote, kad vietinio IP adreso skirtumas yra skirtingas. Skaitykite toliau, kad sužinotumėte skirtumus.
Jei atliksite daug tinklų klastojimo, konfigūruojamų LAN programų ir serverių įrankių arba tiesiog įdomu, jūs tikriausiai pastebėjote, kad vietinio IP adreso skirtumas yra skirtingas. Skaitykite toliau, kad sužinotumėte skirtumus.

Šiandieninė klausimų ir atsakymų sesija pateikiama su "SuperUser" - "Stack Exchange", bendruomenės valdoma Q & A grupių asociacija.

Klausimas

SuperUser skaitytojas Diogo nori žinoti, kodėl ping komanda skirtingai traktuoja vietinį ir vietinį IP adresus, kai ant jų paviršiaus jie yra tokie patys:

Using cmd and ping on Windows gave me the following results:

Pinging “localhost”:

Pinging “192.168.0.10” (local IP address):
Pinging “192.168.0.10” (local IP address):
Aren’t both situations exactly the same?
Aren’t both situations exactly the same?

I mean, I’m pinging the same interface, the same machine and the same address. Why do I get such different results?

Akivaizdu, kad yra tam tikros rūšies skirtumas, bet kas tiksliai vyksta, kai pereinaite tarp dviejų?

Atsakymas

"SuperUser" autorius Tom Wijsman pateikia žemiau pateiktą supratimą apie subtilius skirtumus tarp dviejų:

You are not pinging the same interface, without any physical interfaces you still have a “local host”.

Your

localhost

naudojamas norint nukreipti kompiuterį iš jo "vidinio" IP, o ne iš bet kurių "išorinių" jūsų kompiuterio IP. Taigi, ping paketai neatitinka jokios fizinės tinklo sąsajos; tik per virtualios kilpos atgalinę sąsają, kuri tiesiogiai siunčia paketus iš uosto į uostą be jokių fizinių apynių.

Galbūt vis dar stebisi, kodėl

localhost

išsprendžia

::1

o tradiciškai mes tikimės, kad ji išspręs prie IPv4 adreso

127.0.0.1

. Prisimink tai

.localhost

yra tradiciškai TLD (žr. RFC 2606), kuris atkreipia dėmesį į atgalinį IP adresą (IPv4, žr. RFC 3330, ypač 127.0.0.0/8).

Ieškau

localhost

naudojant

nslookup

suteikia mums:

nslookup localhost

… Name: localhost Addresses:::1 127.0.0.1

Taigi "Windows" nori naudoti IPv6 kilpos atgal IP adresą

::1

(žr. RFC 2373), kaip nurodyta pirmiau.

Gerai, taip, iš kur jis kilęs, pažvelkime į failą "hosts".

type %WINDIR%System32DriversEtcHosts

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

Hmm, turime pažvelgti į "Windows" DNS nustatymus.

Šis KB straipsnis nurodo, koks yra nustatymas, kuris paveikia tai, ko "Windows" nori, paryškintu šriftu.

  1. Registro redaktoriuje suraskite ir spustelėkite šį registro raktą:

    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpip6Parameters

  2. Dukart spustelėkite "DisabledComponents", kad pakeistumėte "DisabledComponents" įrašą.Pastaba: jei parinktis "DisabledComponents" nepasiekiamas, turite jį sukurti. Norėdami tai padaryti, atlikite šiuos veiksmus:

    1. Meniu Redagavimas pasirinkite Naujas, tada spustelėkite DWORD (32 bitų) reikšmė.
    2. Įrašykite "DisabledComponents", tada paspauskite "ENTER".
    3. Dukart spustelėkite "DisabledComponents".
  3. Lauke Reikšmės duomenys įveskite bet kurią iš šių reikšmių, norėdami konfigūruoti IPv6 protokolą norima būsena, tada spustelėkite Gerai:

    • Įveskite

      0

      įgalinti visus "IPv6" komponentus. (Numatytasis Windows nustatymas)

    • Įveskite

      0xffffffff

      išjungti visus IPv6 komponentus, išskyrus IPv6 kilpos sąsają. Ši vertė taip pat konfigūruoja "Windows", norėdama naudoti IPv4 protokolą (IPv4) per IPv6, pakeisdama prefiksų politikos lentelės įrašus. Norėdami gauti daugiau informacijos, žr. Šaltinio ir paskirties adreso parinkimas.

    • Įveskite

      0x20

      pirmenybę teikti IPv4 per IPv6, modifikuodami įrašus prefiksų politikos lentelėje.

    • Įveskite

      0x10

      išjungti "IPv6" visose "nontunnel" sąsajose (tiek LAN, tiek "point-to-point" protokolo (PPP) sąsajose).

    • Įveskite

      0x01

      išjungti IPv6 visose tunelio sąsajose. Tai yra automatinio tunelių adresavimo protokolas (ISATAP), 6to4 ir Teredo.

    • Įveskite

      0x11

      išjungti visas IPv6 sąsajas, išskyrus IPv6 kilpos sąsają.

  4. Iš naujo paleiskite kompiuterį, kad šis nustatymas pradėtų veikti.

Kas yra šios prefikso politikos lentelė?

netsh interface ipv6 show prefixpolicies

(arba

prefixpolicy

ankstesnėse versijose)

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

Ši lentelė sprendžia, kokie prefiksai turi pirmenybę prieš kitus prefiksus, kai DNS išsprendžia.

Ah, taigi, naudojant tą KB, galėtume pridėti įrašų čia, kad būtų nurodyta, kad IPv4 turi aukštesnę pirmenybę nei IPv6.

Pastaba: Nėra priežasties ignoruoti šį elgesį, nebent susidūrėte su problemomis. Šio nustatymo pakeitimas mūsų "Windows Server" sulaužė mūsų pašto serverį, todėl jį reikia elgtis atsargiai …

Nieko mums patinka ne tik nuodugnus ir informatyvus atsakymas, bet ir susietos paramos dokumentai. Akivaizdu, kad vietinio ir vietinio IP adresai yra skirtingi subjektai, jie naudojami skirtingiems tikslams ir dabar mes visi žinome, kodėl.

Ar turite ką nors įtraukti į paaiškinimą? Garsas išjungtas komentaruose. Norite skaityti daugiau atsakymų iš kitų "Tech-savvy Stack Exchange" vartotojų? Patikrinkite visą diskusijų temą čia.

Rekomenduojamas: