You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
vpn: on Windows force NLMTU on tun interface after creation
tun.CreateTUNWithRequestedGUID only stores the requested MTU in wireguard-go's internal forcedMTU field — it does not push the value to the Windows IP stack. As a result wintun's default NLMTU of 65535 (WINTUN_MAX_IP_PACKET_SIZE) stays active, local applications see a 65535-byte interface MTU and send oversized packets, which are then silently dropped by the size check in ReadTUNPackets. This broke
streaming and P2P apps (Sunshine/Moonlight) on affected machines.
Force NLMTU explicitly via winipcfg.IPInterface(family).Set() — the same path the official wireguard-windows tunnel uses. Use a short retry loop because the IP interface row briefly returns ERROR_NOT_FOUND right after adapter creation. Read NLMTU back after Set() and warn on mismatch, to surface third-party LWF filters or Windows 11 MTU regressions that can silently override the value.
0 commit comments