Dacă faci o mulțime de tinkering în rețea, configurarea aplicațiilor LAN și a instrumentelor server sau doar curios, ai observat probabil că există o diferență între localhost adresa IP locală. Citiți mai departe pentru a afla diferențele.
Sesiunea de întrebări și răspunsuri din ziua de astăzi vine de la amabilitatea SuperUser - o subdiviziune a Stack Exchange, o grupare bazată pe comunitate a site-urilor Q & A.
Editorul de aplicații SuperUser Diogo dorește să știe de ce comanda ping tratează localhost și adresa IP locală diferit atunci când, la suprafață, ele par a fi aceleași:
Folosind cmd și ping pe Windows mi-a dat următoarele rezultate:
Pinging "localhost":
Pinging "192.168.0.10" (adresă IP locală):
Nu sunt ambele situații exact aceleași?
Vreau să spun că ping aceeași interfață, aceeași mașină și aceeași adresă. De ce obțin rezultate atât de diferite?
Evident, există o diferență de un fel, dar ce se întâmplă exact atunci când comutați între cele două?
Contribuitorul SuperUser Tom Wijsman oferă următoarea perspectivă asupra diferențelor subtile dintre cele două:
Nu parcurgeți aceeași interfață, fără interfețe fizice aveți încă o "gazdă locală".
Ta
gazdă locală
este folosit pentru a vă referi la computerul dvs. din "intern" IP-ul său, nu de la orice IP "externe" ale computerului. Deci, pachetele de ping nu trec prin nici o interfață de rețea fizică; numai printr-o interfață virtuală de buclă spate, care trimite direct pachetele de la port la port fără hamei fizice.S-ar putea să te întrebi de ce
gazdă locală
se rezolvă::1
, în timp ce în mod tradițional ne-am aștepta ca acesta să rezolve adresa IPv4127.0.0.1
. Rețineți că.gazdă locală
este în mod tradițional un TLD (a se vedea RFC 2606) care are loc înapoi la adresa IP a buclei (pentru IPv4, a se vedea RFC 3330, în special 127.0.0.0/8).Privind în sus
gazdă locală
utilizândnslookup
ne ofera:
nslookup localhost
... Nume: localhost Adrese: :: 1 127.0.0.1
Astfel, Windows preferă să utilizeze adresa IP în buclă IPv6
::1
(a se vedea RFC 2373), așa cum este menționat mai întâi.Bine, deci, de unde vine, să ne uităm la dosarul gazdei.
tastați% WINDIR% \ System32 \ Drivers \ Etc \ Hosts
... # resolution localhost este tratată în interiorul DNS. # 127.0.0.1 localhost # :: 1 localhost ...
Trebuie să ne uităm la setările DNS ale Windows.
Acest articol din KB ne spune despre o setare care afectează preferințele Windows, subliniate cu caractere aldine:
- În Registry Editor, localizați și faceți clic pe următoarea subcheie de registry:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip6 \ Parameters
- Faceți dublu clic pe DisabledComponents pentru a modifica intrarea DisabledComponents.Notă: Dacă intrarea DisabledComponents nu este disponibilă, trebuie să o creați. Pentru aceasta, urmați acești pași:
- În meniul Editare, indicați spre Nou, apoi faceți clic pe Valoarea DWORD (32 biți).
- Tastați DisabledComponents, apoi apăsați ENTER.
- Faceți dublu clic pe Componente dezactivate.
- Tastați una dintre următoarele valori în câmpul Date data: pentru a configura protocolul IPv6 la starea dorită, apoi faceți clic pe OK:
- Tip
0
pentru a permite toate componentele IPv6. (Setarea implicită Windows)- Tip
0xffffffff
pentru a dezactiva toate componentele IPv6, cu excepția interfeței loopback IPv6. Această valoare configurează, de asemenea, Windows să preferă să utilizeze Internet Protocol versiunea 4 (IPv4) prin IPv6 prin modificarea intrărilor în tabelul de politică a prefixelor. Pentru mai multe informații, consultați Sursa și selecția adresei destinație.- Tip
0x20
să preferați IPv4 prin IPv6 prin modificarea intrărilor în tabelul de politică a prefixelor.- Tip
0x10
pentru a dezactiva IPv6 pe toate interfețele nontunnel (atât pe interfețe LAN și Point-to-Point Protocol [PPP]).- Tip
0x01
pentru a dezactiva IPv6 pe toate interfețele tunelului. Acestea includ Protocolul de adresare a tunelurilor automate Intra-Site (ISATAP), 6to4 și Teredo.- Tip
0x11
pentru a dezactiva toate interfețele IPv6, cu excepția interfeței loopback IPv6.- Reporniți computerul pentru ca această setare să aibă efect.
Ce este această tabelă de politică de prefixe?
netsh interfața ipv6 arată prefixpolicies
(sauprefixpolicy
pe versiunile anterioare)Prefixul etichetei 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
Acest tabel determină ce prefixe au prioritate față de alte prefixe în timpul rezolvării DNS.
Ah, folosind acel KB, putem adăuga aici intrări care indică faptul că IPv4 are o prioritate mai mare decât IPv6.
Notă: Nu există niciun motiv pentru a suprascrie acest comportament, cu excepția cazului în care întâmpinați probleme compatibile. Schimbarea acestei setări pe serverul nostru Windows a rupt serverul nostru de mail, așa că ar trebui să fie tratată cu grijă ...
Nu este nimic mai mult decât un răspuns aprofundat și informativ, cu documente de sprijin legate de rezervă. În mod evident, adresa locală și adresa IP locală sunt entități distincte, servesc unor scopuri diferite și acum știm cu toții de ce.
Aveți ceva de adăugat la explicație? Sunați în comentariile. Doriți să citiți mai multe răspunsuri de la alți utilizatori de tehnologie Stack Exchange? Check out discuția completă aici.