A mai Kérdések és válaszok munkamenetét a SuperUser - a Stack Exchange, a Q & A weboldalak közösség által irányított csoportosulásának részlegével - köszönheti.
A kérdés
A SuperUser olvasó Diogo azt szeretné tudni, hogy a ping parancs miért kezeli a localhost-ot és a helyi IP-címet, ha a felszínen ugyanazok a dolgok:
Using cmd and ping on Windows gave me the following results:
Pinging “localhost”:
I mean, I’m pinging the same interface, the same machine and the same address. Why do I get such different results?
Nyilvánvaló, hogy van valami különbség, de mi történik pontosan, amikor a kettő között váltasz?
A válasz
Tom Wijsman SuperUser munkatársa az alábbi betekintést nyújtja a kettő közötti finom különbségekre:
You are not pinging the same interface, without any physical interfaces you still have a “local host”.
Your
localhost
hogy a számítógépét a "belső" IP-jéről, nem pedig a számítógép "külső" IP-jéről érinti. Tehát a ping csomagok nem mennek át semmilyen fizikai hálózati interfészen; csak virtuális hurok hátoldali interfészen keresztül, amely közvetlenül küld a csomagokat portról portra fizikai komló nélkül.
Talán még mindig csodálkozol, miért
localhost
megoldja
::1
míg hagyományosan azt várnánk, hogy megoldja az IPv4 címét
127.0.0.1
. Vegye figyelembe, hogy
.localhost
hagyományosan egy TLD (lásd az RFC 2606-ot), amely a visszacsatolt IP-címre mutat (IPv4 esetén lásd: RFC 3330, különösen 127.0.0.0/8).
Felnézni
localhost
használva
nslookup
ad nekünk:
nslookup localhost
… Name: localhost Addresses:::1 127.0.0.1
Így a Windows inkább az IPv6 loop back IP címet használja
::1
(lásd az RFC 2373-at), ahogy az először szerepel.
Oké, szóval, honnan származik, nézzük meg a gazda fájlokat.
type %WINDIR%System32DriversEtcHosts
… # localhost name resolution is handled within DNS itself. # 127.0.0.1 localhost #::1 localhost …
Hmm, meg kell néznünk a Windows DNS-beállításait.
Ez a KB cikk egy olyan beállításról szól, amely befolyásolja a Windows által kedvelt, félkövérrel hangsúlyozott beállításokat:
-
A Rendszerleíróadatbázis-szerkesztőben keresse meg, majd kattintson a következő rendszerleíró alkulcsra:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpip6Parameters
-
Kattintson duplán a DisabledComponents elemre a DisabledComponents bejegyzés módosításához. Megjegyzés: Ha a DisabledComponents bejegyzés nem érhető el, létre kell hoznia. Ehhez kövesse az alábbi lépéseket:
- A Szerkesztés menüben mutasson az Új pontra, majd kattintson a DWORD (32-bit) értékre.
- Írja be a DisabledComponents elemet, majd nyomja le az ENTER billentyűt.
- Kattintson duplán a DisabledComponents elemre.
-
Írja be a következő értékek valamelyikét a Value data: mezőbe, hogy az IPv6 protokollt a kívánt állapotba állítsa, majd kattintson az OK gombra:
-
típus
0
az összes IPv6 összetevő engedélyezéséhez. (Windows alapértelmezett beállítása)
-
típus
0xffffffff
az összes IPv6-összetevő letiltása, kivéve az IPv6 visszacsatolási felületet. Ez az érték azt is beállítja, hogy a Windows úgy döntse meg, hogy az IPv6 protokollon keresztül használja az Internet Protokoll 4-es verzióját (IPv4). További információ: Forrás és cél cím kiválasztása.
-
típus
0x20
hogy az IPv4 protokollt az IPv6 protokollal szemben előnyben részesítsék az előtag irányelv táblázatában szereplő bejegyzések módosításával.
-
típus
0x10
letiltja az IPv6-ot az összes nem-illesztőfelületen (mind LAN, mind Point-to-Point Protocol [PPP] interfészeken).
-
típus
0x01
letiltani az IPv6-ot az összes alagút-interfészen. Ezek közé tartozik az Intra-Site Automatic Tunnel Addressing Protocol (ISATAP), a 6to4 és a Teredo.
-
típus
0x11
az összes IPv6 interfész letiltása, kivéve az IPv6 loopback interfészt.
- Indítsa újra a számítógépet ehhez a beállításhoz.
Mi ez az előtag irányelv táblázat?
netsh interface ipv6 show prefixpolicies
(vagy
prefixpolicy
a korábbi verziókban)
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
Ez a tábla eldönti, hogy mely prefixek kapnak elsőbbséget a többi előtaghoz a DNS megoldások során.
Ah, tehát a KB használatával itt beilleszthetünk bejegyzéseket, amelyek azt jelzik, hogy az IPv4 nagyobb prioritást élvez, mint az IPv6.
Jegyzet: Nincs ok arra, hogy felülírjuk ezt a viselkedést, hacsak nem kompromisszumos problémákat tapasztal. Ennek a beállításnak a megváltoztatása a Windows Server rendszerben eltörte levelezőszerverünket, ezért gondosan kell kezelni …
Semmi sem szeretünk többet, mint egy alapos és informatív választ a kapcsolódó támogató dokumentumokkal. Nyilvánvalóan a localhost és a helyi IP-cím különálló entitások, különböző célokat szolgálnak, és most mindannyian tudjuk, miért.
Van valami a magyarázathoz? Hangzik ki a megjegyzésekben. Szeretne többet válaszolni a többi technikus-tudós Stack Exchange felhasználóiról? Nézze meg a teljes vitafonalat itt.