Skip to content

Instantly share code, notes, and snippets.

@AndrewThian
Last active January 25, 2026 12:51
Show Gist options
  • Select an option

  • Save AndrewThian/3290eda464339a2d90fa2bdd3d3d3628 to your computer and use it in GitHub Desktop.

Select an option

Save AndrewThian/3290eda464339a2d90fa2bdd3d3d3628 to your computer and use it in GitHub Desktop.
Fix: WSL2 extremely slow download speeds on Windows 10 with 10GbE NIC

Fix: WSL2 extremely slow download speeds on Windows 10 with 10GbE NIC

On my Windows 10 machine (10GbE wired, WSL2 Ubuntu), WSL2 networking was orders of magnitude slower than native Windows (KB/s–low MB/s in WSL vs full line rate in Windows).

The root cause turned out to be offload features on the WSL virtual NIC and the physical 10GbE adapter. Disabling them restored normal speeds.

Environment

  • Windows 10: 10.0.19045.6466
  • WSL version: 2.6.3.0
  • Kernel: 6.6.87.2-1
  • Default distro: Ubuntu (WSL2)
  • NIC: Marvell FastLinQ Edge 10Gbit network adapter
  • WSL vNIC: vEthernet (WSL) (10 Gbps link)

1. Disable offloads on the physical 10GbE NIC

In Device Manager → Network adapters → [your 10GbE adapter] → Advanced, set these to Disabled (or equivalent):

  • Large Send Offload v2 (IPv4)
  • Large Send Offload v2 (IPv6)
  • TCP Checksum Offload (IPv4)
  • TCP Checksum Offload (IPv6)
  • UDP Checksum Offload (IPv4)
  • UDP Checksum Offload (IPv6)

Also disable LRO/RSO/etc. if present.


2. Disable offloads on the WSL vEthernet adapter

Run PowerShell as Administrator:

$wslNic = "vEthernet (WSL)"

Set-NetAdapterAdvancedProperty -Name $wslNic -DisplayName "Large Send Offload Version 2 (IPv4)" -DisplayValue "Disabled" -IncludeHidden -ErrorAction SilentlyContinue
Set-NetAdapterAdvancedProperty -Name $wslNic -DisplayName "Large Send Offload Version 2 (IPv6)" -DisplayValue "Disabled" -IncludeHidden -ErrorAction SilentlyContinue
Set-NetAdapterAdvancedProperty -Name $wslNic -DisplayName "IPv4 Checksum Offload" -DisplayValue "Disabled" -IncludeHidden -ErrorAction SilentlyContinue
Set-NetAdapterAdvancedProperty -Name $wslNic -DisplayName "IPv6 Checksum Offload" -DisplayValue "Disabled" -IncludeHidden -ErrorAction SilentlyContinue

wsl --shutdown

Then start your WSL2 distro again.


3. Result

After disabling:

  • WSL2 wget/curl and speedtest-cli throughput jumped from "painfully slow" to expected speeds (matching the 10GbE link within normal overhead).
  • No changes inside the Linux guest were required beyond restarting WSL.

TL;DR

If you see drastically lower download speeds in WSL2 than on Windows on a 10GbE setup, try disabling all send/checksum offloads on both the physical NIC and the vEthernet (WSL) adapter as above.


Why it works?

Disabling LSO and checksum offloads on both the physical NIC and the WSL vEthernet adapter fixes WSL2’s slow 10GbE downloads by removing buggy hardware offload interactions in the virtual network path. The trade‑off is slightly higher CPU usage and marginally lower peak throughput under very high sustained bandwidth, but for normal workloads (including heavy multiplayer games) the extra CPU cost is negligible and unlikely to affect FPS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment