Wenn Sie viel am Netzwerk basteln, LAN-basierte Apps und Servertools konfigurieren oder einfach nur neugierig sind, haben Sie wahrscheinlich bemerkt, dass es einen Unterschied zwischen dem localhost und der lokalen IP-Adresse gibt. Lesen Sie weiter, um die Unterschiede zu erfahren.

Die heutige Frage-und-Antwort-Sitzung kommt mit freundlicher Genehmigung von SuperUser – einer Unterabteilung von Stack Exchange, einer Community-gesteuerten Gruppierung von Q&A-Websites.



Die Frage

SuperUser-Leser Diogo möchte wissen, warum der Ping-Befehl den localhost und die lokale IP-Adresse unterschiedlich behandelt, wenn sie oberflächlich betrachtet gleich erscheinen:

Mit cmd und ping unter Windows habe ich die folgenden Ergebnisse erhalten:

Localhost anpingen:

Ping 192.168.0.10 (lokale IP-Adresse):

Sind nicht beide Situationen genau gleich?

Ich meine, ich pinge dieselbe Schnittstelle, dieselbe Maschine und dieselbe Adresse. Warum erhalte ich so unterschiedliche Ergebnisse?

Offensichtlich gibt es einen Unterschied, aber was genau passiert, wenn Sie zwischen den beiden wechseln?

Die Antwort

SuperUser-Mitwirkender Tom Wijsman bietet den folgenden Einblick in die feinen Unterschiede zwischen den beiden:

Sie pingen nicht dieselbe Schnittstelle , ohne physische Schnittstellen haben Sie immer noch einen lokalen Host.

Ihr |_+_| wird verwendet, um von seiner internen IP auf Ihren Computer zu verweisen, nicht von externen IPs Ihres Computers. Die Ping-Pakete passieren also keine physische Netzwerkschnittstelle; nur über eine virtuelle Loopback-Schnittstelle, die die Pakete ohne physische Hops direkt von Port zu Port sendet.

Sie fragen sich vielleicht immer noch, warum |_+_| wird in |_+_| aufgelöst, während wir normalerweise erwarten würden, dass es in die IPv4-Adresse |_+_| aufgelöst wird. Beachten Sie, dass |_+_| ist traditionell eine TLD (siehe RFC 2606 ), die auf die Loopback-IP-Adresse zurückzeigt (für IPv4 siehe RFC 3330 , insbesondere 127.0.0.0/8).

Nachschlagen |_+_| mit |_+_| gibt uns:

localhost

localhost

Daher bevorzugt Windows die IPv6-Loopback-IP-Adresse |_+_| (sehen RFC 2373 ) wie es zuerst aufgeführt ist.

Okay, woher kommt es, schauen wir uns die Hosts-Datei an.

::1

127.0.0.1

Hmm, wir müssen uns die DNS-Einstellungen von Windows ansehen.

Dieser KB-Artikel erzählt uns von einer Einstellung, die beeinflusst, was Windows bevorzugt, fett hervorgehoben:

  1. Suchen Sie im Registrierungs-Editor den folgenden Registrierungsunterschlüssel, und klicken Sie darauf: |_+_|
  2. Doppelklicken Sie auf DisabledComponents, um den DisabledComponents-Eintrag zu ändern. Hinweis: Wenn der DisabledComponents-Eintrag nicht verfügbar ist, müssen Sie ihn erstellen. Gehen Sie dazu folgendermaßen vor:
    1. Zeigen Sie im Menü Bearbeiten auf Neu, und klicken Sie dann auf DWORD-Wert (32-Bit).
    2. Geben Sie DisabledComponents ein, und drücken Sie dann die EINGABETASTE.
    3. Doppelklicken Sie auf DisabledComponents.
  3. Geben Sie einen der folgenden Werte in das Feld Wertdaten: ein, um das IPv6-Protokoll auf den gewünschten Status zu konfigurieren, und klicken Sie dann auf OK:
    • Geben Sie |_+_| . ein um alle IPv6-Komponenten zu aktivieren. (Windows-Standardeinstellung)
    • Geben Sie |_+_| . ein um alle IPv6-Komponenten außer der IPv6-Loopback-Schnittstelle zu deaktivieren. Dieser Wert konfiguriert auch Windows so, dass es die Verwendung von Internet Protocol Version 4 (IPv4) gegenüber IPv6 bevorzugt, indem Einträge in der Präfix-Richtlinientabelle geändert werden. Weitere Informationen finden Sie unter Auswahl der Quell- und Zieladresse.
    • Geben Sie |_+_| . ein um IPv4 gegenüber IPv6 zu bevorzugen, indem Sie Einträge in der Präfix-Richtlinientabelle ändern.
    • Geben Sie |_+_| . ein um IPv6 auf allen Nicht-Tunnel-Schnittstellen zu deaktivieren (sowohl auf LAN- als auch auf Point-to-Point Protocol [PPP]-Schnittstellen).
    • Geben Sie |_+_| . ein um IPv6 auf allen Tunnelschnittstellen zu deaktivieren. Dazu gehören Intra-Site Automatic Tunnel Addressing Protocol (ISATAP), 6to4 und Teredo.
    • Geben Sie |_+_| . ein um alle IPv6-Schnittstellen außer der IPv6-Loopback-Schnittstelle zu deaktivieren.
  4. Starten Sie den Computer neu, damit diese Einstellung wirksam wird.

Was ist diese Präfix-Richtlinientabelle?

|_+_| (oder |_+_| bei früheren Versionen)

.localhost

Diese Tabelle entscheidet, welche Präfixe während der DNS-Auflösung Vorrang vor anderen Präfixen haben.

Ah, mit dieser KB könnten wir hier Einträge hinzufügen, die angeben, dass IPv4 eine höhere Priorität als IPv6 hat.

Notiz: Es gibt keinen Grund, dieses Verhalten zu überschreiben, es sei denn, Sie haben Kompatibilitätsprobleme. Das Ändern dieser Einstellung auf unserem Windows-Server hat unseren Mailserver kaputt gemacht, daher sollte es mit Vorsicht behandelt werden…

Anzeige

Es gibt nichts, was wir mehr mögen als eine gründliche und informative Antwort mit verlinkten Support-Dokumenten. Der localhost und die lokale IP-Adresse sind eindeutig unterschiedliche Einheiten, dienen verschiedenen Zwecken, und jetzt wissen wir alle warum.


Möchten Sie der Erklärung noch etwas hinzufügen? Ton in den Kommentaren ab. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange-Benutzern lesen? Sehen Sie sich hier den vollständigen Diskussionsthread an .

WEITER LESEN
  • › 5 Websites, die jeder Linux-Benutzer mit einem Lesezeichen versehen sollte
  • Cyber ​​Monday 2021: Die besten Tech-Deals
  • › Funktionen vs. Formeln in Microsoft Excel: Was ist der Unterschied?
  • › Was ist MIL-SPEC Fallschutz?
  • › Der Computerordner ist 40: Wie Xerox Star den Desktop erstellte
  • › So finden Sie Ihr Spotify Wrapped 2021