Disabilita IPv6 sull'indirizzo Loopback (Localhost, Nome computer, ...)


15

Abbiamo provato a installare un prodotto software di terze parti su una nuova macchina Windows Server 2008 R2 e abbiamo scoperto che tutto funziona tranne l'accesso ai servizi locali tramite indirizzi di loopback come localhosto il nome del computer (es: VPS-Webche si risolve in localhost). Non stiamo usando IPv6 e vorremmo disabilitarlo fino a quando il software non è compatibile.

Ho provato a usare queste istruzioni per disabilitare IPv6 su Windows 2008 R2 ma non ha disabilitato il protocollo per localhost. Il ping localhosto VPS-Webverrà comunque restituito ::1:anziché 127.0.0.1. Posso usare ping localhost -4per ottenere l'indirizzo corretto, ma IPv6 ha la precedenza su IPv4, quindi il software di terze parti ottiene solo l'indirizzo IPv6.


Hai provato a contattare il fornitore per vedere se hanno una soluzione alternativa? Ping richiede l'indirizzo IPv6, quindi otterrà :: 1, tuttavia le applicazioni che non supportano IPv6 non otterranno quegli indirizzi.
Chris S,

Il software è un abominio di vari componenti (JAVA, Tomcat, Apache, MSSQL, SAP, JDBC, WMI), ognuno dei quali potrebbe essere il problema. Non sto usando IPv6, quindi mi piacerebbe disabilitarlo. Inoltre mi preoccupa che non sembra esserci un'opzione per farlo per l'adattatore di loopback.
Greg Bray,

Risposte:


12

Inizialmente avevo controllato il file host come suggerito da SilverbackNet, ma su un server Windows 2008 R2 questo è il file predefinito:

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

#indica un commento nel file host, quindi tutte le voci sono commentate e la prima riga è un po 'confusa. Ho poi notato che c'erano due voci per localhost che sono state commentate, quindi ho provato a rimuovere il commento da quello IPv4 e ha funzionato! Avrei dovuto provarlo per primo, ma sono stato buttato fuori pista dalla prima riga. Usando il file host qui sotto il ping del nome del computer o localhost restituirà sempre un indirizzo IPv4, che risolve il problema con il software di terze parti!

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

Questo ha rimosso l'ascolto di ipv6 ([::]) in netstat?
Jared Burrows

Non è così. [::] è l'equivalente IPv6 di 0.0.0.0, che rappresenta tutti gli indirizzi IP disponibili sul sistema. La correzione precedente è specifica per l'indirizzo di loopback localhost. Ho entrambe le impostazioni sopra e la chiave del Registro di sistema DisabledComponents = 0xffffffff e continuo a vedere le applicazioni in ascolto su [::]. Non so se esiste un modo per disabilitare completamente IPv6.
Greg Bray,

Grazie per aver confermato il mio problema! Stavo solo per essere sicuro :)
Jared Burrows,

Questo non ha funzionato per me. Ho svuotato la cache DNS e riavviato, ma restituisce ancora un indirizzo IPv6 ...
jj_

5

Impostazione "DisabledComponents" = 0x20 in

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

imposterà quella macchina per usare IPv4 invece di IPv6 nei criteri di prefisso.

Crea la chiave di registro se non esiste.


2

Il thread ServerFault iniziale sull'utilizzo del DisabledComponentsvalore di registro è davvero il modo migliore per farlo. L'ottimizzazione dei file host non dovrebbe mai essere necessaria in una rete ben funzionante. La modifica del registro è anche molto più semplice da distribuire e ripristinare tramite criteri di gruppo se si dispone di Active Directory.

Il motivo per cui non ha funzionato è perché l' DisabledComponentsimpostazione del registro viene letta come un insieme di bit flag e non semplicemente attivato o disattivato. Ecco la documentazione ufficiale di Microsoft sull'argomento:
Come disabilitare IP versione 6 (IPv6) o i suoi componenti specifici in Windows 7, Windows Vista, Windows Server 2008 R2 e Windows Server 2008

La versione breve è che per disabilitare completamente IPv6 su Vista / 2008 e oltre, impostare il valore di DisabledComponentssu 0xff. Lo faccio su ogni macchina che gestisco dove non stiamo usando esplicitamente IPv6. Ha il piacevole effetto collaterale di ridurre significativamente l'output del ipconfigcomando.


2
Secondo il tuo link ( support.microsoft.com/kb/929852#letmefixit ) questa voce del registro di sistema consente di disabilitare IPv6 in molti luoghi TRANNE il loopback ...
Frank Nocke,

1
Hai ragione. Tuttavia, ci sono valori che cambiano la funzionalità di rete predefinita per preferire IPv4 su IPv6 che risolverà efficacemente i problemi dell'OP con la connessione a localhost o il nome del computer NetBIOS.
Ryan Bolger,

Nessuno di questi ha effettivamente funzionato per me in Windows Server 2012R2. Ciò include provare a modificare gli host, le impostazioni del registro di DisabledComponents oltre a molte altre idee che ho visto altrove. Funziona su Windows Server 2008 ma non ho soluzione per 2012R2.
Scott White,

È necessario riavviare dopo aver modificato il valore DisabledComponents. Se l'hai impostato su 0xffffffff, non è possibile che non funzionasse nemmeno su 2012R2. I risultati dell'esecuzione di un ipconfig non dovrebbero restituire nulla che sia correlato a IPv6 e, pertanto, eseguire il ping dell'host locale dovrebbe eseguire il ping dell'indirizzo v4.
Ryan Bolger,

I nuovi risultati mostrano che il valore corretto dovrebbe essere 0xFF anziché 0xFFFFFFF per evitare un ritardo di avvio di 5 secondi. Vedi Microsoft KB929852 aggiornato (Questo comunque non disabilita il loopback)
wandersick

2

Hai provato a rimuovere la voce dal file hosts in% systemroot% \ system32 \ drivers \ etc? Dovrebbe farlo, se hai solo bisogno di "localhost" per essere sempre IPv4. Tuttavia, se si basa sul nome del server, probabilmente non funzionerà.


1
Il file hosts su Windows è in% systemroot% \ system32 \ drivers \ etc e anche se non contiene un riferimento ipv6 per il ping di localhost, localhost riceverà una risposta :: 1.
Helvick,

Riceverai una risposta 127.0.0.1, se mapperai localhost su quello (e SOLO su quello, non su IPv6)
Frank Nocke,

0

È anche possibile accedere alle proprietà della scheda NIC stessa e deselezionare la casella IPv6, lasciando IPv4 abilitato. Dovrebbe fare il trucco.


3
Non funziona per l'indirizzo di loopback ...
Greg Bray,

awww! :( ahah !!
JohnThePro il

Questo disabilita solo l'interfaccia LAN. Il tunnel e il loopback sono ancora collegati qui (verifica tramite l'interfaccia netsh ipv6> mostra interfaccia)
Chadddada

-3

Prova ad aggiungere una linea al tuo file hosts come:

::1 VPW-Web

Ciò dovrebbe consentire al resolver di ottenere VPW-Webun nome per il loopback IPv6.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.