Šodienas jautājumu un atbilžu sesija mums priecājas par SuperUser - Stack Exchange dalību, kas ir kopienas vadīta Q & A tīmekļa vietņu grupa.
Jautājums
SuperUser lasītājs Diogo vēlas uzzināt, kāpēc ping komandai ir atšķirīga vietējā vietne un vietējā IP adrese, kad uz virsmas tie ir vienādi.
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?
Acīmredzot ir sava veida atšķirība, bet kas tieši notiek, kad pārslēdzat starp diviem?
Atbilde
SuperUser autors Toms Vijsmans piedāvā šādu ieskatu sīkās atšķirībās starp diviem:
You are not pinging the same interface, without any physical interfaces you still have a “local host”.
Your
localhost
tiek izmantots, lai norādītu uz jūsu datoru no tā "iekšējā" IP, nevis no datora "ārējiem" IP. Tātad, ping paketes neiziet caur jebkuru fizisku tīkla saskarni; tikai ar virtuālās cilpas aizmugures saskarni, kas tieši nosūta paketes no ostas uz ostu bez fiziskiem apiņiem.
Jūs joprojām varētu brīnīties, kāpēc
localhost
ir izlēmusi
::1
bet tradicionāli mēs sagaidām, ka tā atrisināsies uz IPv4 adresi
127.0.0.1
. Pieraksti to
.localhost
tradicionāli ir TLD (skat. RFC 2606), kas norāda uz cilpa atpakaļ IP adresi (attiecībā uz IPv4 skatiet RFC 3330, jo īpaši 127.0.0.0/8).
Skatīties augšup
localhost
izmantojot
nslookup
dod mums:
nslookup localhost
… Name: localhost Addresses:::1 127.0.0.1
Tādējādi Windows izvēlas izmantot IPv6 cilpas atpakaļ IP adresi
::1
(skat. RFC 2373), kā tas ir uzskaitīts pirmajā.
Labi, tāpēc, no kurienes tas nāk, aplūkosim saimnieku failu.
type %WINDIR%System32DriversEtcHosts
… # localhost name resolution is handled within DNS itself. # 127.0.0.1 localhost #::1 localhost …
Hmm, mums jāaplūko Windows DNS iestatījumi.
Šis KB rakstu stāsta par iestatījumu, kas ietekmē to, ko Windows vēlas, treknrakstā uzsvērt:
-
Reģistra redaktorā atrodiet un pēc tam noklikšķiniet uz šādas reģistra apakšatslēgas:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpip6Parameters
-
Veiciet dubultklikšķi uz DisabledComponents, lai mainītu ierakstu "DisabledComponents". Piezīme. Ja ieraksts "DisabledComponents" nav pieejams, jums tas jāizveido. Lai to izdarītu, rīkojieties šādi:
- Izvēlnē Rediģēt norādiet uz Jauns un pēc tam noklikšķiniet uz DWORD (32 bitu vērtība).
- Ierakstiet DisabledComponents un pēc tam nospiediet taustiņu ENTER.
- Veiciet dubultklikšķi uz DisabledComponents.
-
Laukā Vērtības dati ievadiet kādu no šīm vērtībām, lai konfigurētu IPv6 protokolu vēlamajā stāvoklī, un pēc tam noklikšķiniet uz Labi:
-
Tips
0
lai iespējotu visas IPv6 komponentes. (Noklusējuma iestatījums Windows)
-
Tips
0xffffffff
atslēgt visus IPv6 komponentus, izņemot IPv6 loopback interfeisu. Šī vērtība arī konfigurē Windows, lai priekšroku, izmantojot IPv4 interneta protokolu (IPv4), izmantojot IPv6, dodot labojumus, mainot prefiksu politikas tabulas ierakstus. Plašāku informāciju skatiet sadaļā Avota un galamērķa adreses izvēle.
-
Tips
0x20
dod priekšroku IPv4 pār IPv6, mainot ierakstus prefiksu politikas tabulā.
-
Tips
0x10
lai atspējotu IPv6 visos nemanāmās saskarnēs (gan LAN, gan starppunktu protokola [PPP] saskarnēs).
-
Tips
0x01
lai atspējotu IPv6 visos tuneļa saskarnēs. Tie ietver Automātiskā protokola par tuneli risināšanu (ISATAP), 6to4 un Teredo iekšējās vietnes.
-
Tips
0x11
atslēgt visas IPv6 saskarnes, izņemot IPv6 loopback interfeisu.
- Restartējiet datoru, lai šis iestatījums stātos spēkā.
Kas ir prefiksu politikas tabula?
netsh interface ipv6 show prefixpolicies
(vai
prefixpolicy
uz iepriekšējām versijām)
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
Šajā tabulā tiek nolemts, kādi prefiksi ir prioritāte salīdzinājumā ar citiem prefiksiem DNS laikā.
Ah, tāpēc, izmantojot šo KB, mēs varētu pievienot ierakstus šeit, kas norāda, ka IPv4 ir augstāka prioritāte nekā IPv6.
Piezīme: Nav iemesla ignorēt šo uzvedību, ja vien jums neizdodas sadarboties ar problēmām. Mainot šo iestatījumu mūsu Windows Serverā, mēs iznīcinājām mūsu pasta serveri, tāpēc ar to rūpīgi jārīkojas …
Mēs neko nedomājam vairāk kā rūpīgu un informatīvu atbildi, izmantojot saistītus atbalsta dokumentus. Skaidrs, ka localhost un vietējā IP adrese ir atšķirīgas vienības, kas apkalpo dažādus mērķus, un tagad mēs visi zinām, kāpēc.
Vai kaut ko pievienot paskaidrojumam? Skatieties komentāros. Vēlaties lasīt citas atbildes no citiem tehnoloģiju savvy Stack Exchange lietotājiem? Šeit skatiet pilnu diskusiju pavedienu.