IPv6 (Internet Protocol version 6) is the latest version of the Internet Protocol and is increasingly important for modern internet connectivity. Windows 10, Windows 11, and Windows Server come with IPv6 enabled by default in a dual-stack configuration alongside IPv4. This comprehensive guide will walk you through checking, configuring, and troubleshooting IPv6 on Windows systems.
Win + I)Alternatively, using Control Panel:
Open Command Prompt or PowerShell and run:
ipconfig
Look for lines containing "IPv6 Address" or "Link-local IPv6 address". A typical output shows:
Ethernet adapter Ethernet:
Connection-specific DNS Suffix . :
IPv6 Address. . . . . . . . . . . : 2001:db8:1234:5678::abcd
Link-local IPv6 Address . . . . . : fe80::1234:5678:abcd:ef01%12
IPv4 Address. . . . . . . . . . . : 192.168.1.100
For more detailed information, use PowerShell:
Get-NetIPAddress -AddressFamily IPv6
To check IPv6 binding status on network adapters:
Get-NetAdapterBinding -ComponentID ms_tcpip6
Important Note: Microsoft does not recommend disabling IPv6. Windows Vista, Windows 7, and all newer Windows versions treat IPv6 as a mandatory component. Many modern applications and services depend on IPv6, and disabling it may cause unexpected issues.
To Disable IPv6:
To Enable IPv6:
Follow the same steps but check the IPv6 checkbox instead.
To Disable IPv6:
Disable-NetAdapterBinding -Name "Ethernet" -ComponentID ms_tcpip6
Replace "Ethernet" with your adapter name. To see all adapter names:
Get-NetAdapter
To Enable IPv6:
Enable-NetAdapterBinding -Name "Ethernet" -ComponentID ms_tcpip6
For complete IPv6 disabling across all interfaces:
Win + R, type regedit, and press EnterHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\DisabledComponents0xFF (hexadecimal) to disable IPv6 completelyRegistry Values:
0x00 (default): IPv6 enabled on all interfaces0xFF: IPv6 disabled on all interfaces and tunnel interfaces0x20: Prefer IPv4 over IPv62001:db8:1234:5678::100)64 (automatically filled when you press Tab)2001:db8:1234:5678::1)How to Determine Your IPv6 Address Range:
If you're unsure what IPv6 address to use, check your current automatic configuration:
ipconfig in Command PromptConfigure a static IPv6 address:
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress "2001:db8:1234:5678::100" -PrefixLength 64 -DefaultGateway "2001:db8:1234:5678::1"
Remove an IPv6 address:
Remove-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress "2001:db8:1234:5678::100"
Modify existing IPv6 settings:
Set-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress "2001:db8:1234:5678::100" -PrefixLength 64
netsh interface ipv6 set address "Ethernet" "2001:db8:1234:5678::100"
netsh interface ipv6 add route ::/0 "Ethernet" "2001:db8:1234:5678::1"
2001:4860:4860::8888 for Google DNS)2001:4860:4860::8844 for Google DNS)Popular Public IPv6 DNS Servers:
2001:4860:4860::8888 and 2001:4860:4860::88442606:4700:4700::1111 and 2606:4700:4700::10012620:119:35::35 and 2620:119:53::53Set DNS servers:
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses "2001:4860:4860::8888","2001:4860:4860::8844"
View current DNS configuration:
Get-DnsClientServerAddress -InterfaceAlias "Ethernet" -AddressFamily IPv6
Reset to automatic DNS:
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ResetServerAddresses
netsh interface ipv6 set dns "Ethernet" static 2001:4860:4860::8888
netsh interface ipv6 add dns "Ethernet" 2001:4860:4860::8844 index=2
# Show all IPv6 addresses
Get-NetIPAddress -AddressFamily IPv6
# Show IPv6 configuration for specific adapter
Get-NetIPAddress -InterfaceAlias "Ethernet" -AddressFamily IPv6
# View IPv6 protocol settings
Get-NetIPv6Protocol
# Check IPv6 routes
Get-NetRoute -AddressFamily IPv6
# View DNS servers
Get-DnsClientServerAddress -AddressFamily IPv6
# Enable IPv6 on adapter
Enable-NetAdapterBinding -Name "Ethernet" -ComponentID ms_tcpip6
# Disable IPv6 on adapter
Disable-NetAdapterBinding -Name "Ethernet" -ComponentID ms_tcpip6
# Add static IPv6 address
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress "2001:db8::100" -PrefixLength 64
# Set default gateway
New-NetRoute -InterfaceAlias "Ethernet" -DestinationPrefix "::/0" -NextHop "2001:db8::1"
# Configure DNS servers
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses "2001:4860:4860::8888"
# Modify IPv6 protocol settings
Set-NetIPv6Protocol -RandomizeIdentifiers Enabled -UseTemporaryAddresses Enabled
Important for Domain Environments:
Windows Server Active Directory and DNS rely on IPv6 for optimal operation. Disabling IPv6 on domain controllers can cause:
Symptoms: Your adapter shows IPv6 connectivity but displays "No internet access" or you cannot reach IPv6 websites.
Solutions:
netsh int ipv6 reset
ipconfig /release6
ipconfig /renew6
Symptoms: Websites take a long time to load, DNS lookups timeout initially then fall back to IPv4.
Solutions:
Disable-NetAdapterBinding -Name "Ethernet" -ComponentID ms_tcpip6
DisabledComponents to 0x20 (see Registry method above)ipconfig /flushdns
Symptoms: You only see a fe80:: address (link-local) and no global IPv6 address.
Solutions:
Restart-NetAdapter -Name "Ethernet"
Symptoms: Domain controllers experience DNS timeouts, LDAP failures, or nslookup defaults to ::1.
Solutions:
fe80::1 from DNS server list:Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses "Correct-DNS-IPv6-Address"
Symptoms: Some websites or services don't work, but IPv4 sites do.
Solutions:
ping -6 ipv6.google.comGet-NetRoute -AddressFamily IPv6 -DestinationPrefix "::/0"
ping -6 2001:4860:4860::8888
# Reset TCP/IP stack
netsh int ip reset
netsh winsock reset
# Release and renew IPv6 address
ipconfig /release6
ipconfig /renew6
# Flush DNS cache
ipconfig /flushdns
# View IPv6 routing table
netsh interface ipv6 show route
# Test IPv6 connectivity
ping -6 ipv6.google.com
Test-NetConnection -ComputerName ipv6.google.com
# View detailed IPv6 interface info
netsh interface ipv6 show interface
After configuring IPv6, it's essential to verify that everything works correctly.
1. Ping IPv6 hosts:
ping -6 ipv6.google.com
ping -6 2001:4860:4860::8888
2. Test IPv6 DNS resolution:
nslookup -type=AAAA google.com
3. Check routing:
Get-NetRoute -AddressFamily IPv6
For a thorough test of your IPv6 configuration and connectivity, visit test-ipv6.run. This free online tool will:
The test runs entirely in your browser and gives you immediate feedback on your IPv6 configuration status. It's an excellent way to confirm that your Windows IPv6 settings are working correctly and that your ISP is providing IPv6 connectivity.
IPv6 is an essential protocol for modern networking, and Windows provides robust built-in support across all recent versions. While Windows enables IPv6 by default, understanding how to configure, troubleshoot, and optimize IPv6 settings ensures the best possible network performance.
Key Takeaways:
By following this guide, you should have a solid understanding of IPv6 configuration on Windows and be able to troubleshoot common issues effectively. As the internet continues its transition to IPv6, having a properly configured IPv6 setup will ensure you're ready for the future of internet connectivity.