Skip to content

Instantly share code, notes, and snippets.

@tux7k
Created December 1, 2024 19:57
Show Gist options
  • Select an option

  • Save tux7k/591a1dc663bf650f6508fee7d49c3d3c to your computer and use it in GitHub Desktop.

Select an option

Save tux7k/591a1dc663bf650f6508fee7d49c3d3c to your computer and use it in GitHub Desktop.
How to setup Tailscale on NETGEAR READYNAS Devices

How to setup Tailscale on NETGEAR READYNAS Devices

Download and Extract Tailscale

  1. Go to the the Tailscale Linux Download Website and select 'Other' as the distro.
  2. Enable SSH on the NAS, and SSH into the admin account
  3. Do su and type in the admin password
  4. Download the stable release for 'arm' not arm64 in the admin home directory
  5. Unpack the archive with tar xvf tailscale_VERSION_ARCH.tgz

Moving files into locations

  1. tailscale -> /usr/bin
  2. tailscaled -> /usr/sbin
  3. systemd/tailscaled.service -> /etc/systemd/system

Chmoding files to execute

  1. chmod +x /usr/bin/tailscale
  2. chmod +x /usr/sbin/tailscaled

Editing the systemd service to work

  1. Remove lines 4 & 5 (the Wants= line and After= line)
  2. Remove line 8 (the EnvironmentFile= line)
  3. Remove everything after tailscaled.sock on the line starting with ExecStart=

The file should look like this

Starting / Enabling the service

  1. systemctl start tailscaled
  2. tailscale up
  3. systemctl enable tailscaled

Done! 🎉

Tell me if anything is broken or doesn't work.

@DTheDJ
Copy link

DTheDJ commented Mar 30, 2025

Thanks for the instructions. I want to install Tailscale on my ReadyNAS NV+ v2 but I'm not able to start the service.
I get this message "bash: systemctl: command not found"

root@nas-v2:~# systemctl start tailscaled
bash: systemctl: command not found

Thanks

@tux7k
Copy link
Author

tux7k commented May 3, 2025

Maybe your ReadyNAS doesn't feature Debian and uses some other init system, that would probably make it a little more tricky to get it setup. If you can find which init system your ReadyNAS uses, you could probably find some guide on getting tailscale working on that.

@rlsx
Copy link

rlsx commented Oct 14, 2025

Thanks for the instructions.
I am using a Readynas RN314 with an Intel Atom 2 Dual Core CPU, running ReadyNAS OS6, 6.10.10.
So I chose to download istead "amd64: tailscale_1.88.3_amd64.tgz", and used your instructions as a template.
There is a file tailscaled.defaults not mentionned in your isntructions. I put in in /etc/systemd/system/
Tailscale is apparently running correctly. I can ssh into the NAS, using its tailscale IP.
But, following the Tailscale docs carefully, I have'nt managed to make the NAS an exit node.
Runniing "tailscale status" gives the following:

# Health check:
# - running [/sbin/iptables -t nat -N ts-postrouting --wait]: exit status 3: iptables v1.4.21: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.

Any ideas? Thanks in advance!

@alfenzo77
Copy link

Buongiorno, esiste un video online della procedura sopra scritta?

@tux7k
Copy link
Author

tux7k commented Dec 2, 2025

Hi @rlsx !
I also had the same issue with setting it up as an exit node, and didn't find a solution (though I didn't try hard to). There is probably some networking rule setup that you have to tweak but I'm honestly not sure. I ended up just setting up an exit node somewhere else. Also just as a note, I wouldn't try updating the system since I've heard it can brick it (:

@rlsx
Copy link

rlsx commented Dec 9, 2025

Hello [tux7k],
Thanks for your reply. I don't know much about the innards of Linux. From the text of the error message, and some update attempts, some kenel component needs to be updated — which is very tricky, if not hopeless.
But you knowledge of Linux is surely far deeper than mine.
If you ever find a way, please post it here and send me an e-mail.

@bradleyhodges
Copy link

