How to fully disable IPv6 and switch to IPv4-only mode
IPv6 is meant to be the future of networking, and eventually it will be. But in practice it sometimes causes more problems than it solves: a VPN that leaks outside the tunnel, a sluggish connection because your ISP handles IPv6 poorly, an old piece of software or a NAS that does not cope with it. In those cases, switching back to IPv4 only often fixes the issue in minutes. Here is how to do it properly depending on your system.
Before disabling IPv6, ask yourself this
Disabling IPv6 is not a good idea on principle. If everything works on your setup, leave it on: it is the direction the internet is heading, and more and more services rely on it. The valid reasons to disable it are specific:
- Your VPN does not protect IPv6 and leaks your real address (a test on ipleak.net or dnsleaktest.com will confirm it)
- You get slowdowns or connection errors that vanish when IPv6 is turned off, a sign your ISP handles it badly
- An old piece of network hardware or a specific application does not support IPv6 and causes conflicts
- You administer a corporate network where IPv6 is not deployed and represents an unnecessary attack surface
If none of these apply to you, disabling IPv6 gains you nothing and risks breaking things down the line.
Disabling IPv6 on Windows
On Windows 10 and Windows 11, the graphical method is the simplest. Open your network connections: right-click the network icon, then "Network and Internet settings", and click "Change adapter options".
Right-click your active connection (Wi-Fi or Ethernet), choose "Properties", then in the list, uncheck "Internet Protocol Version 6 (TCP/IPv6)". Confirm with OK.
This method disables IPv6 on that interface only. To disable it fully at the system level, you need the registry. Open the Registry Editor (Windows key + R, type regedit) and navigate to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\ParametersCreate a new DWORD (32-bit) value named DisabledComponents and set it to ff in hexadecimal to disable all IPv6 components. Restart the computer to apply the change.
Note: Microsoft officially advises against fully disabling IPv6 through the registry, because some Windows components expect it to be present. If you notice odd behaviour afterwards (network sharing issues, slow startup), setDisabledComponentsback to0or delete the key.
Disabling IPv6 on Mac
On macOS, disabling happens through Terminal, since the option has not been in the graphical interface for several versions. Open Terminal and first identify your network service name:
networksetup -listallnetworkservicesYou will typically see "Wi-Fi" and "Ethernet". To disable IPv6 on Wi-Fi, type:
sudo networksetup -setv6off Wi-FiFor Ethernet:
sudo networksetup -setv6off EthernetThe system will ask for your admin password. To re-enable IPv6 later, replace -setv6off with -setv6automatic.
Disabling IPv6 on Linux
On most Linux distributions (Ubuntu, Debian, Fedora), the clean method uses sysctl. Edit the configuration file:
sudo nano /etc/sysctl.confAdd these three lines at the end of the file:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1Apply the changes without rebooting with:
sudo sysctl -pThis method is reversible: set the values back to 0 or remove the lines, then run sysctl -p again.
Disabling IPv6 on your router
If you want to cut IPv6 for the whole network at once, the router is where to do it. Log into the admin interface by typing its IP address into a browser (often 192.168.1.1).
Look for the IPv6 section under network or WAN settings. The exact location varies by model, but it is usually under "WAN", "Internet" or "Advanced" settings. Disable the option and save. Every device on the network will revert to IPv4 after its DHCP lease renews or after a reboot.
Confirming IPv6 is actually disabled
Once done, check the result. The easiest way is to visit ipme.co, which tells you whether your connection is using IPv4 or IPv6. You can also check from the command line.
On Windows, type ipconfig in Command Prompt: you should no longer see an "IPv6 Address" line. On Mac and Linux, ifconfig or ip a should no longer show an address starting with inet6 on your active interfaces.
If you still see an IPv6 address starting with fe80::, do not worry: that is a link-local address, purely internal, which does not affect your internet connection and which some system layers keep regardless.