IPv6 bei Loopback-Adresse deaktivieren (Localhost, Computername,…)

15

Wir haben versucht, ein Softwareprodukt eines Drittanbieters auf einem neuen Windows Server 2008 R2-Computer zu installieren, und festgestellt, dass alles funktioniert, außer dass auf lokale Dienste über Loopback-Adressen wie localhostoder den Computernamen zugegriffen wird (z. B .: wird VPS-Webin aufgelöst localhost). Wir verwenden IPv6 nicht 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, aber das Protokoll für wurde nicht deaktiviert localhost. Pinging localhostoder VPS-Webwird weiterhin ::1:anstelle von zurückkehren 127.0.0.1. Ich kann verwenden ping localhost -4, um die richtige Adresse zu erhalten, aber IPv6 hat Vorrang vor IPv4, sodass die Software von Drittanbietern nur die IPv6-Adresse erhält.

Greg Bray
quelle
Haben Sie versucht, den Anbieter zu kontaktieren, um zu prüfen, ob eine Problemumgehung vorliegt? Ping fordert die IPv6-Adresse an, daher erhält es :: 1, Anwendungen, die IPv6 nicht unterstützen, erhalten diese Adressen jedoch nicht.
Chris S
Die Software ist ein Gräuel an verschiedenen Komponenten (JAVA, Tomcat, Apache, MSSQL, SAP, JDBC, WMI), von denen jede das Problem sein könnte. Ich verwende kein IPv6 und möchte es daher deaktivieren. Ich habe auch Bedenken, dass es anscheinend keine Möglichkeit gibt, dies für den Loopback-Adapter zu tun.
Greg Bray

Antworten:

12

Ich hatte die Hostdatei zunächst wie von SilverbackNet vorgeschlagen überprüft, 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

#Gibt einen Kommentar in der Hostdatei an, sodass alle Einträge auskommentiert werden und die erste Zeile etwas verwirrend ist. Ich bemerkte dann, dass es zwei Einträge für localhost gab, die auskommentiert wurden, also habe ich versucht, den IPv4-Eintrag zu entfernen, und es hat funktioniert! Ich hätte das zuerst versuchen sollen, aber ich wurde von der ersten Zeile aus der Bahn geworfen. Wenn Sie die folgende Host-Datei verwenden, die den Computernamen oder localhost pingt, wird immer eine IPv4-Adresse zurückgegeben, wodurch das Problem mit der Software von Drittanbietern behoben wird!

# localhost name resolution is handled within DNS itself.
#   ::1         localhost
127.0.0.1       localhost
127.0.0.1       VPS-Web
Greg Bray
quelle
Hat dies das in netstat empfangene ipv6 ([::]) entfernt?
Jared Burrows
Es tut nicht. [::] ist das IPv6-Äquivalent von 0.0.0.0, das alle verfügbaren IP-Adressen auf dem System darstellt. Das obige Update ist speziell für die Localhost-Loopback-Adresse. Ich habe sowohl die obigen Einstellungen als auch den Registrierungsschlüssel DisabledComponents = 0xffffffff und sehe immer noch Anwendungen, die [::] abhören. Ich weiß nicht, ob es eine Möglichkeit gibt, IPv6 vollständig zu deaktivieren.
Greg Bray
Vielen Dank für die Bestätigung meines Problems! Ich habe nur dafür gesorgt :)
Jared Burrows
Das hat bei mir nicht funktioniert. Ich habe den DNS-Cache
geleert
5

Einstellung "DisabledComponents" = 0x20 unter

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip6 \ Parameters \

Legt fest, dass dieser Computer IPv4 anstelle von IPv6 in Präfixrichtlinien verwendet.

Erstellen Sie den Registrierungsschlüssel, falls er nicht vorhanden ist.

Irgendein Typ
quelle
2

Der erste ServerFault-Thread zur Verwendung des DisabledComponentsRegistrierungswerts ist der beste Weg, dies zu tun. In einem gut funktionierenden Netzwerk sollte das Optimieren von Hostdateien niemals erforderlich sein. Die Registrierungsoptimierung ist auch über Gruppenrichtlinien viel einfacher bereitzustellen und wiederherzustellen, wenn Sie über ein Active Directory verfügen.