For anyone using the ReadyNAS 212, I did the following to get things humming away on my NAS. ReadyNAS 212 runs Debian 8 (Jessie). This can be confirmed by running cat /etc/os-release, which should give an output similar to this:

root@NAS:~# cat /etc/os-release
PRETTY_NAME="ReadyNASOS 6.10.10"
NAME="Debian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=debian
HOME_URL="http://www.debian.org/"
SUPPORT_URL="http://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

Here are the modified instructions for ReadyNAS 212:


Install Tailscale on Netgear ReadyNAS 212

Download and Extract Tailscale

  1. Go to the the Tailscale static binaries download page and copy the link to the 'arm' version (not arm64 - I had troubles with the 64-bit binary).
  2. Enable SSH on the NAS, and SSH in as root user using the admin password
  3. Make sure you're connected as the root user by running:
su -
  1. Download the Tailscale arm binary to your current working directory using cURL (replace with the url you copied in step 1):
curl -O https://pkgs.tailscale.com/stable/tailscale_1.90.9_arm.tgz
  1. Unpack the archive (replace version as required):
tar xvf tailscale_1.90.9_arm.tgz

Moving files into locations

  1. Enter the unpacked directory (replace version as required):
    cd tailscale_1.90.9_arm
  2. Move the service files where they need to live:
mv tailscale /usr/bin
mv tailscaled /usr/sbin
mv systemd/* /etc/systemd/system
  1. Remove the archive and the leftover files as they are no longer required:
cd ../
rm -dfr tailscale_1.90.9_arm # replace version as required
rm tailscale_1.90.9_arm.tgz # replace version as required

Chmoding files to execute

  1. Make the service files executable:
chmod +x /usr/bin/tailscale
chmod +x /usr/sbin/tailscaled

Fixing the tailscaled service to work on ReadyNAS

  1. Edit your tailscaled.service file:
nano /etc/systemd/system/tailscaled.service

it should look like this:

[Unit]
Description=Tailscale node agent
Documentation=https://tailscale.com/kb/

[Service]
ExecStart=/usr/sbin/tailscaled --state=/var/lib/tailscale/tailscaled.state --socket=/run/tailscale/tailscaled.sock
ExecStopPost=/usr/sbin/tailscaled --cleanup

Restart=on-failure

RuntimeDirectory=tailscale
RuntimeDirectoryMode=0755
StateDirectory=tailscale
StateDirectoryMode=0700
CacheDirectory=tailscale
CacheDirectoryMode=0750
Type=notify

[Install]
WantedBy=multi-user.target
  1. Make sure the service permissions are sensible and accessible to the root user:
chmod 644 /etc/systemd/system/tailscaled.service
chown root:root /etc/systemd/system/tailscaled.service
  1. Create the state directory so tailscale can persist data properly:
mkdir -p /var/lib/tailscale

Starting / Enabling the service

  1. Tell systemd to re-read units, enable, and then start the tailscale service:
systemctl daemon-reload
systemctl enable tailscaled
systemctl start tailscaled
systemctl status tailscaled --no-pager -l

If this has all worked, you should see the tailscale service status as active (running)

Done! 🎉

Complete the setup by running tailscale up and follow the prompts!

@bradleyhodges
Copy link

bradleyhodges commented Dec 10, 2025

Hello [tux7k], Thanks for your reply. I don't know much about the innards of Linux. From the text of the error message, and some update attempts, some kenel component needs to be updated — which is very tricky, if not hopeless. But you knowledge of Linux is surely far deeper than mine. If you ever find a way, please post it here and send me an e-mail.

@rlsx The ReadyNAS kernal doesn't have the iptables NAT table/module available, so exit node, subnet routing, and stateful filtering aren't going to be possible on the ReadyNAS without rebuilding or patching the kernal yourself.. which is just crazy overkill (and likely not even possible) on a blackbox appliance like this.

You can get rid of the warning by running tailscale with netfilter mode turned off:

tailscale up --reset --netfilter-mode=off

but it's not going to do anything to make exit nodes/subnet routing possible it'll just give you a quieter health report by disabling Tailscale's automatic iptables manipulation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment