fragen stichworte

IPv6 für Loopback-Adresse deaktivieren (Localhost, Computername, ...)

Wir haben versucht, ein Drittanbieter-Softwareprodukt auf einem neuen Windows Server 2008 R2-Computer zu installieren, und haben festgestellt, dass alles funktioniert, mit Ausnahme des Zugriffs auf lokale Dienste über Loopback-Adressen wie localhost oder den Computernamen (z. B. VPS-Web) localhost). Wir verwenden kein IPv6 und möchten es deaktivieren, bis die Software kompatibel ist.

Ich habe versucht, diese Anweisungen zum Deaktivieren von IPv6 unter Windows 2008 R2 zu verwenden, das Protokoll für localhost wurde jedoch nicht deaktiviert. Bei Ping localhost oder VPS-Web wird weiterhin ::1: anstelle von 127.0.0.1 zurückgegeben. Ich kann ping localhost -4 verwenden, um die korrekte Adresse zu erhalten, aber IPv6 hat Vorrang vor IPv4, sodass die Software von Drittanbietern nur die IPv6-Adresse erhält.

antworten

Ich hatte die Hostdatei ursprünglich geprüft, wie von SilverbackNet vorgeschlagen, aber auf einem Windows 2008 R2-Server ist dies die Standarddatei:

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost

# kennzeichnet einen Kommentar in der Hostdatei, daher werden alle Einträge auskommentiert und die erste Zeile ist etwas verwirrend. Ich bemerkte dann, dass es zwei Einträge für localhost gab, die auskommentiert wurden, also versuchte ich, das IPv4 zu kommentieren und es funktionierte! Ich hätte das zuerst versuchen sollen, aber ich wurde von der ersten Zeile aus der Bahn geworfen. Bei Verwendung der folgenden Host-Datei wird beim Ping des Computernamens oder localhost immer eine IPv4-Adresse zurückgegeben, wodurch das Problem mit der Drittanbieter-Software behoben wird!

# localhost name resolution is handled within DNS itself.
#   ::1         localhost
127.0.0.1       localhost
127.0.0.1       VPS-Web

Einstellung "DisabledComponents" = 0x20 unter

HKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\ Dienste \\ Tcpip6 \\ Parameter \\

setzt diesen Computer so, dass in Präfix-Richtlinien IPv4 anstelle von IPv6 verwendet wird.

Erstellen Sie den Registrierungsschlüssel, wenn er nicht existiert.

Haben Sie versucht, den Eintrag aus der Hosts-Datei in% systemroot% \ system32 \ drivers \ etc zu entfernen? Das sollte es tun, wenn Sie nur "localhost" benötigen, um immer IPv4 zu sein. Wenn dies jedoch auf dem Servernamen basiert, funktioniert dies wahrscheinlich nicht.

Der erste ServerFault-Thread zur Verwendung des Registrierungswerts DisabledComponents ist wirklich der beste Weg, dies zu tun. Hosts-Datei-Tweaking sollte in einem gut funktionierenden Netzwerk niemals erforderlich sein. Das Registry-Tweak ist außerdem viel viel einfacher bereitzustellen und mithilfe von Gruppenrichtlinien wiederherzustellen, wenn Sie über Active Directory verfügen.

Der Grund dafür ist, dass die Registrierungseinstellung DisabledComponents als Satz von Bitflags gelesen wird und nicht einfach ein- oder ausgeschaltet ist. Hier ist die offizielle Dokumentation von Microsoft zum Thema:
Deaktivieren der IP-Version 6 (IPv6) oder ihrer spezifischen Komponenten in Windows 7, Windows Vista, Windows Server 2008 R2 und Windows Server 2008

Um die vollständige Deaktivierung von IPv6 unter Vista/2008 und darüber hinaus zu deaktivieren, setzen Sie den Wert von DisabledComponents auf 0xff. Ich mache dies auf jedem Computer, den ich verwalte, wo IPv6 nicht explizit verwendet wird. Dies hat den schönen Nebeneffekt, dass die Ausgabe des Befehls ipconfig erheblich verkürzt wird.

Sie können auch die Eigenschaften der Netzwerkkarte selbst aufrufen und das Kontrollkästchen IPv6 deaktivieren, sodass IPv4 aktiviert bleibt. Sollte den Trick tun.