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\Parameters

Create 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), set DisabledComponents back to 0 or 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 -listallnetworkservices

You will typically see "Wi-Fi" and "Ethernet". To disable IPv6 on Wi-Fi, type:

sudo networksetup -setv6off Wi-Fi

For Ethernet:

sudo networksetup -setv6off Ethernet

The 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.conf

Add 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 = 1

Apply the changes without rebooting with:

sudo sysctl -p

This 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.