Hi there ![]()
Many people wonder how to update the pretty old Tailscale version on GL.iNet routers like the Flint, Flint2, or even the new Flint 3 (GL-BE9300). For your convenience, I created a script to automate this entire process.

Key Features
Automatic Updates - The script fetches and installs the latest Tailscale version automatically
Tiny Version Support - Uses optimized tiny binaries to save precious storage space
Version Selection - Want a specific version? The --select-releaseflag lets you choose
Exit Node Ready - Automatically configures stateful filtering for proper exit node functionality
Safe Restore - Easy rollback to original firmware binaries if needed
Permanent Installation
The script makes all changes permanent across firmware updates. You only need to run it once, and the updated Tailscale persists even after GL.iNet firmware upgrades. On the downside, it might create trouble when you flash a way older firmware. Make sure to use --restore before downgrading.
You need to re-run the script when a new Tailscale version is released.
If everything fails, flashing using U-Boot will fix it.
Supported Architectures
Currently supported on devices using ARM64, ARMv7, MIPS, MIPSle architectures. This covers nearly all GL.iNet routers with firmware 4.x.
Quick-Start
You can run it directly on your router via SSH with this single command:
wget -q https://get.admon.me/tailscale -O update-tailscale.sh ; sh update-tailscale.sh
Important: Do not run this script as a cron job! Manual execution is recommended.
Download & Documentation
Advanced Usage
Running on devices with low free space
You can use --ignore-free-space to bypass the free space check. The script uses tiny-tailscale binaries by default, so 15 MB of free space during execution should be sufficient.
Could potentially break your router if there is not enough free space.
Running without confirmation
Use the --force flag to run the script without any confirmation prompts. Combination with --ignore-free-space is possible for fully unattended installations.
Select a specific version
sh update-tailscale.sh --select-release
The script will display available releases for you to choose from.
Warning: Downgrading Tailscale is not officially supported and may cause unexpected behavior.
Logging options
Enable timestamps for debugging:
sh update-tailscale.sh --log
Use ASCII characters instead of emojis for older terminals:
sh update-tailscale.sh --ascii
Usage
./update-tailscale.sh [--ignore-free-space] [--force] [--restore] [--no-upx] [--no-download] [--no-tiny] [--select-release] [--testing] [--log] [--ascii] [--help]
| Argument | Description |
|---|---|
--ignore-free-space |
Bypasses the free space check. Use with caution on low-storage devices! |
--force |
Skips all confirmation prompts and makes installation permanent |
--force-upgrade |
Forces upgrade even if the current version is already up to date. Useful for reinstalling the same version. |
--restore |
Restores original firmware binaries. |
--no-upx |
Skips UPX compression. Binaries will be larger but installation is faster |
--no-download |
Skips downloading binaries. Use pre-downloaded archive at /tmp/tailscale.tar.gz |
--no-tiny |
Uses full Tailscale binaries instead of tiny version |
--select-release |
Displays available releases and lets you choose a specific version |
--testing |
Uses the test branch for updating the script |
--log |
Shows timestamps in all log messages. Useful for debugging |
--ascii |
Uses ASCII characters instead of emojis for compatibility |
--help |
Displays help message with all available arguments |
Tiny-Tailscale Feature
By default, the script uses optimized tiny binaries that significantly reduce storage footprint while maintaining full functionality. These binaries are pre-built and UPX-compressed, perfect for routers with limited storage. Use --no-tiny if you need the full-sized binaries.
Disclaimer
This script is provided as-is without any warranty. Use it at your own risk.
It may potentially:
Break your router, computer, or network
Cause unexpected system behavior
Even burn down your house (okay, probably not, but you get the idea)
You have been warned!
Alternative Way
You can update Tailscale manually by downloading the necessary files from the official website and replacing the files on your router accordingly.
Restoring
Simply run the script with the --restore argument:
sh update-tailscale.sh --restore
Caution: This does not restore configuration files and may result in a broken installation.
Manual Restoration:
- Replace
/usr/sbin/tailscaledand/usr/sbin/tailscalefiles with the original files from/rom/usr/sbin/ - Remove all Tailscale lines from
/etc/sysupgrade.conf
Made with
by @Admon
If you find this helpful, consider supporting the project via GitHub

