Persistent MTU management for Tailscale across reboots, reconnects, and interface resets.
Save your preferred MTU and keep it applied automatically when Tailscale or Windows resets the interface.
- Keeps your Tailscale MTU persistent
- Supports separate IPv4 and IPv6 MTU values on Windows
- Supports Linux and Windows
- Provides a simple Windows UI after install
- Runs in the background and reapplies the saved MTU when needed
Tailscale MTU can return to another value after reconnects, interface resets, driver changes, or reboots.
This tool saves your desired MTU and keeps checking in the background. If the Tailscale interface changes, it applies the saved MTU again.
Install the latest Windows release:
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "irm 'https://github.com/luizbizzio/tailscale-mtu/releases/latest/download/install.ps1' | iex"After install:
- Open Tailscale MTU from the Start Menu
- Set your IPv4 and IPv6 MTU values
- Click Save and Apply
Default Windows files:
%ProgramData%\TailscaleMTU\
tailscale-mtu.ps1
tailscale-mtu.ico
nssm.exe
TaillscaleMTULauncher.vbs
config.json
state.json
logs\
service.out.log
service.err.log
%ProgramData%\Microsoft\Windows\Start Menu\Programs\Tailscale MTU.lnk
.\tailscale-mtu.ps1 -Status
.\tailscale-mtu.ps1 -Version
.\tailscale-mtu.ps1 -IPv4 1280 -IPv6 1280 -Enable
.\tailscale-mtu.ps1 -Disable
.\tailscale-mtu.ps1 -CheckUpdate
.\tailscale-mtu.ps1 -Update
.\tailscale-mtu.ps1 -Repair
.\tailscale-mtu.ps1 -Uninstallcurl -fsSL https://raw.githubusercontent.com/luizbizzio/tailscale-mtu/main/linux/linux-setup.sh | sudo bashAfter install, set the MTU like this:
sudo tailscale-mtu --mtu 1280Optional interface:
sudo tailscale-mtu --mtu 1280 --iface tailscale0Check status:
tailscale-mtu --statusThe installer places the command at:
/usr/local/bin/tailscale-mtu
When you run:
sudo tailscale-mtu --mtu 1280It:
- Saves the MTU and interface in
/etc/tailscale-mtu.conf - Applies the MTU immediately using
ip link set - Creates a
udevrule, when available, to reapply MTU when the interface returns
- Linux uses one MTU value per interface
- IPv4 and IPv6 are not separate
- Allowed range: 576 to 9000
- Values below 1280 trigger a warning
Why 1280 matters:
- 1280 bytes is the minimum MTU required by IPv6, as defined by RFC 8200
- Lower values can cause IPv6 fragmentation issues and dropped traffic
In practice:
Save MTU -> apply immediately -> udev reapplies on reconnect
The installer places all files under:
%ProgramData%\TailscaleMTU
What happens internally:
- Uses
netshto configure IPv4 and IPv6 MTU independently - Runs as a Windows Service through NSSM
- Periodically verifies the interface state
- Reapplies MTU automatically after reboots or reconnects
- Does not modify the registry directly
The Windows release assets are:
install.ps1
tailscale-mtu.ps1
tailscale-mtu.ico
nssm.exe
The default value is:
1280
This is conservative and works well for Tailscale paths where fragmentation, relays, VPN stacking, or unusual network conditions can reduce the effective path MTU.
You can use a higher value if your network path supports it, but 1280 is the safer default.
This project is licensed under the Mozilla Public License 2.0.

