{"id":23904886,"url":"https://github.com/luizbizzio/tailscale-mtu","last_synced_at":"2026-02-28T04:29:20.658Z","repository":{"id":270970269,"uuid":"911984580","full_name":"luizbizzio/tailscale-mtu","owner":"luizbizzio","description":"🌐 Scripts to configure persistent MTU settings for Tailscale on Linux and Windows, enhancing network performance with automated and customizable setups.","archived":false,"fork":false,"pushed_at":"2025-04-12T16:34:49.000Z","size":137,"stargazers_count":15,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-15T16:00:07.012Z","etag":null,"topics":["automation","bash","cross-platform","devops","iot","linux","mtu","network-optimization","network-performance","network-tools","networking","open-source","powershell","scripts","shell-scripts","tailscale","udev-rules","vpn","windows","wireguard"],"latest_commit_sha":null,"homepage":"","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/luizbizzio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-04T11:36:15.000Z","updated_at":"2025-04-12T16:34:52.000Z","dependencies_parsed_at":"2025-01-04T13:40:49.186Z","dependency_job_id":"652a1919-7b2b-4333-8b46-9ea799b0ba0b","html_url":"https://github.com/luizbizzio/tailscale-mtu","commit_stats":null,"previous_names":["luizbizzio/tailscale-mtu"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luizbizzio%2Ftailscale-mtu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luizbizzio%2Ftailscale-mtu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luizbizzio%2Ftailscale-mtu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luizbizzio%2Ftailscale-mtu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luizbizzio","download_url":"https://codeload.github.com/luizbizzio/tailscale-mtu/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249105473,"owners_count":21213534,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","bash","cross-platform","devops","iot","linux","mtu","network-optimization","network-performance","network-tools","networking","open-source","powershell","scripts","shell-scripts","tailscale","udev-rules","vpn","windows","wireguard"],"created_at":"2025-01-05T00:47:45.568Z","updated_at":"2026-02-28T04:29:20.653Z","avatar_url":"https://github.com/luizbizzio.png","language":"PowerShell","readme":"# Tailscale MTU 🌐\n\nPersistent MTU management for Tailscale across reboots and interface resets.\n\nThis project helps you save the MTU you want and keep it applied after interface changes, reconnects, and reboots.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"/images/tailscale-logo.png?asd\" alt=\"Tailscale MTU\" width=\"600\" /\u003e\n\u003c/p\u003e\n\n## What it does\n\n- Keeps your Tailscale MTU persistent\n- Supports IPv4 and IPv6 values separately (Windows Only)\n- Works on Linux and Windows\n- On Windows, runs with a simple UI after install\n\n## Why this exists\n\nTailscale MTU can go back to another value after reconnects or reboot.\nThis tool saves your desired value and keeps checking in the background.\nIf the interface changes, it applies the saved MTU again.\n\n## Install\n\n### Windows 🪟\n\nRun this in **PowerShell** or in **CMD / Windows Terminal**:\n\n```powershell\npowershell -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; \u0026 ([ScriptBlock]::Create($c)) -Install\"\n```\n\nAfter install:\n\n1. Open **Tailscale MTU** from the Start Menu\n2. Set your values\n3. Click **Save and Apply**\n\nDefault Windows files:\n\n```text\n%ProgramData%\\TailscaleMTU\\config.json\n%ProgramData%\\TailscaleMTU\\state.json\n```\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"/images/screenshot-windows.png\" alt=\"Tailscale MTU Windows UI\" width=\"700\" /\u003e\n\u003c/p\u003e\n\n---\n\n### Linux 🐧\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/luizbizzio/tailscale-mtu/main/linux/linux-setup.sh | sudo bash\n```\n\nAfter install, set the MTU like this:\n\n```bash\nsudo tailscale-mtu --mtu 1280\n```\n\nOptional interface:\n\n```bash\nsudo tailscale-mtu --mtu 1280 --iface tailscale0\n```\n\nCheck status:\n\n```bash\ntailscale-mtu --status\n```\n\n---\n\n## How it works\n\n### Linux\n\nThe installer places the binary at:\n\n```text\n/usr/local/bin/tailscale-mtu\n```\n\nWhen you run:\n\n```bash\nsudo tailscale-mtu --mtu 1280\n```\n\nIt:\n\n- Saves the MTU and interface in `/etc/tailscale-mtu.conf`\n- Applies the MTU immediately using `ip link set`\n- Creates a `udev` rule (if available) to reapply MTU when the interface returns\n\n#### Linux limits\n\n- Linux uses **one MTU value per interface**\n- IPv4 and IPv6 are **not separate**\n- Allowed range: **576 to 9000**\n- Values below **1280** trigger a warning\n\nWhy **1280** matters:\n\n- **1280 bytes is the minimum MTU required by IPv6 (RFC 8200)**\n- Lower values can cause IPv6 fragmentation failures and dropped traffic\n\nIn practice:\n\n```text\nSave MTU -\u003e apply immediately -\u003e udev reapplies on reconnect\n```\n\n---\n\n### Windows\n\nThe installer places all files under:\n\n```text\n%ProgramData%\\TailscaleMTU\n```\n\nWhat happens internally:\n\n- Uses `netsh` to configure IPv4 and IPv6 MTU independently\n- Runs as a Windows Service via **NSSM**\n- Periodically verifies the interface state\n- Reapplies MTU automatically after reboots or reconnects\n- Does not modify the registry directly\n\n---\n\n## License 📄\n\nThis project is licensed under the [Mozilla Public License 2.0](./LICENSE).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluizbizzio%2Ftailscale-mtu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluizbizzio%2Ftailscale-mtu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluizbizzio%2Ftailscale-mtu/lists"}