Checking whether your device supports and has active IPv6 connectivity is essential as the internet transitions from IPv4 to IPv6. This comprehensive guide covers platform-specific methods, command-line tools, GUI approaches, and browser-based testing to verify your IPv6 status across all major operating systems.
The fastest and most comprehensive way to check IPv6 connectivity is to visit test-ipv6.run - a pure frontend testing tool that runs six parallel connectivity tests directly in your browser:
The site provides instant results with detailed explanations, works on any device with a web browser, and requires no installation or technical knowledge. It's the recommended first step before diving into platform-specific commands.
1. Check Your IPv6 Address
Open PowerShell or Command Prompt and type:
ipconfig
Look for entries labeled "IPv6 Address" under your active network adapter. You'll see output similar to:
Ethernet adapter Ethernet:
Connection-specific DNS Suffix . : home
IPv6 Address. . . . . . . . . . . : 2001:0db8:85a3::8a2e:0370:7334
Link-local IPv6 Address . . . . . : fe80::1ff:fe23:4567:890a%12
IPv4 Address. . . . . . . . . . . : 192.168.1.100
2. Test IPv6 Connectivity
Test connectivity to a known IPv6 host:
ping -6 ipv6.google.com
Or ping Google's public IPv6 DNS server:
ping -6 2001:4860:4860::8888
If you receive replies, your IPv6 connectivity is working.
3. Trace IPv6 Route
To see the path IPv6 packets take:
tracert -6 ipv6.google.com
Screenshot description: The Windows Network Properties window displays both IPv4 and IPv6 addresses in a list format, with IPv6 addresses showing the full hexadecimal notation.
1. Display IPv6 Addresses
Open Terminal and use:
ifconfig
For a cleaner IPv6-only view:
ifconfig -a | grep inet6
Example output:
inet6 fe80::1c7f:42a:d55e:91c7%en0 prefixlen 64 secured scopeid 0x6
inet6 2001:0db8:85a3::8a2e:0370:7334 prefixlen 64 autoconf secured
2. Check All Network Services for IPv6
networksetup -listallnetworkservices | while read ns; do networksetup -getinfo "${ns}" | grep IPv6; done
3. Test IPv6 Connectivity
ping6 ipv6.google.com
Or test with a specific interface:
ping6 -c 4 -I en0 2001:4860:4860::8888
Screenshot description: The macOS Network preferences panel shows IPv6 configuration with options like "Automatically" or "Manually" and displays the current IPv6 address if configured.
1. Display IPv6 Addresses (Modern Method)
ip -6 addr
Or show only global IPv6 addresses:
ip -6 addr show scope global
2. Display IPv6 Addresses (Traditional Method)
ifconfig
3. Check If IPv6 Is Enabled
Check the kernel parameter:
sysctl net.ipv6.conf.all.disable_ipv6
If the output is net.ipv6.conf.all.disable_ipv6 = 0, then IPv6 is enabled.
If it's = 1, then IPv6 is disabled.
Alternative file-based check:
cat /sys/module/ipv6/parameters/disable
An output of 0 means enabled, 1 means disabled.
4. Test IPv6 Connectivity
ping6 -c 4 ipv6.google.com
Or with a specific interface:
ping6 -c 4 -I eth0 2001:4860:4860::8888
5. View IPv6 Routing Table
ip -6 route show
nm-connection-editor)Important Note: iOS does not display IPv6 addresses in the standard Settings interface by default. However, iOS devices automatically support IPv6 when your carrier and network provide it.
Checking IPv6 on iOS:
Browser-Based Testing (Recommended):
Third-Party Apps:
Developer Method:
Important: Since June 2016, all iOS apps submitted to the App Store must support IPv6-only networking, ensuring broad IPv6 compatibility across the iOS ecosystem.
Checking IPv6 on Android:
Browser-Based Testing (Recommended):
Settings Method (Varies by Device):
Third-Party Apps:
Developer Method:
Note: IPv6 availability on mobile networks depends heavily on your carrier. Major carriers like T-Mobile, AT&T, and Verizon in the US provide IPv6, but coverage varies globally.
When you check for IPv6, you'll typically see two types of addresses. Understanding the difference is crucial:
fe80::/10 (always starts with fe80::)fe80::1ff:fe23:4567:890a%12What it means: If you only see a link-local address, your device has IPv6 enabled at the interface level, but you likely don't have internet-routable IPv6 connectivity. This is similar to an IPv4 address in the 169.254.0.0/16 range.
2000::/3 (typically starts with 2 or 3)2001:0db8:85a3::8a2e:0370:7334What it means: If you have a global unicast address, your device can potentially communicate over IPv6 with other IPv6 hosts on the internet (assuming your ISP and network support it).
fc00::/7 or fd00::/8 - Similar to IPv4 private addresses (10.0.0.0/8, 192.168.0.0/16)::1 - Equivalent to IPv4's 127.0.0.1Critical Distinction: Having an IPv6 address configured does NOT guarantee working IPv6 connectivity.
You might have an IPv6 address assigned, but:
This is why browser-based testing is essential. Tools like test-ipv6.run perform real-world connectivity tests by:
Beyond checking addresses, test actual reachability:
Windows/Linux/Mac:
# Test Google's IPv6 DNS
ping6 2001:4860:4860::8888
# Test IPv6-enabled website
ping6 ipv6.google.com
# Test DNS resolution for IPv6 (AAAA records)
nslookup -type=AAAA google.com
Expected behavior:
1. ISP Doesn't Provide IPv6
The most common reason. Many ISPs worldwide still haven't deployed IPv6 to residential customers.
Check: Contact your ISP or search "[Your ISP Name] IPv6 support"
2. Router Doesn't Support IPv6
Older routers may not support IPv6 or have it disabled by default.
Fix:
3. IPv6 Disabled in Operating System
Windows - Re-enable IPv6:
netsh interface ipv6 set global randomizeidentifiers=enabled
Or through GUI:
Linux - Re-enable IPv6:
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0
Make permanent by editing /etc/sysctl.conf:
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
4. Firewall Blocking IPv6
Windows - Check Windows Firewall:
netsh advfirewall show allprofiles
Temporarily disable to test:
netsh advfirewall set allprofiles state off
Linux - Check iptables/ip6tables:
sudo ip6tables -L -v
5. Network Drivers Outdated
Update network adapter drivers through Device Manager (Windows) or your package manager (Linux).
6. IPv6 Helper Service Issues (Windows)
The IP Helper service might need resetting:
netsh winsock reset
netsh int ip reset
Restart your computer after running these commands.
This error on Windows indicates IPv6 is configured but can't reach the internet:
Solutions:
Reset Network Settings:
netsh winsock reset
netsh int ip reset
ipconfig /flushdns
Disable and Re-enable IPv6:
Run Windows Network Troubleshooter:
Update Network Adapter Drivers
Check Router Configuration:
In rare cases, "broken IPv6" (configured but not working) can slow down web browsing because browsers attempt IPv6 connections that timeout before falling back to IPv4. If you cannot fix IPv6 connectivity and experience slowness, temporarily disabling it may help until your ISP or network properly supports it.
However, we strongly recommend properly configuring IPv6 rather than disabling it, as IPv6 is the future of internet addressing.
For the most thorough IPv6 connectivity verification:
The test-ipv6.run tool is particularly valuable because it:
Checking IPv6 connectivity involves multiple layers:
For most users, visiting test-ipv6.run provides instant, comprehensive answers. For advanced troubleshooting and detailed system information, use the platform-specific command-line tools outlined in this guide.
As the internet continues its transition to IPv6, having working IPv6 connectivity ensures you're ready for the future of internet addressing and can take advantage of IPv6's benefits: a virtually unlimited address space, improved routing efficiency, and better end-to-end connectivity.