把 Tailscale 裝在 NAS 上,是最常見的 homelab 用法之一——NAS 本來就常開、有固定位置,很適合當成「回家用的入口」。但 QNAP、TrueNAS SCALE、Unraid 三家對「怎麼跑 Tailscale」的選擇完全不同:一個是官方 App Center 套件、一個是 Docker 映像檔、一個是系統層外掛。這篇把三者的安裝來源、網路底層(kernel TUN vs userspace)、進階功能支援與注意事項一次講清楚,最後給一張對照表。
本文依 2026 年 10 月的 Tailscale 官方文件整理,以 Tailscale v1.104 為準,未實際驗證。涉及第三方軟體版本:QNAP(QTS 5.x;QuTS hero 官方文件未說明)、TrueNAS SCALE(25.10,Docker 型 Apps)、Unraid(7.x)。QNAP 的套件最低版本、CPU 架構與啟動方式另以 Tailscale v1.104.1 原始碼(
release/dist/qnap)核對;TrueNAS 的 app 欄位名與預設值另以 TrueNAS Apps 目錄(truenas/apps)核對。
一句話先定位三家的差異
| 平台 | Tailscale 怎麼裝 | 底層 |
|---|---|---|
| QNAP | App Center 的官方套件(QPKG),以 root 直接跑 tailscaled |
預設 kernel TUN |
| TrueNAS SCALE | Apps 目錄的官方 Docker app(ghcr.io/tailscale/tailscale 映像檔) |
預設 kernel(host network),可切 userspace |
| Unraid | Community Applications 的官方合作外掛(plugin),在系統層跑 tailscaled |
預設 kernel TUN |
一句話:QNAP 與 Unraid 是「系統層的完整 Tailscale 節點」,TrueNAS SCALE 是「跑在 Docker 裡的 Tailscale 節點」。這決定了三者能做的事與限制。
QNAP:App Center 官方套件
安裝來源
QNAP 是三者裡最「開箱即用」的:Tailscale 有官方 App Center 套件。在 App Center 的 Communications 分類找到 Tailscale、安裝、開啟、登入就完成;也可以直接從 QNAP App Center 網站下載。
不想等 App Center 的版本、想用新功能時,可改裝手動下載的 QPKG——從 Tailscale Packages 伺服器(stable 或 unstable)下載對應架構的 .qpkg,再到 App Center 右上角 Install Manually 選檔安裝。官方文件特別說明:這個 QPKG 套件的建置工具由社群(ivokub)貢獻、之後移交給 Tailscale 維護(tailscale/tailscale-qpkg)。
支援的系統版本與 CPU 架構
- CPU 架構:官方文件列的是 x86-64bit 與 arm-64bit 兩大類。原始碼
release/dist/qnap/targets.go裡實際有 7 種建置目標:x86、x86_ce53xx(皆 32-bit x86)、x86_64(64-bit x86)、arm-x31、arm-x41、arm-x19(32-bit ARM)、arm_64(64-bit ARM)。 - 最低 QTS 版本:套件的
qpkg.cfg.in明列QTS_MINI_VERSION="5.0.0",也就是 QTS 5.0.0 以上;QTS 4 不支援(tailscale-qpkg的 issue #122 裡,Tailscale 維護者也直接回「The Tailscale app doesn’t run on QTS 4」)。官方文件與套件定義都只提 QTS、沒提 QuTS hero——QuTS hero h5.x 能否安裝屬推論,官方沒有說明。
如果你的機型在 App Center 找不到 Tailscale,多半是機型或版本不在支援範圍(官方文件列的支援硬體只有 x86-64 與 arm-64,最低 QTS 5.0.0)。手動 QPKG 的官方定位是「想用 App Center 版本還沒放出的新功能」時的替代做法,不是「App Center 找不到就改裝手動」——它與 App Center 版是同一套件,支援限制相同。
網路底層:kernel TUN,不是 userspace
QNAP 的套件以 root 執行 tailscaled,啟動腳本(release/dist/qnap/files/Tailscale/shared/Tailscale.sh)只有 --port、--statedir、--socket,沒有 --tun=userspace-networking,所以預設走的是 kernel TUN(tailscale0)。
這點和 Synology DSM 7 正好相反:DSM 7 的套件沒權限建 TUN,預設只能用 userspace(hybrid)networking、要另外跑 configure-host 才能讓 NAS 上的其他服務連出去(見 DSM 7 讓 NAS 上的其他服務也能連出去)。QNAP 沒有這個限制——kernel TUN 直接開好,NAS 上的其他程式可以經由 tailnet 主動連出。
支援的功能
官方 QNAP 整合文件列出的功能:
- Taildrop:建立一個名為
Taildrop的共用資料夾,其他裝置就能自動傳檔進來。 - subnet router:可以當,但要在 CLI 設定(圖形介面沒有對應按鈕)。
- exit node:可以當。
- node sharing、ACL 管控、不開防火牆埠的遠端存取,都是標準能力。
在 QNAP 上跑 CLI
當 subnet router 這類功能要進 CLI。裝完套件後,tailscale 執行檔在掛載的 QPKG 路徑下,用 SSH 進 NAS 後執行(路徑用官方文件的寫法):
$(getcfg SHARE_DEF defVolMP -f /etc/config/def_share.info)/.qpkg/Tailscale/tailscale [...]方便起見,把路徑加進 $PATH:
export PATH=$PATH:$(getcfg SHARE_DEF defVolMP -f /etc/config/def_share.info)/.qpkg/Tailscale/之後就能直接 tailscale status、tailscale up --advertise-routes=192.168.1.0/24。
--accept-routes 的預設值
QNAP 是 Linux,--accept-routes 的預設和一般 Linux 一樣是關(false)。也就是說:QNAP 預設不會接受其他 subnet router 廣告的路由——要連到別台宣告的網段,得自己跑 tailscale set --accept-routes=true。各平台預設值的完整對照見 Windows 無人值守模式與當 exit node 一文的表格。
更新與重開機
- 更新:App Center 內更新,或手動換新的 QPKG。App Center 的版本通常落後官方 release,追新功能就用手動 QPKG。
- 狀態保存:套件用
--statedir=${QPKG_ROOT}/state(放在安裝路徑下),身分是持久化的,重開機不會變新節點。這和 Docker 映像檔預設的TS_STATE_DIR陷阱(沒設就會每次重啟變孤兒節點,見 Docker 官方映像檔)不同,QNAP 套件預設就處理好了。
TrueNAS SCALE:官方 Docker app
安裝來源
TrueNAS SCALE 的 Tailscale 是 Apps 目錄裡的官方 app,名稱就是 Tailscale,背後用 Tailscale 官方維護的 Docker 映像檔——目錄定義用的是 ghcr.io/tailscale/tailscale(與 Docker Hub 的 tailscale/tailscale 是同一份官方映像)。在 Apps 頁籤按 Check for available apps、找到 Tailscale 安裝,再進 Edit 填設定。
設定欄位
官方 Tailscale 整合文件列出的設定欄位,名稱與現行 24.10+ Apps 目錄略有出入——目錄實際用的欄位名是 Advertise Exit Node(不是「Exit node」)與 Advertise Routes(子項名稱才是 Route)。下表以目錄現行名稱為準,並附上對應的 Tailscale CLI flag:
| 欄位 | 用途與對應 flag |
|---|---|
| Auth Key | 驗證用 auth key(建議用 auth key 而非互動登入) |
| Hostname | 這台 TrueNAS 在 tailnet 上的主機名稱(--hostname) |
| Userspace | 勾選即用 userspace networking(--userspace;預設不勾) |
| Accept Routes | 接受其他節點廣告的 subnet route(--accept-routes) |
| Advertise Exit Node | 勾選後當 exit node(--advertise-exit-node;仍需到 admin console 核准) |
| Advertise Routes | 廣告的 subnet 網段,每筆填 Route(--advertise-routes,可填多筆) |
| Host Network | 綁定 host network(預設勾選) |
subnet router 就是填 Advertise Routes(每筆 Route 一組網段);exit node 就是勾 Advertise Exit Node;兩者設定完都要到 admin console 的 Machines 頁面勾選核准。
預設 host network+kernel TUN;userspace 是選項
現行 24.10+ Apps 目錄的 Tailscale app 出廠預設是 Host Network 已勾、Userspace 未勾,也就是預設走 kernel TUN+host network——裝好後 TrueNAS 主機本體就拿到 tailscale0、直接進 tailnet。
這點和官方 Tailscale 整合文件寫的步驟不同:那份文件要你「勾選 Userspace」當基本設定、做 ZFS replication 時再「取消 Userspace+勾 Host Network」,對應的是舊版(k3s 時代)app 的預設,與現行 24.10+ 目錄正好相反。照現行目錄看,出廠狀態就是 kernel TUN+host network,真要選 userspace 才需要勾 Userspace:
- kernel TUN(預設):走 host network、建立
tailscale0,TrueNAS 主機本身的其他服務(含跨機 ZFS replication)都能直接進 tailnet。 - userspace(勾選 Userspace):不需要
/dev/net/tun、任何環境都能跑,但只有這個 app 自己在 tailnet 上——TrueNAS 主機本體不因此進 tailnet,效能也較低。
userspace 與 kernel 的取捨站內已講過,見 Docker 官方映像檔 的「userspace 與 kernel 模式」一節。
24.10 起改用 Docker,TrueCharts 已不維護
這點是找舊教學時最容易踩的坑:TrueNAS SCALE 24.10(Electric Eel)把 Apps 後端從 k3s/Helm 換成 Docker Compose,在那之前的 app 是跑在 k3s 上的 Helm chart。當時社群流行的 TrueCharts catalog 也在 24.10 之後宣布不再支援 SCALE(官方已導向遷移)。所以如果你看到「TrueNAS + TrueCharts 裝 Tailscale」的舊教學,那套已經過時——現在直接用官方 Apps 目錄裡的 Tailscale app 就好。
TrueNAS Core(BSD)不官方支援
Tailscale 官方文件特別註明:推薦用的是 Linux 版的 TrueNAS SCALE;TrueNAS Core(BSD 版)沒有官方支援,只有社群維護的 FreeBSD 版(在 FreshPorts 上)。
Unraid:官方合作的外掛(plugin)
安裝來源
Unraid 是官方合作的整合,但裝的是一個 plugin:進 web 介面的 Apps 選單(新機器先裝 Community Applications),搜尋 Tailscale、選 Tailscale (Plugin)(注意別選到舊的 Docker 選項),安裝後到 Settings → Network Services → Tailscale 做 Reauthenticate → Connect。
這個 plugin 由 Derek Kaser(社群暱稱 EDACerton)開發,代表 Unraid 維護——Tailscale 官方文件的說法就是「We recommend the Tailscale (Plugin) which Derek Kaser maintains on behalf of Unraid」;Unraid 7.0.0 的 release notes 也把 Tailscale plugin 與 Tailscale Docker 整合列進正式功能。
Unraid 7 起內建整合
官方支援是 Unraid 7.0.0(2025 年 1 月) 才加的。之前沒有官方整合,使用者裝的是同一個作者的社群 plugin。原始 repo dkaser/unraid-tailscale 在 2025 年 7 月歸檔,但 Lime Technology 早在 2024 年 10 月就已建立官方 repo(unraid/unraid-tailscale),接手其實發生在歸檔前後。所以「社群 plugin 的歷史」很簡單:作者先做社群版,Unraid 7 把它吸收成官方合作。
Unraid 7 還帶了 原生 ts.net 憑證支援:plugin 裝好後,https webGUI 可以直接用 Tailscale 憑證,tailnet URL 會顯示在 Settings → Management Access。
系統層 plugin vs Docker 容器整合
Unraid 有兩條並存的路,別搞混:
- Tailscale (Plugin):系統層外掛,在 Unraid 主機上以 root 跑
tailscaled(kernel TUN)。整台 Unraid——webGUI、SSH、SMB,甚至 array 停止時都還能經 Tailscale 連上,這是社群版 plugin 的重要賣點。 - Docker 容器整合:Unraid 7 起可在個別容器開 Tailscale,讓每個容器變成 tailnet 上一個獨立裝置(有自己的主機名稱與憑證)。這走 OAuth client + tag,適合把單一服務(如 Pi-hole)分享給沒裝 Tailscale 的人。
兩者的定位差別:plugin 是「讓整台 Unraid 進 tailnet」,Docker 整合是「讓某個容器進 tailnet」。
exit node 與 subnet router
-
exit node:在 plugin 的圖形介面點 Run as Exit Node,再到 admin console 核准。
-
subnet router:在終端機(主選單的
>_)跑:tailscale up --advertise-routes=192.168.1.0/24多個網段用逗號分隔,再到 admin console 核准。
更新與重開機
- 更新:plugin 走 Unraid 的 plugin 更新機制(Settings 裡的 plugin 更新,或手動)。
- 狀態保存:plugin 在系統層跑、狀態持久化,重開機自動恢復,且不依賴 array 是否啟動。
三平台對照表
| 項目 | QNAP | TrueNAS SCALE | Unraid |
|---|---|---|---|
| 安裝來源 | App Center 官方套件,或手動 QPKG | Apps 目錄官方 app(Docker 映像檔) | Community Applications 的 Tailscale (Plugin) |
| 是否 kernel TUN | 是(預設 tailscale0) |
是(預設 host network+kernel TUN;勾 Userspace 才走 userspace) | 是(系統層 plugin) |
| subnet router/exit node | 皆支援;subnet router 需 CLI | 皆支援(Advertise Routes/Advertise Exit Node 欄位) | 皆支援;subnet router 需 CLI、exit node 在 UI |
| Tailscale SSH | 未查證(官方文件未明列) | 未查證(官方文件未明列) | 未查證(官方教學影片有列) |
| 更新方式 | App Center 更新,或手動換 QPKG | Apps 目錄更新 app | plugin 更新 |
與 Synology 的比較:outbound 是關鍵差異
三者和 Synology 最大的差別在**「NAS 上的其他服務能不能主動連出去」**:
- Synology DSM 7:套件沒 TUN 權限,預設只能「被連入」,要連出得跑
configure-host建立 TUN、還要在套件升級後重跑,防火牆也要放行100.64.0.0/10。完整流程見 DSM 7 讓 NAS 上的其他服務也能連出去。 - QNAP:套件以 root 跑、kernel TUN 預設開好,沒有 DSM 7 那套額外步驟。
- Unraid:plugin 是系統層、kernel TUN,整台主機可連出。
- TrueNAS SCALE:預設 host network+kernel TUN,主機本體就在 tailnet;勾選 Userspace 才變成只有 app 本身。
另外,Synology 的遠端入口有 QuickConnect 這條「不裝 VPN 也能連」的路,但另外三家也不是沒有自己的方案:QNAP 有 myQNAPcloud(myQNAPcloud Link 用 SmartURL 中繼,主打免開埠)、Unraid 有 Unraid Connect 的 Remote Access(不過它是把 webGUI 用 UPnP/埠轉送開到公網,官方反而建議優先走 Tailscale)、TrueNAS 有 TrueNAS Connect(偏集中管理面板)。所以裝 Tailscale 對這三家的價值不在「補上遠端存取」,而在把整台 NAS 收進 tailnet:不只自家 App,SMB、SSH、Docker 服務都能連,還能當 subnet router/exit node。QuickConnect 與 Tailscale 的取捨見 QuickConnect 與 Tailscale:什麼時候用哪一個。
最小權限的 grants 範例
把 NAS 當 subnet router 或 exit node 之後,誰能用它由 ACL / Grants 決定——預設全開。建議只開給自己或特定成員。以 exit node 為例(dst 用 autogroup:internet 表示「經由它上網」,不是寫那台 NAS):
{
"grants": [
{
"src": ["autogroup:admin"],
"dst": ["autogroup:internet"],
"ip": ["*"]
}
]
}subnet route 的範例(dst 放區網網段)與完整語法見 ACL / Grants 入門、Subnet Router 與 Exit Node。另外,NAS 這種常開的裝置建議到 admin console 對它 Disable key expiry,避免金鑰 180 天到期後失聯。
參考資料
- Access QNAP NAS from anywhere(Tailscale 官方)
- Access TrueNAS SCALE from anywhere(Tailscale 官方)
- Access Unraid NAS from anywhere(Tailscale 官方)
- Unraid + Tailscale(Unraid 官方)
- Unraid 7.0.0 Release Notes(Tailscale integration,Unraid 官方)
- tailscale-qpkg(Tailscale 官方 QPKG 套件 repo)
- Tailscale 原始碼:
release/dist/qnap(QPKG 套件定義與啟動腳本) - Tailscale 原始碼:
cmd/tailscaled/tailscaled.go(預設 TUN 名稱) - TrueNAS SCALE 24.10 (Electric Eel) Release Notes(TrueNAS 官方,Docker-based Apps)
- TrueNAS Apps 目錄
ix-dev/community/tailscale(truenas/apps,app 欄位與預設值) - TrueNAS Charts
community/tailscale(truenas/charts,k3s 時代的 chart) - myQNAPcloud(QNAP 官方)
- Unraid Connect Remote Access(Unraid 官方)
- TrueNAS Connect(TrueNAS 官方)
- DSM 7 讓 NAS 上的其他服務也能連出去:TUN 與 configure-host
- QuickConnect 與 Tailscale:什麼時候用哪一個
- Docker 官方映像檔:環境變數、userspace 與 Serve 設定檔
- Windows 無人值守模式與當 exit node
- ACL / Grants 入門
- Subnet Router:存取整個區網內沒裝 Tailscale 的設備
- Exit Node:讓所有流量經由指定裝置出去