How to Set a Per-Adapter Metric to Prioritize Ethernet Over Wi-Fi
🔍 WiseChecker

How to Set a Per-Adapter Metric to Prioritize Ethernet Over Wi-Fi

Quick fix: Open Settings → Network & internet → Ethernet (or Wi-Fi) → click your adapter → Edit DNS server assignment doesn’t expose metric, so use PowerShell: Set-NetIPInterface -InterfaceAlias "Ethernet" -InterfaceMetric 10. Lower metric = higher priority. Set Wi-Fi to 50 and Ethernet to 10 to make Ethernet preferred.

Your laptop has both Ethernet and Wi-Fi connected. Windows should prefer Ethernet (faster, more reliable), but sometimes traffic goes via Wi-Fi instead — especially after sleep/wake or driver updates. The cause: Wi-Fi interface metric became lower than Ethernet, making it the preferred route. Set metric values manually to fix.

Symptom: Want Ethernet to be preferred over Wi-Fi when both are connected; traffic going via Wi-Fi unpredictably.
Affects: Windows 11 (and Windows 10) with multiple active network adapters.
Fix time: ~5 minutes.

ADVERTISEMENT

What causes this

Windows uses routing metrics to decide which adapter to send traffic through. Each adapter has an interface metric value (lower = preferred). By default, Windows auto-assigns metrics based on link speed: faster links get lower metrics, so Gigabit Ethernet (1000 Mbps) should beat Wi-Fi 5 (~150 Mbps).

But automatic metric calculation isn’t always right. Wi-Fi 6 might be calculated as faster than slower Ethernet. Or after sleep/wake, metrics drift. Manual metric assignment overrides the automatic logic.

Method 1: Set metrics via PowerShell (recommended)

The cleanest and most reliable route.

  1. Open Terminal (Admin).
  2. List interfaces and their current metrics:
    Get-NetIPInterface -AddressFamily IPv4 | Format-Table InterfaceAlias, InterfaceMetric, ConnectionState

    Note the InterfaceAlias of your Ethernet and Wi-Fi adapters.

  3. Set Ethernet to low metric (high priority):
    Set-NetIPInterface -InterfaceAlias "Ethernet" -InterfaceMetric 10
  4. Set Wi-Fi to higher metric (lower priority):
    Set-NetIPInterface -InterfaceAlias "Wi-Fi" -InterfaceMetric 50
  5. For IPv6 (if used): repeat with -AddressFamily IPv6:
    Set-NetIPInterface -InterfaceAlias "Ethernet" -AddressFamily IPv6 -InterfaceMetric 10
  6. Test: visit ip.me or open Terminal and run tracert google.com. The first hop should be your router via Ethernet’s IP, not Wi-Fi’s.
  7. To revert to automatic: Set-NetIPInterface -InterfaceAlias "Ethernet" -AutomaticMetric Enabled.

PowerShell is the right approach — the values are explicit and survive reboots.

ADVERTISEMENT

Method 2: Set metrics via GUI in Network Connections

For users who prefer GUI.

  1. Press Win + R, type ncpa.cpl, press Enter. Opens Network Connections.
  2. Right-click your Ethernet adapter → Properties.
  3. Double-click Internet Protocol Version 4 (TCP/IPv4).
  4. Click Advanced.
  5. In Advanced dialog, find Automatic metric. Untick it.
  6. Set Interface metric to a low number: 10.
  7. Click OK through all dialogs.
  8. Repeat for Wi-Fi adapter: untick Automatic metric, set to 50.
  9. Restart the network: ipconfig /release then ipconfig /renew from Terminal.

This is the GUI equivalent of Method 1. Both achieve the same result.

Method 3: Use route command for per-destination prioritization

For specific destinations rather than blanket adapter prioritization.

  1. Open Terminal (Admin).
  2. View current routing table:
    route print

    The Active Routes section shows destination, netmask, gateway, interface, and metric.

  3. For a specific destination (e.g., your company VPN endpoint) to always go via Ethernet:
    route -p add 203.0.113.0 mask 255.255.255.0 192.168.1.1 metric 1 if 12

    The -p makes it persistent. Adjust IPs and interface ID (from route print) to match.

  4. For temporary route during this session only: omit -p.
  5. For a default-gateway override on Ethernet only: combine with metric:
    route -p change 0.0.0.0 mask 0.0.0.0 192.168.1.1 metric 1 if 12
  6. Caution: incorrect routes can break connectivity. Note the original route table before changes; revert if needed via route delete.

This is the right path for advanced setups where blanket prioritization isn’t enough.

How to verify the fix worked

  • Run Get-NetIPInterface -AddressFamily IPv4 | Format-Table InterfaceAlias, InterfaceMetric. Ethernet shows metric 10, Wi-Fi 50.
  • Run tracert google.com. The first hop (your router IP) should be reachable; the route from your PC should leave via Ethernet’s subnet.
  • Run Get-NetRoute -DestinationPrefix 0.0.0.0/0 | Format-Table InterfaceAlias, NextHop, RouteMetric. The default route’s preferred interface should be Ethernet.

If none of these work

If metric changes persist but Windows still uses Wi-Fi for outbound traffic, the cause is usually adapter-specific. Disable Wi-Fi when Ethernet is connected: Settings → Network & internet → Wi-Fi → Manage known networks → current network → Cellular → Use cellular instead of Wi-Fi when poor connection toggle. This forces Windows to consider connection quality. For laptops with auto-switching software: Intel ProSet/Wireless Connection Utility has its own auto-switching logic that overrides Windows. Disable Intel utility’s priority management, let Windows decide. For PCs with VPN connections: VPN may take priority via its own route table entries. Manage VPN client’s split-tunnel routing rather than adapter metrics. For test purposes: temporarily disable Wi-Fi entirely (Settings → Network & internet → Wi-Fi off). Confirms Ethernet works at full speed. Re-enable Wi-Fi with correct metric.

Bottom line: Set-NetIPInterface -InterfaceAlias "Ethernet" -InterfaceMetric 10 + Set-NetIPInterface -InterfaceAlias "Wi-Fi" -InterfaceMetric 50. Lower metric wins. Persistent across reboots.

ADVERTISEMENT