Persistent MTU management for Tailscale across reboots and interface resets.
This project helps you save the MTU you want and keep it applied after interface changes, reconnects, and reboots.
- Keeps your Tailscale MTU persistent
- Supports IPv4 and IPv6 values separately (Windows Only)
- Works on Linux and Windows
- On Windows, runs with a simple UI after install
Tailscale MTU can go back to another value after reconnects or reboot. This tool saves your desired value and keeps checking in the background. If the interface changes, it applies the saved MTU again.
Run this in PowerShell or in CMD / Windows Terminal:
powershell -NoProfile -ExecutionPolicy Bypass -Command "Set-ExecutionPolicy -Scope Process Bypass -Force; $ProgressPreference='SilentlyContinue'; $u='https://raw.githubusercontent.com/luizbizzio/tailscale-mtu/main/windows/windows-setup.ps1'; $c=(Invoke-WebRequest -UseBasicParsing $u).Content; & ([ScriptBlock]::Create($c)) -Install"After install:
- Open Tailscale MTU from the Start Menu
- Set your values
- Click Save and Apply
Default Windows files:
%ProgramData%\TailscaleMTU\config.json
%ProgramData%\TailscaleMTU\state.json
curl -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 binary 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 (if 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 (RFC 8200)
- Lower values can cause IPv6 fragmentation failures 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 via NSSM
- Periodically verifies the interface state
- Reapplies MTU automatically after reboots or reconnects
- Does not modify the registry directly
This project is licensed under the Mozilla Public License 2.0.

