Knowledge baseBasics
Tailscale for Linux from the mesh-net mirror
When tailscale.com doesn't open: the official Tailscale for Linux from our mirror with one command — install, update, remove.
On this page
The usual way to install Tailscale on Linux downloads it from tailscale.com and pkgs.tailscale.com. If those sites don't open from your computer or server, install Tailscale from the mesh-net mirror: the same official build, unchanged, with one command.
When you need it
- The command
curl -fsSL https://tailscale.com/install.sh | shfails with a timeout,Could not resolve hostorConnection refused. - The device runs Linux with systemd — Ubuntu, Debian, Fedora, Arch and most others — on an amd64 (x86-64), arm64, arm or 386 processor.
The mirror is for Linux only. On Windows, macOS, iPhone, iPad and Android, install Tailscale from the app store or from tailscale.com: those apps are partly closed source, and mesh-net doesn't redistribute them.
The mirror now has Tailscale 1.104.5. It checks for a new stable version of Tailscale every 24 hours and keeps the 2 latest ones.
Install
In a terminal on the device, paste this line and press Enter:
curl -fsSL https://mesh-net.space/ext/tailscale-install.sh | sudo sh
If you'd like to check the script first, download it with curl -fsSLO https://mesh-net.space/ext/tailscale-install.sh:
sha256sum tailscale-install.sh should print 6aaa9e2ab54f3ce8714ba70507c5d0dc589c74b3e3bcd3cd847af0d4d8cbd66d.
The installer first only checks the device and stops with an explanation if something is off — nothing is changed by then. Then it downloads the archive for your processor, checks its sha256 and that the programs run on this device, installs them, starts the Tailscale service and lists everything it changed. It takes about a minute.
Then connect the device to your network with the command from the dashboard: see the public network or a private network.
sudo: command not foundmeans you are alreadyroot: run the line withoutsudo.curl: command not found: install curl the usual way of your system (for example,sudo apt-get install -y curl) and repeat.
What it changes
| File or service | What it is |
|---|---|
/usr/bin/tailscale, /usr/sbin/tailscaled | The programs: the command line and the service |
/lib/systemd/system/tailscaled.service and, if the archive has them,
tailscale-online.target, tailscale-wait-online.service | The systemd units from the archive, in the same place where the Tailscale package puts them |
/etc/default/tailscaled | The service's settings (PORT, FLAGS) —
only if there is none: your settings stay |
tailscaled.service | Enabled and started on the first installation |
/var/lib/mesh-net-tailscale/ | What was installed (installed) and, after an
update, the previous version (previous/) |
/var/log/mesh-net-tailscale.log | The installer's log |
Nothing is deleted. The device's keys live in /var/lib/tailscale, as with the package; if they are
already there, the device keeps its identity.
Update
Run the same command again. If the mirror has a newer version, the installer replaces the programs, keeps the
previous version in /var/lib/mesh-net-tailscale/previous/ and restarts the service: connections over
Tailscale pause for a few seconds, and an SSH session that goes over Tailscale itself may drop — connect again. If the
new version doesn't start, the installer puts the previous one back and says so. If the device already has the newest
version, the installer says so and changes nothing.
The settings in /etc/default/tailscaled are never overwritten. If you edited a unit file of the service,
it stays as it is, and the unit of the new version is saved as
/var/lib/mesh-net-tailscale/tailscaled.service.new for you to compare.
When the installer refuses
It refuses before changing anything and says what to do.
Tailscale is installed from a package
Then the package manager looks after it, and the installer doesn't touch it. Update it the same way — for example,
sudo apt-get update && sudo apt-get install --only-upgrade tailscale on Ubuntu and Debian or
sudo dnf upgrade tailscale on Fedora. If the package source doesn't open from the device either, remove
the package (sudo apt-get remove tailscale; the device's keys in /var/lib/tailscale stay) and
run the installer.
There is no systemd
On Alpine Linux, install Tailscale from Alpine's own repository — it doesn't need tailscale.com:
apk add tailscale && rc-update add tailscale && rc-service tailscale start. On other
systems without systemd, download the archive and start the service by hand, as in
Download by hand.
Tailscale is installed some other way
If tailscale is already on the device but not from a package and not from this installer (copied by
hand, in /usr/local/bin), the installer lists what it found and changes nothing, so as not to break it.
To switch to the build from the mirror, stop that Tailscale, move the listed files out of the way and run the installer
again.
Another processor
The mirror has builds for amd64, arm64, arm and 386. For others (riscv64, mips) take Tailscale from your system's packages.
Download by hand
The list of files is at https://mesh-net.space/dl/tailscale/latest.json: the version,
and for every processor the file, its size and sha256. Next to each archive lies Tailscale's own
.sha256 file.
| Processor | File | Size |
|---|---|---|
| amd64 | tailscale_1.104.5_amd64.tgz | 39.5 MB |
| arm64 | tailscale_1.104.5_arm64.tgz | 36.3 MB |
| arm | tailscale_1.104.5_arm.tgz | 35.5 MB |
| 386 | tailscale_1.104.5_386.tgz | 36.6 MB |
For example, for amd64:
curl -fsSLO https://mesh-net.space/dl/tailscale/1.104.5/tailscale_1.104.5_amd64.tgz
curl -fsSL https://mesh-net.space/dl/tailscale/1.104.5/tailscale_1.104.5_amd64.tgz.sha256; echo
sha256sum tailscale_1.104.5_amd64.tgz
tar xzf tailscale_1.104.5_amd64.tgz
The two sums must be the same. In the folder tailscale_1.104.5_amd64 are the programs
tailscale and tailscaled and, in systemd/, the unit and the settings file. Without
systemd, start the service by hand and leave it running:
cd tailscale_1.104.5_amd64
sudo ./tailscaled --state=/var/lib/tailscale/tailscaled.state
and in another terminal connect with sudo ./tailscale up … — the command from the dashboard.
Remove
sudo systemctl disable --now tailscaled
sudo rm /usr/bin/tailscale /usr/sbin/tailscaled /lib/systemd/system/tailscaled.service
sudo rm -f /lib/systemd/system/tailscale-online.target /lib/systemd/system/tailscale-wait-online.service
sudo systemctl daemon-reload
sudo rm -r /var/lib/mesh-net-tailscale
The settings file /etc/default/tailscaled and the device's keys in /var/lib/tailscale are
yours to keep or delete; delete the device in the dashboard too, if it shouldn't come back.
Licence
The programs tailscale and tailscaled are open source under the BSD-3-Clause licence:
github.com/tailscale/tailscale. The mirror keeps the
archives exactly as Tailscale publishes them and puts the licence next to each version:
https://mesh-net.space/dl/tailscale/1.104.5/LICENSE. Tailscale is a trademark of Tailscale Inc.; mesh-net is not affiliated with
Tailscale.