Tutorials Privacy
IPv6 for humans: what it is and why you probably want it on
Do you have a working IPv6 address, or IPv4-only?
The short version
The internet gives every device an address, like a street address for data. The old system, IPv4, ran out of addresses years ago. The new system, IPv6, has an almost endless supply. Having IPv6 on usually makes your connection a little faster and more direct. For most people it's already on. This guide helps you confirm that, and switch it on if it isn't.
What's actually happening
Picture a city that was designed with only a few thousand house numbers. As it grew, there weren't enough numbers to go around, so whole apartment buildings had to share one street number, with a front-desk clerk sorting the mail. That sharing trick is called NAT, and it's how IPv4 has limped along.
IPv6 is like redrawing the city with room for a near-infinite number of house numbers, so every device can have its own. Mail (your data) can go straight to the right door instead of waiting at a shared front desk. That's often quicker and causes fewer glitches with video calls, games, and smart-home gadgets.
Why it matters to you
- Fewer connection hiccups. Video calls and online games connect more directly, which can mean less lag.
- Future-ready. More and more of the internet is IPv6-only behind the scenes. Having it means you're not stuck behind an overcrowded shared address.
- It's free and already built in. Every modern phone, laptop, and most routers support it.
Honest note: IPv6 is not mainly a privacy feature, and it isn't "more secure" by itself. It's about having your own address and a smoother connection. (There's a small privacy wrinkle, covered in the Advanced version, that modern devices already handle for you.)
How to fix it (turn it on / check it)
Most devices have IPv6 on by default. The usual reason you don't have it is that your router or internet provider isn't handing it out. Start there.
Your router
- Open your router's settings page (often 192.168.1.1 in a web browser, or the router's app) and sign in.
- Look for an IPv6 section, usually under Internet, WAN, or Advanced.
- Set the IPv6 connection type to the one your provider uses, commonly Native, DHCPv6, or SLAAC. If you're not sure, choose Automatic or Native, save, and test.
If there's no IPv6 option at all, your router may be too old (see the gear note below).
Windows 11
- Open Settings → Network & internet → Advanced network settings.
- Click More network adapter options, right-click your active connection, and choose Properties.
- Make sure Internet Protocol Version 6 (TCP/IPv6) has a check in its box. Click OK. (It's normally on already.)
macOS
- Open System Settings → Network.
- Click your connection (Wi-Fi or Ethernet), then Details, then the TCP/IP tab.
- Set Configure IPv6 to Automatically.
iPhone, iPad, and Android
There's no on/off switch, and you don't need one. These devices use IPv6 automatically whenever the network offers it. If it's not working, the fix is at the router or with your provider, not on the phone.
How to check it worked
Visit a test page such as test-ipv6.com. A score of 10/10 (or "You have IPv6") means it's working. You can also run the tests on this site, they'll show whether you have an IPv6 address. If you don't, and your router has no IPv6 setting, the next step is asking your provider whether they offer it.
If your result was already good
If you already have IPv6, perfect, there's nothing to do and nothing to buy. Leave it on. It's working quietly in the background every time it can, and falling back to the old system when it can't. Just keep your router's firmware updated so it stays reliable.
Want to go further?
The Advanced version explains dual-stack, SLAAC vs. DHCPv6, privacy addresses, and why disabling IPv6 "to fix a problem" is usually the wrong move.
What IPv6 is and why it exists
IPv6 is a 128-bit addressing scheme (vs. IPv4's 32-bit), giving ~3.4×10^38 addresses. IPv4's free pool is exhausted, RIPE NCC allocated its last blocks in 2019, so growth now leans on CGNAT (carrier-grade NAT), where many subscribers share a public IPv4. IPv6 restores the end-to-end addressing model: every host can have a globally routable address, eliminating the need for NAT.
Why you generally want it on
- Escapes CGNAT. Behind CGNAT you share an IPv4 with strangers, breaking inbound connections, complicating P2P/gaming, and tying your reputation to others' behavior (shared blocklisting). A native IPv6 prefix sidesteps that.
- Better path selection via Happy Eyeballs (RFC 8305). Dual-stack clients race A and AAAA connections and use whichever wins, so enabling IPv6 can only help: if it's slower, the client falls back to IPv4 automatically.
- Direct connectivity for gaming, VoIP, and self-hosting, no port-forwarding gymnastics (though you must then rely on a firewall, not NAT, for inbound control).
- Increasingly IPv6-first infrastructure. Major CDNs and mobile networks (many are IPv6-only internally with NAT64/DNS64 for IPv4 reachability) are optimized for it.
How addresses get assigned
- SLAAC (Stateless Address Autoconfiguration, RFC 4862): the router advertises a /64 prefix (Router Advertisements), and hosts self-generate addresses. Most common on home LANs.
- DHCPv6 (RFC 8415): stateful assignment, often used alongside SLAAC or where central management/logging is wanted. Note Android historically does not support stateful DHCPv6 for addressing, it relies on SLAAC, which matters on enterprise networks.
- Prefix Delegation (DHCPv6-PD): the ISP delegates a prefix (ideally /56 or /48; some give only a /64) to your router, which sub-delegates /64s to each LAN.
- Transition mechanisms: 6rd, DS-Lite, MAP-E, and 464XLAT appear on some ISPs; your router's "IPv6 connection type" must match what the ISP provisions.
The privacy wrinkle (and why it's mostly solved)
Early SLAAC derived the host portion from the MAC via EUI-64, exposing a stable device identifier across networks. Privacy/temporary addresses (RFC 4941, updated by RFC 8981) fix this by generating rotating, random addresses for outbound connections; RFC 7217 adds stable-but-opaque per-network addresses. All current OSes, Windows, macOS, iOS, Android, enable privacy extensions by default, so the MAC-leak concern is historical for typical users. If you administer a network and want to verify, inspect the active outbound address, it should be a temporary one, not an EUI-64 pattern (which shows ff:fe in the middle of the interface ID).
Configuration notes by platform
- Router (the usual blocker): set WAN IPv6 to the ISP's mode (Native/DHCPv6/SLAAC/PD, or a transition type). Confirm it requests a reasonable prefix (PD) and enable the firewall, inbound IPv6 is not hidden by NAT, so default-deny inbound is essential.
- Windows 11: IPv6 is on by default; the adapter checkbox toggles it. Avoid the old "DisabledComponents" registry hacks, Microsoft explicitly discourages disabling IPv6, and 0xFFFFFFFF has caused boot/logon delays.
- macOS: System Settings → Network → (service) → Details → TCP/IP → Configure IPv6 = Automatically. "Link-local only" effectively disables global IPv6.
- iOS/Android: no user toggle; IPv6 is automatic via RA/SLAAC. On Android, the APN "Protocol" field (IPv4/IPv6/IPv4v6) governs cellular, use IPv4v6.
Verification
- Browser: test-ipv6.com (aim for 10/10) or ipv6-test.com; confirm both an address and working AAAA resolution.
- CLI:
ipconfig(Windows) /ifconfig/ip -6 addr(Linux) /ifconfig(macOS), look for a global unicast address starting2000::/3(commonly2600:,2a00:, etc.), not justfe80::link-local or a ULAfd00::/8. ping -6a known IPv6 host (e.g.,ipv6.google.com) andtracert -6/traceroute6to confirm routed, not just assigned.
Common gotchas
- Don't disable IPv6 to "fix" a problem. It often masks a misconfiguration and can slow dual-stack name resolution; modern software assumes IPv6 is present.
- VPN + IPv6 leak: a VPN that only tunnels IPv4 while the OS has native IPv6 will leak your real IPv6 address and geo. Use a VPN that tunnels or explicitly blocks IPv6, this is a real exception where temporarily disabling IPv6 is defensible.
- ISP gives only a /64: you can't subnet multiple LANs; acceptable for a flat home network but limiting for VLANs/guest networks.
- Firewall, not NAT. With global addressing, your router's stateful firewall is the only thing shielding inbound, verify default-deny is on after enabling IPv6.