Tuesday, October 14, 2014

How to Disable IPv6 in Windows 10


Disabling IPv6 in Windows has solved many issues for users, but, in all fairness, it's also caused a few. If you're sure you need to disable IPv6 in Windows 10, here's how.

Editing the properties of a network adapter and unchecking the IPv6 checkbox only unbinds IPv6 from that particular network adapter. It doesn't disable IPv6 in Windows and it doesn't solve the common problems with IPv6 in Windows. To cleanly disable IPv6 a registry key must be added.

Beware, messing up the Windows registry can ruin your Windows install. Tread lightly and be careful.

Like just about everything else in Windows, there's at least two ways to add this registry key. If your comfortable using the command prompt, you can use the Command Prompt Method near the bottom of this post.


Regedit Method

Sign into Windows 10 with an account that has local admin privileges.

Click on the Start button, type regedit, and press the enter key.



Click the Yes button when prompted by UAC.





Use Registry Editor to expand the registry tree and browse to:

\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP6\Parameters.



Right click on Parameters, expand New, and select DWORD (32-bit) Value.



Enter DisabledComponents into the Name field.




Right click on the new DisabledComponents value and select Modify.




Enter ffffffff into the Value data dialog box, and click the OK button.



Confirm the new registry value contains the required data.






Restart the computer and IPv6 will be disabled

Verify that IPv6 is disabled by running ipconfig /all from the command prompt. The output should only show IPv4 addresses and no 6to4 adapters.

IPv6 can be enabled by either deleting the DisabledComponents registry value or changing its data to 0.


Command Prompt Method

Adding a registry key with the command prompt can be easier for some people and more dangerous for others.

Start a command prompt with administrative permissions and enter (or copy and paste) the following command and press the Enter key:

reg add hklm\system\currentcontrolset\services\tcpip6\parameters /v DisabledComponents /t REG_DWORD /d 0xFFFFFFFF



Restart the computer and IPv6 will be disabled.

9 comments:

  1. I have found that the reason IPV6 is causing issues for most people is because they enable it (and configure it from their router and OS) but most of the time the end user is not fully educated on the proper configuration. This, in turn, can cause network issues and incredibly high ping numbers due to the improperly configured IPV6 type and sometimes DNS servers. It really depends on your ISP, and I wish people would Google "IPV6 >Router model< >ISP<".

    ReplyDelete
  2. This seems a bit sledgehammer-ry. Can't you just untick the ipv6 box in the properties of the network adapter?

    ReplyDelete
  3. Rather than mess with the registry yourself, use the Microsoft-provided FixIts to do the job properly.

    https://support.microsoft.com/en-us/help/929852/how-to-disable-ipv6-or-its-components-in-windows

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. Note that the MS support page listed above by cabaldevin specifically says NOT to set the value to fffffff ...

    " Additionally, system startup will be delayed for 5 seconds if IPv6 is disabled by incorrectly, setting the DisabledComponents registry setting to a value of 0xfffffff. The correct value should be 0xff. For more information, see the "What are Microsoft's recommendations about disabling IPv6?" question in IPv6 for Microsoft Windows: Frequently Asked Questions."

    ReplyDelete
    Replies
    1. yous answer is correct, if the setting is set to 0xfffffff it prevents user login totally.. i was testing on a vm and i had to restore to previous snapshot because i was unable to log again and fix the setting. I think that's bad because malware may use this to lock down a user from the pc, microsoft should really fix this issue by resetting this value in case it was incorectly set..

      Delete
    2. Also to complete this setting i also use the following command (powershell) to uncheck ipv6 at the network card scope (this is purely esthetic): Get-NetAdapter | foreach { Disable-NetAdapterBinding -InterfaceAlias $_.Name -ComponentID ms_tcpip6 }

      Delete