Der Grund, warum es nicht funktioniert hat, ist, dass diese DisabledComponentsRegistrierungseinstellung als Satz von Bit-Flags gelesen wird und nicht einfach ein oder aus ist. Hier ist die offizielle Dokumentation von Microsoft zu diesem Thema:
Deaktivieren von IP Version 6 (IPv6) oder seiner spezifischen Komponenten in Windows 7, Windows Vista, Windows Server 2008 R2 und Windows Server 2008

Um IPv6 unter Vista / 2008 und höher vollständig zu deaktivieren, setzen Sie den Wert DisabledComponentsauf 0xff. Ich mache das auf jedem Computer, den ich verwalte, auf dem wir IPv6 nicht explizit verwenden. Es hat den netten Nebeneffekt, dass die Ausgabe des ipconfigBefehls erheblich verkürzt wird .

Ryan Bolger
quelle
2
Gemäß Ihrem Link ( support.microsoft.com/kb/929852#letmefixit ) ermöglicht dieser Registrierungseintrag das Deaktivieren von IPv6 an vielen Stellen, AUSSER Loopback ...
Frank Nocke
1
Du hast Recht. Es gibt jedoch Werte, die die Standardnetzwerkfunktionalität dahingehend ändern, dass IPv4 IPv6 vorgezogen wird, wodurch die Probleme des OP beim Herstellen einer Verbindung mit localhost oder dem NetBIOS-Computernamen effektiv gelöst werden.
Ryan Bolger
Keines davon hat in Windows Server 2012R2 tatsächlich funktioniert. Dazu gehören der Versuch, Hosts zu ändern, die Registrierungseinstellung DisabledComponents sowie viele andere Ideen, die ich an anderer Stelle gesehen habe. Funktioniert unter Windows Server 2008, aber ich habe keine Lösung für 2012R2.
Scott White
Sie müssen neu starten, nachdem Sie den DisabledComponents-Wert geändert haben. Wenn Sie es auf 0xffffffff eingestellt haben, funktioniert es auf keinen Fall, auch nicht auf 2012R2. Die Ergebnisse der Ausführung einer ipconfig sollten nichts zurückgeben, was mit IPv6 zu tun hat, und als solches sollte ping localhost die v4-Adresse anpingen.
Ryan Bolger
Neue Ergebnisse zeigen, dass der richtige Wert 0xFF anstelle von 0xFFFFFFF sein sollte, um eine Startverzögerung von 5 Sekunden zu vermeiden. Weitere Informationen finden Sie in der aktualisierten Microsoft-Version KB929852 (das Loopback wird jedoch immer noch nicht deaktiviert)
wandersick
2

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 es jedoch auf dem Servernamen basiert, funktioniert dies wahrscheinlich nicht.

SilverbackNet
quelle
1
Die Hosts-Datei unter Windows befindet sich unter% systemroot% \ system32 \ drivers \ etc. Auch wenn sie keinen IPv6-Verweis für localhost-Ping enthält, erhält localhost eine :: 1-Antwort.
Helvick
Sie erhalten eine 127.0.0.1-Antwort, wenn Sie localhost dem
Frank Nocke
0

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

JohnThePro
quelle
3
Funktioniert nicht für Loopback-Adresse ...
Greg Bray
awww! :( haha ​​!!
JohnThePro
Dadurch wird nur die LAN-Schnittstelle deaktiviert. Der Tunnel und das Loopback sind hier noch verbunden (Überprüfung über die Netsh-Schnittstelle ipv6> show interface)
Chadddada
-3

Versuchen Sie, Ihrer hosts-Datei eine Zeile wie folgt hinzuzufügen:

::1 VPW-Web

Dies sollte es dem Resolver ermöglichen, VPW-Webeinen Namen für das IPv6-Loopback zu erhalten.

BillThor
quelle