How to Disable IPv6 Selectively per Adapter on Windows 11
🔍 WiseChecker

How to Disable IPv6 Selectively per Adapter on Windows 11

Quick fix: Open Control Panel → Network and Sharing Center → Change adapter settings, right-click the adapter → Properties, untick Internet Protocol Version 6 (TCP/IPv6). This disables IPv6 on that one adapter only and leaves it active on others (e.g., VPN, virtual switches).

You want to disable IPv6 on your physical Wi-Fi adapter because your home router doesn’t handle IPv6 well, but you need IPv6 still enabled on your VPN adapter for company-network access. The Windows Settings UI doesn’t expose per-adapter IPv6 toggles; the classic Network Adapter Properties dialog does. Tweaking the wrong place (registry global toggle) disables IPv6 everywhere and breaks the VPN.

Symptom: Need to disable IPv6 on a specific adapter without affecting other adapters or system-wide IPv6.
Affects: Windows 11 (and Windows 10) with multiple network adapters.
Fix time: ~5 minutes per adapter.

ADVERTISEMENT

What causes this

Windows 11’s networking stack supports IPv4 and IPv6 simultaneously, with each adapter binding to either or both. Most adapters bind to both by default. Disabling IPv6 per-adapter means unbinding the IPv6 protocol from that adapter’s binding stack — the adapter still has Ethernet/Wi-Fi capability, but the IPv6 layer no longer attempts to assign addresses or send packets via that adapter.

Common reasons to disable IPv6 selectively: home router has buggy IPv6 implementation causing slow DNS resolution, VPN client requires IPv6 for split-tunnel routing, or specific apps misbehave on IPv6 but work on IPv4.

Method 1: Network Adapter Properties (per-adapter, recommended)

The targeted approach. Affects one adapter only.

  1. Press Win + R, type ncpa.cpl, press Enter. This opens Network Connections (the classic adapter list).
  2. Right-click the adapter you want to modify (e.g., Wi-Fi). Click Properties.
  3. The connection properties dialog lists items: Client for Microsoft Networks, File and Printer Sharing, Internet Protocol Version 4 (TCP/IPv4), Internet Protocol Version 6 (TCP/IPv6), etc.
  4. Untick Internet Protocol Version 6 (TCP/IPv6).
  5. Click OK. The change applies immediately to this adapter only.
  6. Repeat for other adapters where you want IPv6 disabled.
  7. To verify: open Terminal and run Get-NetAdapterBinding -Name "Wi-Fi" -ComponentID "ms_tcpip6". Output should show Enabled: False.

This is the cleanest path for selective per-adapter control.

ADVERTISEMENT

Method 2: PowerShell for scripted/multiple changes

For when you’re configuring multiple PCs or want a script for repeated use.

  1. Open Terminal (Admin).
  2. List adapters and their IPv6 binding state:
    Get-NetAdapterBinding -ComponentID ms_tcpip6 | Format-Table Name, DisplayName, Enabled
  3. To disable IPv6 on a specific adapter by name:
    Disable-NetAdapterBinding -Name "Wi-Fi" -ComponentID ms_tcpip6

    Replace “Wi-Fi” with the actual adapter name (case-sensitive, with quotes).

  4. To enable: Enable-NetAdapterBinding -Name "Wi-Fi" -ComponentID ms_tcpip6.
  5. To do all Wi-Fi adapters at once:
    Get-NetAdapter -InterfaceDescription "*Wi-Fi*" | ForEach-Object { Disable-NetAdapterBinding -Name $_.Name -ComponentID ms_tcpip6 }
  6. To verify after change: Get-NetAdapterBinding -ComponentID ms_tcpip6 | Format-Table Name, Enabled.
  7. Save scripts as .ps1 for re-use across machines. Sign with a code-signing cert or set execution policy to bypass for deployment.

PowerShell is the right approach for managing multiple machines or repeated changes.

Method 3: Disable IPv6 components selectively via registry

For when you want to disable specific IPv6 features (Teredo, 6to4, ISATAP) rather than IPv6 entirely.

  1. Open Registry Editor (regedit).
  2. Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP6\Parameters.
  3. Look for DisabledComponents. Create as DWORD (32-bit) if missing.
  4. Set value to selectively disable features:
    • 0x01: Disable all tunnel interfaces (Teredo, 6to4, ISATAP) but keep native IPv6
    • 0x10: Disable native IPv6 on all interfaces, keep tunnels
    • 0x11: Disable both — IPv6 fully off system-wide
    • 0x20: Prefer IPv4 over IPv6 globally (keep IPv6 enabled but de-prioritize)
    • 0xFF: Disable everything IPv6-related
  5. Reboot for changes to take effect.
  6. Note: DisabledComponents is system-wide, not per-adapter. Use this for global feature toggling; use Methods 1–2 for per-adapter control.
  7. Don’t use this without understanding which bits do what — wrong values can break Internet connectivity entirely.

This is the right approach if you want to disable Teredo (for security reasons) while keeping native IPv6 on all adapters.

How to verify the fix worked

  • Run Get-NetAdapterBinding -ComponentID ms_tcpip6 | Format-Table Name, Enabled. The target adapter should show Enabled: False, others True.
  • Run ipconfig /all. The target adapter should show no IPv6 address; others should still show theirs.
  • Test: ping -6 google.com via the target adapter (use ping -S <local_ip> -6 ipv6.google.com to force route). Should fail. Run the same on a different adapter — should succeed if that adapter has IPv6.

If none of these work

If unticking IPv6 on an adapter doesn’t actually stop IPv6 traffic (you still see IPv6 in ipconfig output), Windows’s networking is overriding the binding. Reset the network stack: open Terminal (Admin) and run netsh int ipv6 reset, then reboot. This re-initializes the IPv6 stack and re-applies binding state. Check Group Policy: managed PCs may have policy enforcing IPv6 on all adapters. Run gpresult /h C:\gpresult.html and look in Computer Configuration → Administrative Templates → Network → IP Configuration for any forced settings. Hyper-V interference: if Hyper-V is enabled (used by WSL2, Docker, Windows Sandbox), it creates virtual switches that bind IPv6 to the physical adapter implicitly. Disabling IPv6 on the physical adapter may still leave it accessible via the virtual switch. Check by listing Get-VMSwitch and inspecting bindings per switch. For corporate networks where IPv6 must be enabled but only IPv4 connectivity works: configure adapter to prefer IPv4 via registry DisabledComponents = 0x20 instead of full disable.

Bottom line: ncpa.cpl (right-click adapter → untick IPv6) or PowerShell’s Disable-NetAdapterBinding give clean per-adapter control without affecting other adapters or system-wide IPv6.

ADVERTISEMENT