24Aug
Wenn Sie viel Netzwerk-Bastelei tun, LAN-basierte Anwendungen und Server-Tools konfigurieren oder einfach nur neugierig sind, haben Sie wahrscheinlich bemerkt, dass es einen Unterschied zwischen dem lokalen Host und der lokalen IP-Adresse gibt. Lesen Sie weiter, um die Unterschiede zu erfahren.
Die heutige Frage &Die Antwortsitzung kommt dank SuperUser, einer Unterteilung von Stack Exchange, einer Community-gesteuerten Gruppierung von Q & A-Websites, zu uns.
Die Frage
SuperUser-Leser Diogo möchte wissen, warum der Ping-Befehl den localhost und die lokale IP-Adresse anders behandelt, wenn sie oberflächlich betrachtet dasselbe sind:
Mit cmd und ping unter Windows habe ich folgende Ergebnisse erhalten:
Pinging "localhost":
Pinging "192.168.0.10"( lokale IP-Adresse):
Sind beide Situationen nicht genau gleich?
Ich meine, ich pinge die gleiche Schnittstelle, die gleiche Maschine und die gleiche Adresse. Warum bekomme ich so unterschiedliche Ergebnisse?
Offensichtlich gibt es einen Unterschied, aber was genau passiert, wenn Sie zwischen den beiden wechseln?
Der Antwort
SuperUser Tom Wijsman bietet die folgenden Einblicke in die feinen Unterschiede zwischen den beiden:
Sie pingen nicht die gleiche Schnittstelle , ohne physikalische Schnittstellen haben Sie immer noch einen "lokalen Host".
Ihr lokaler Host wird verwendet, um von Ihrer "internen" IP auf Ihren Computer zu verweisen, nicht von "externen" IPs Ihres Computers. Daher passieren die Ping-Pakete keine physikalische Netzwerkschnittstelle;nur über eine virtuelle Rückschleifen-Schnittstelle, die die Pakete direkt von Port zu Port ohne physische Sprünge sendet.
Sie fragen sich vielleicht immer noch, warum localhost auf: : 1 auflöst, während wir normalerweise erwarten würden, dass er auf die IPv4-Adresse 127.0.0.1 auflöst. Beachten Sie, dass. localhost traditionell eine TLD ist( siehe RFC 2606), die auf die Loopback-IP-Adresse verweist( für IPv4 siehe RFC 3330, insbesondere 127.0.0.0/8).
Nachschlagen von localhost mit nslookup gibt uns:
nslookup localhost
. .. Name: localhost Adressen:: : 1 127.0.0.1Windows verwendet daher vorzugsweise die IPv6-Schleife zurück IP-Adresse: : 1( siehe RFC 2373) so wie sie istzuerst aufgeführt.
Okay, woher kommt es, schauen wir uns die Datei hosts an.
Typ% WINDIR% \ System32 \ Drivers \ Etc \ Hosts
. .. # localhost Namensauflösung wird innerhalb von DNS selbst behandelt.# 127.0.0.1 localhost #: : 1 localhost. ..Hmm, wir müssen uns die DNS-Einstellungen von Windows anschauen.
Dieser KB-Artikel informiert uns über eine Einstellung, die sich auf Windows auswirkt, fett hervorgehoben:
- Suchen Sie im Registrierungseditor den folgenden Registrierungsunterschlüssel, und klicken Sie darauf: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip6 \ Parameter
- Doppelklicken Sie auf DisableComponents inÄndern Sie den Eintrag DisabledComponents. Hinweis: Wenn der Eintrag DisabledComponents nicht verfügbar ist, müssen Sie ihn erstellen. Gehen Sie hierzu folgendermaßen vor
- Zeigen Sie im Menü Bearbeiten auf Neu, und klicken Sie dann auf DWORD( 32-Bit) -Wert.
- Geben Sie DisabledComponents ein, und drücken Sie dann die EINGABETASTE.
- Doppelklicken Sie auf DisabledComponents.
- Geben Sie im Feld Wertdaten einen der folgenden Werte ein, um das IPv6-Protokoll in den gewünschten Status zu konfigurieren, und klicken Sie anschließend auf OK:
- Geben Sie 0 ein, um alle IPv6-Komponenten zu aktivieren.(Windows-Standardeinstellung)
- Geben Sie 0xffffffff ein, um alle IPv6-Komponenten außer der IPv6-Loopback-Schnittstelle zu deaktivieren. Dieser Wert konfiguriert Windows außerdem so, dass die Verwendung von Internet Protocol Version 4( IPv4) gegenüber IPv6 bevorzugt wird, indem Einträge in der Präfix-Richtlinientabelle geändert werden. Weitere Informationen finden Sie unter Quellen- und Zieladressenauswahl.
- Geben Sie 0x20 ein, um IPv4 über IPv6 zu bevorzugen, indem Sie Einträge in der Präfix-Richtlinientabelle ändern.
- Geben Sie 0x10 ein, um IPv6 auf allen Nicht-Tunnel-Schnittstellen( sowohl auf LAN- als auch auf PPP-Schnittstellen) zu deaktivieren.
- Geben Sie 0x01 ein, um IPv6 für alle Tunnelschnittstellen zu deaktivieren. Dazu gehören das automatische Tunneladressierungsprotokoll( ISATAP), 6to4 und Teredo.
- Geben Sie 0x11 ein, um alle IPv6-Schnittstellen mit Ausnahme der IPv6-Loopback-Schnittstelle zu deaktivieren.
- Starten Sie den Computer neu, damit diese Einstellung wirksam wird.
Was ist diese Präfix-Richtlinientabelle?
netsh-Schnittstelle ipv6 show prefixpolicies( oder prefixpolicy in früheren Versionen)
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: : / 96Diese Tabelle entscheidet, welche Präfixe bei DNS-Auflösungen Vorrang vor anderen Präfixen haben.
Ah, mit dieser KB könnten wir hier Einträge hinzufügen, die anzeigen, dass IPv4 eine höhere Priorität als IPv6 hat.
Hinweis: Es gibt keinen Grund, dieses Verhalten außer Kraft zu setzen, es sei denn, es treten Kompatibilitätsprobleme auf. Das Ändern dieser Einstellung auf unserem Windows-Server hat unseren Mail-Server durchbrochen, so dass es mit Vorsicht behandelt werden sollte. ..
Nichts ist uns lieber als eine gründliche und informative Antwort mit verlinkten Hilfsdokumenten. Offensichtlich sind der lokale Host und die lokale IP-Adresse verschiedene Entitäten, die verschiedenen Zwecken dienen, und jetzt wissen wir alle warum.
Haben Sie etwas zur Erklärung hinzuzufügen? Ton in den Kommentaren ab. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange Benutzern lesen? Sehen Sie sich den vollständigen Diskussionsfaden hier an.