Setting up Tailscale on Terramaster NAS for your DIY Cloud
Tailscale on TerraMaster NAS (Persistent + Auto-Start via GUI)
This setup avoids tmpfs resets and ensures the tunnel reconnects automatically after reboot.
Key fixes:
/varis tmpfs → state was being wiped on reboot- moved state to persistent storage (
/Volume1) - used TOS Task Scheduler for reliable startup
STEP 1 — Install Tailscale (CLI)
Download
ter_wget https://pkgs.tailscale.com/stable/tailscale_latest_amd64.tgz
Extract
tar xzf tailscale_latest_amd64.tgz
cd tailscale_*
(Optional) remove archive
cd ..
rm tailscale_latest_amd64.tgz
cd tailscale_*
Install binaries
cp tailscale /usr/bin/
cp tailscaled /usr/sbin/
chmod +x /usr/bin/tailscale
chmod +x /usr/sbin/tailscaled
STEP 2 — Create persistent state location
(/var is RAM → do NOT use)
mkdir -p /Volume1/tailscale
chmod 700 /Volume1/tailscale
STEP 3 — Start daemon using persistent state
killall tailscaled 2>/dev/null
/usr/sbin/tailscaled \
--state=/Volume1/tailscale/tailscaled.state &
Wait a few seconds.
STEP 4 — Login & enable auto-connect
/usr/bin/tailscale up
Approve in browser.
STEP 5 — Verify
tailscale ip
tailscale status
tailscale debug prefs | grep WantRunning
Expect:
WantRunning: true
STEP 6 — Enable auto-start (GUI method — recommended)
Control Panel → Task Scheduler → Create
Trigger
✔ At system startup
Task Type
✔ User-defined script
Command
sleep 15
/usr/sbin/tailscaled --state=/Volume1/tailscale/tailscaled.state &
Use Volume1 permanent mount option
✔ ensures storage is mounted before execution
STEP 7 — Reboot test
reboot
After reboot:
ps aux | grep '[t]ailscaled'
tailscale ip
tailscale status
Should show:
✔ daemon running
✔ 100.x address
✔ peers visible
WHY THIS WORKS
Before:
/var/lib/tailscale → tmpfs → wiped on reboot
Now:
/Volume1/tailscale → disk → persistent
Tailscale retains:
✔ device identity
✔ login
✔ keys
✔ WantRunning preference
✔ auto-connect behavior
IMPORTANT COMMAND BEHAVIOR
Connect & enable auto-connect
tailscale up
Disconnect tunnel
tailscale down
Stops tunnel & disables auto-connect.
Log out completely
tailscale logout
Removes credentials & requires login.
FUTURE UPDATES
ter_wget https://pkgs.tailscale.com/stable/tailscale_latest_amd64.tgz
tar xzf tailscale_latest_amd64.tgz
cp tailscale /usr/bin/
cp tailscaled /usr/sbin/
killall tailscaled
/usr/sbin/tailscaled --state=/Volume1/tailscale/tailscaled.state &
No login required.
QUICK HEALTH CHECK
tailscale ip && echo "✓ tunnel active"
NOTES
State & identity stored in:
/Volume1/tailscale/tailscaled.state
Deleting it resets the device identity.
✔ Persistent
✔ Auto-connects after reboot
✔ No re-login needed
✔ Secure remote access