How to Disable IPv6 on Windows, Mac, Linux, and Your Router
IPv6 is the modern internet protocol designed to replace IPv4 — but that doesn't mean you always want it running. Whether you're troubleshooting a slow connection, resolving a VPN leak, or following specific network configuration requirements, disabling IPv6 is a legitimate and sometimes necessary step.
Here's what you need to know about how IPv6 works, why you might turn it off, and exactly how the process differs depending on your setup.
What Is IPv6 and Why Does It Run by Default?
IPv6 (Internet Protocol version 6) is the addressing system that assigns a unique identifier to every device on a network. IPv4 — its predecessor — uses 32-bit addresses, which limits the total pool to about 4.3 billion addresses. IPv6 uses 128-bit addresses, creating an astronomically larger pool to accommodate the growth of internet-connected devices.
Most modern operating systems enable IPv6 by default because ISPs and services are gradually migrating to it. Your device may be running both IPv4 and IPv6 simultaneously through a mechanism called dual-stack networking, quietly using whichever the network prefers.
Common Reasons to Disable IPv6
Not everyone needs to turn this off, but here are the scenarios where it genuinely matters:
- VPN or privacy configuration — Some VPN clients don't fully tunnel IPv6 traffic, creating what's known as an IPv6 leak where your real IP address is exposed even while connected.
- Network compatibility issues — Older routers, enterprise environments, or certain ISP configurations may behave inconsistently when dual-stack is active.
- Slow DNS resolution — On some systems, the OS queries IPv6 DNS first and waits for a timeout before falling back to IPv4, adding noticeable latency.
- Specific software or server requirements — Certain legacy applications or internal network tools may not handle IPv6 addresses correctly.
How to Disable IPv6 on Windows 🖥️
Windows 10 and Windows 11 both handle IPv6 through network adapter settings:
- Open Control Panel → Network and Sharing Center → Change adapter settings
- Right-click your active network connection and select Properties
- In the list, find Internet Protocol Version 6 (TCP/IPv6)
- Uncheck the box and click OK
This disables IPv6 for that specific adapter. You'll need to repeat it for each connection (Ethernet, Wi-Fi) where you want it off.
For a system-wide approach, Windows also allows disabling IPv6 via the Registry or PowerShell. The PowerShell method is more reliable for advanced users:
Disable-NetAdapterBinding -Name "*" -ComponentID ms_tcpip6 This applies the change across all adapters at once.
⚠️ Some Windows components use IPv6 internally even without an active internet connection. Microsoft doesn't recommend disabling it entirely at the component level, but doing so via adapter settings is generally considered safe for most users.
How to Disable IPv6 on macOS
On a Mac, the setting is adapter-specific and lives in Network preferences:
- Go to System Settings → Network (or System Preferences on older macOS)
- Select your active connection (Wi-Fi or Ethernet)
- Click Details (or Advanced on older versions) → TCP/IP
- Set Configure IPv6 to Off or Link-local only
Link-local only is a middle-ground option — it keeps IPv6 active for local network discovery (which some Apple services rely on) but prevents it from being used for external internet traffic.
How to Disable IPv6 on Linux
On Linux, the method depends on your distribution and whether you're using NetworkManager, systemd-networkd, or manual interface configuration.
For most desktop distributions using NetworkManager:
nmcli connection modify "Your Connection Name" ipv6.method "disabled" nmcli connection up "Your Connection Name" Using sysctl for a temporary change (resets on reboot):
sysctl -w net.ipv6.conf.all.disable_ipv6=1 sysctl -w net.ipv6.conf.default.disable_ipv6=1 To make it permanent, add those lines to /etc/sysctl.conf.
How to Disable IPv6 on a Router
Disabling IPv6 at the router level affects every device on the network — which is the right approach if your goal is network-wide consistency rather than per-device control.
The exact path varies significantly by router brand and firmware, but the general location is:
| Router Brand | Typical Location |
|---|---|
| ASUS | Advanced Settings → IPv6 → Connection Type → Disabled |
| Netgear | Advanced → Advanced Setup → IPv6 → Disable |
| TP-Link | Advanced → IPv6 → Toggle off |
| Eero | App → Network Settings → Advanced → IPv6 |
Some routers don't expose IPv6 controls at all in consumer firmware — particularly budget models or ISP-supplied hardware where settings are locked down.
The Variables That Shape Your Decision 🔧
Whether disabling IPv6 actually solves your problem depends on several factors that vary by setup:
- Your ISP's infrastructure — If your ISP routes primarily over IPv6, disabling it could slow connections rather than speed them up.
- Your VPN client's behavior — Some modern VPN clients handle IPv6 natively; others still leak it. The right fix depends on which client you're using.
- Your OS version — Older macOS and Linux versions have different interface layouts and behavior for IPv6 settings.
- Whether the issue is device-level or network-level — A per-adapter fix won't solve a router-level misconfiguration, and vice versa.
- Applications running on your system — Some software, particularly development tools and certain communication apps, relies on IPv6 loopback addresses regardless of external connectivity.
Disabling IPv6 is rarely a permanent fix on its own — it's often one step in diagnosing a larger network issue. The actual impact depends entirely on where the problem originates and how your specific network is configured.