Why This Happens
A VPN creates a virtual network interface and redirects traffic through it by modifying the system routing table. A typical VPN adds a default route for 0.0.0.0/0 (all IPv4) via the VPN interface. But IPv6 uses an entirely separate routing table entry — ::/0 (all IPv6). If the VPN does not explicitly add an IPv6 default route pointing to the VPN tunnel, the operating system continues to route IPv6 traffic via the physical interface — directly out through the ISP, unencrypted and unmasked.
The leak is silent. Your VPN client shows "connected." Your IPv4 address is the VPN server's IP. But every website that supports IPv6 (Google, YouTube, Facebook, Cloudflare-hosted sites — most major properties) receives connections from your real IPv6 address, which is tied to your ISP account and physical location.
IPv6 Leak vs IPv4: Why IPv6 Is More Identifying
IPv4 addresses are shared — many users behind the same NAT share one public IP. IPv6 addresses are typically unique per device. Your ISP-assigned IPv6 prefix identifies your account, and some ISPs use SLAAC (Stateless Address Autoconfiguration) with your device's MAC address embedded in the IP, making it device-specific across sessions. An IPv6 leak can be more personally identifying than an IPv4 leak.
How to Test for an IPv6 Leak
Connect to your VPN. Visit an IP leak test that checks both IPv4 and IPv6. The test makes connections to endpoints that respond differently on IPv4 and IPv6 and reports which IP address was used for each. If your real ISP-assigned IPv6 address appears alongside the VPN's IPv4 address, you have a confirmed IPv6 leak.
How to Fix an IPv6 Leak
Option 1 — Use a VPN with IPv6 support: Choose a VPN provider that explicitly routes or blocks IPv6 traffic. Providers using WireGuard or OpenVPN configured with IPv6 routing tunnel all IPv6 traffic through the VPN, assigning an IPv6 address from the VPN server's subnet to your device. Check your VPN provider's documentation for confirmation.
Option 2 — Disable IPv6 on your device:
- Windows: Open Network Connections → right-click active adapter → Properties → uncheck "Internet Protocol Version 6 (TCP/IPv6)" → OK.
- macOS: System Settings → Network → active connection → Details → TCP/IP → Configure IPv6 → set to Off.
- Linux: Add
net.ipv6.conf.all.disable_ipv6 = 1andnet.ipv6.conf.default.disable_ipv6 = 1to/etc/sysctl.conf, then runsysctl -p.
Option 3 — Block IPv6 at the router: Disable IPv6 in your router's WAN settings. This prevents IPv6 from being assigned to any device on the network, eliminating the leak source entirely. Effects are network-wide.
VPN Kill Switch and IPv6
A VPN kill switch that blocks all non-VPN traffic when the VPN is connected can prevent IPv6 leaks if it explicitly blocks IPv6 as part of its firewall rules. Not all kill switches are implemented to cover IPv6 — check your provider's documentation. A kill switch that only blocks IPv4 non-tunnel traffic leaves IPv6 exposed in exactly the same way as no kill switch.
Frequently Asked Questions
How do I know if my ISP has given me an IPv6 address?
On Windows, run ipconfig and look for an address starting with 2 or 3 under your active adapter (not fe80:: which is always present). On macOS, check System Settings → Network → Details → TCP/IP. If you see a long hex address like 2600:1700:..., you have a public IPv6 address and should test for leaks.
Will disabling IPv6 cause any problems?
For most home users, no. Connections fall back to IPv4 seamlessly. IPv6-only sites are essentially non-existent in practice. Some local network discovery features on Windows use IPv6 multicast and may behave differently, but internet connectivity is unaffected.