SSD Nodes Learn Hosting plans →
指南 Matt Connor作者: Matt Connor

Synology 或 QNAP NAS 安裝 Tailscale:免開埠遠端連回家

把 Synology 或 QNAP NAS 加進 Tailscale,以直連 WireGuard 取代 QuickConnect、myQNAPcloud Link 和埠轉發。含 DSM 7 的 TUN 開機任務、SPK/QPKG 手動安裝、Synology 的限制,以及備份到 VPS 與手機開 Immich。

在 NAS 上裝 Tailscale 是在取代什麼

在 Synology 或 QNAP NAS 上安裝 Tailscale,目的只有一個:讓你的手機、筆電和 VPS 直接用 WireGuard 加密通道連到 NAS,不必在路由器開埠,也不必再經過 QuickConnect 或 myQNAPcloud Link 的廠商中繼。Tailscale 會先嘗試打通兩台裝置之間的直接連線,打不通時才退回 Tailscale 自己的 DERP 中繼伺服器。裝好之後,NAS 會拿到一個 100.x.y.z 的 tailnet 位址,只有登入同一個 tailnet 的裝置看得到它。

這篇的步驟在 2026-09-20 對照過 Tailscale 官方文件 kb/1131(Synology)與 kb/1273(QNAP)。DSM 和 QTS 無法在我們的測試容器裡執行,所以下面的指令是「照官方文件逐條核對過」,不是「在容器裡跑過」。每一節都標了適用的 DSM 或 QTS 世代,套件改版後請以官方 KB 為準。

你現在是用哪一種方式連回 NAS

台灣和香港的家用 NAS 使用者,出門後連回 NAS 大多是下面三種方式之一。

QuickConnect(Synology)或 myQNAPcloud Link(QNAP)。 這是廠商幫你架的中繼:NAS 主動連到廠商的伺服器,你的手機也連到廠商的伺服器,流量在中間轉一手。好處是零設定。代價是速度受中繼頻寬限制,而且 NAS 能不能被連上,取決於廠商的服務有沒有在線。

路由器埠轉發。 在路由器上把 5001 或 8080 埠打到 NAS,再配一個 DDNS 名稱。速度是直連的速度,但整個網際網路都摸得到 NAS 的登入頁,掃描機器人每天都會來試密碼。如果你的 ISP 給你的是私有位址(路由器 WAN 端拿到的是 10.172.16172.31192.168.100.64100.127 開頭的位址),埠轉發根本開不通,因為你的路由器前面還有一層 ISP 的 NAT(網路位址轉譯)。

Tailscale。 NAS 和你的裝置各自向 Tailscale 的協調伺服器登記公鑰與目前的網路位置,然後兩邊直接建立 WireGuard 通道。協調伺服器只交換金鑰和位址,不經手你的資料。這條路完全不需要在路由器上開任何埠,也就是 用 Tailscale 取代路由器上的埠轉發 那篇講的做法。如果你對 Tailscale 還不熟,先看 Tailscale 是什麼、它跟傳統 VPN 差在哪

Synology:從套件中心安裝(DSM 7)

以下步驟適用 DSM 7.x。DSM 6 也有套件,但後面的限制一節會說明為什麼不該在 DSM 6 上花時間。

  1. 開啟「套件中心」(Package Center),搜尋 Tailscale,按「安裝」。
  2. 安裝完成後開啟 Tailscale 套件,照畫面指示用 Google、Microsoft、GitHub 或其他身分提供者登入你的 tailnet。沒有帳號的話,登入時會自動建立一個。
  3. 登入後,到 Tailscale 管理主控台(login.tailscale.com/admin/machines)的 Machines 頁面,確認 NAS 已出現並顯示 Connected

套件中心上架的 Tailscale 版本,官方文件的說法是「大約每季更新一次」。如果你需要比套件中心新的版本(例如某個修正只在最新版),到 pkgs.tailscale.com 下載對應你機型 CPU 架構的 SPK 檔,再回套件中心點「手動安裝」。機型對應哪種架構,下載前先查 Synology 官方的 CPU 對照表。

裝好後在 DSM 的 SSH 終端機可以直接叫 CLI,路徑固定是:

sudo /var/packages/Tailscale/target/bin/tailscale status

tailscale status 應該列出 tailnet 裡的每台裝置,第一行是 NAS 自己的 100.x.y.z 位址。

DSM 7 的對外連線問題:開機觸發任務(TUN)

這一節是 Synology 使用者最常踩到、也最難自己找出原因的問題,值得單獨講。

在 DSM 7 上,Tailscale 套件預設沒有權限建立 TUN 裝置(TUN 是核心提供的虛擬網路介面,WireGuard 流量要經過它)。結果是:從外面連進 NAS 沒問題,但 NAS 上的其他套件無法主動連出去到 tailnet 裡的其他裝置。官方文件的原話是,DSM 7 上「other Synology packages cannot make outgoing connections to your other Tailscale nodes by default」。實際症狀就是 Hyper Backup 或 rsync 要推備份到 VPS 的 100.x.y.z 位址時連不上,而你從筆電連 NAS 卻一切正常。

修法是建立一個開機時以 root 執行的觸發任務。官方文件要求 Tailscale 版本在 v1.22.2 以上。

  1. 「控制台」→「任務排程表」(Task Scheduler)→「新增」→「觸發的任務」(Triggered Task)→「使用者定義的指令碼」(User-defined script)。
  2. 「使用者」選 root,「事件」選「開機」(Boot-up)。
  3. 在「任務設定」的指令碼欄位貼上下面這一行,一字不改。
  4. 存檔,然後重新開機一次。
/var/packages/Tailscale/target/bin/tailscale configure-host; synosystemctl restart pkgctl-Tailscale.service

tailscale configure-host 會補上 Tailscale 需要的主機設定,synosystemctl restart pkgctl-Tailscale.service 則讓套件用新設定重啟。兩個指令中間的分號不能漏,因為第二個指令要等第一個做完。

每次升級 Tailscale 套件後都要再跑一次。 官方文件寫得很直接:「Upgrading the Tailscale package will require the above script to run again」。套件升級會把設定蓋掉,所以把任務留在排程表裡不要刪,升級後手動執行一次或重開機都可以。

驗證方式:在 DSM 的 SSH 終端機,從 NAS 端往 tailnet 裡另一台裝置 ping。

sudo /var/packages/Tailscale/target/bin/tailscale ping <另一台裝置的名稱或 100.x 位址>

修好之後應該看到 pong from ...。修之前,這條從 NAS 主動發起的連線會等到逾時。

Synology 版的三個限制

這三點都寫在官方文件的限制段落,先知道可以省掉幾個小時。

只能 --advertise-routes,不能 --accept-routes NAS 可以當 subnet router,把家裡的 192.168.x.0/24 廣播給 tailnet 其他裝置。但 NAS 自己無法接受其他裝置廣播的子網路。也就是說,你可以「經過 NAS 進家裡區網」,但不能「讓 NAS 經過別台機器進另一個區網」。

Tailscale SSH 在 Synology 上不能用。 你還是能用 DSM 自己的 SSH 服務(「控制台」→「終端機 & SNMP」→「啟用 SSH 功能」),只是改走 tailnet 的 100.x.y.z 位址而已。Tailscale 那套用 tailnet 身分取代 SSH 金鑰的功能,在這個平台上沒有。

DSM 6 升 DSM 7 要先解除安裝 Tailscale,升完再裝。 而且官方文件明確警告:不要透過 Tailscale 連線去執行 DSM 7 升級,因為升級過程中連線會斷。請在家裡的區網內做這件事。

另外一個容易誤判的現象:Synology 版跑的是混合網路模式(hybrid networking mode),官方文件說你透過 NAS 分享出去的子網路「可以用 UDP 和 TCP 連到,但不一定 ping 得通」。所以驗證 subnet router 有沒有通,用 ssh 或瀏覽器開網頁,不要只靠 ping

QNAP:從 App Center 安裝(QTS 5 / QuTS hero)

以下步驟對照 kb/1273,適用有 App Center 的 QTS 5.x 與 QuTS hero h5.x。官方文件沒有列出最低 QTS 版本,只說明套件提供 x86-64 與 arm64 兩種架構,所以較舊的 32 位元 ARM 機型沒有套件可裝。

  1. 開啟 App Center,進入「通訊」(Communications)分類。
  2. 找到 Tailscale,按「安裝」。
  3. 安裝完成後點 Tailscale 圖示,選「開啟」,登入你的 tailnet。
  4. 在「Connect device」頁面按「Connect」。

需要比 App Center 新的版本時,同樣到 pkgs.tailscale.com 下載 QPKG 檔(有 stable 與 unstable 兩個軌道,一般用 stable),回 App Center 右上角點「手動安裝」(Install Manually),按「瀏覽」選 .qpkg 檔,再按「安裝」。

QNAP 版的 CLI 不在 PATH 裡,而且套件裝在哪個磁碟區取決於你的預設共用資料夾設定。官方文件給的找法是:

echo $(getcfg SHARE_DEF defVolMP -f /etc/config/def_share.info)/.qpkg/Tailscale/

這行會印出類似 /share/CACHEDEV1_DATA/.qpkg/Tailscale/ 的路徑。要直接執行 CLI,把 echo 換成指令:

$(getcfg SHARE_DEF defVolMP -f /etc/config/def_share.info)/.qpkg/Tailscale/tailscale status

或者在這次 SSH 工作階段裡把它加進 PATH:

export PATH=$PATH:$(getcfg SHARE_DEF defVolMP -f /etc/config/def_share.info)/.qpkg/Tailscale/
tailscale status

QNAP 上要當 subnet router 或 exit node,官方文件說要走 CLI,指令和一般 Linux 相同,見後面的 subnet router 一節。

確認是直連還是走 DERP 中繼

Tailscale 裝好就會連上,但「連得上」和「連得快」是兩回事。從任何一台 tailnet 裝置執行:

tailscale status

NAS 那一行如果寫著 active; direct 203.0.113.5:41641,就是直連,速度由你家的上傳頻寬決定。寫著 active; relay "tok" 就是走 DERP 中繼,引號裡是中繼節點代碼。

tailscale ping 看得更清楚:

tailscale ping nas

正常情況下前一兩個回應是 pong from nas (100.x.y.z) via DERP(tok) in 40ms,接著切成 via 203.0.113.5:41641 in 12ms,代表直連打通了。如果連續回應都停在 via DERP(...),直連沒成功。

最常見的原因是雙重 NAT:你的 ISP 給你的 WAN 位址本身就是私有位址,路由器前面還有 ISP 的一層 NAT。Tailscale 官方文件說,兩端都在 hard NAT 後面時,直連是建不起來的。這時流量走 DERP 仍然可用,只是延遲和速度打折。判斷方法與改善方式,Tailscale 變慢時怎麼分辨直連和中繼 那篇有完整流程。把 VPS 加進 tailnet 在這裡也有幫助:VPS 有公網 IP,NAS 跟它之間幾乎一定能直連。

用途一:NAS 備份到 VPS,不開任何埠

NAS 加進 tailnet 之後,最實用的一件事是異地備份。3-2-1 備份原則要求一份放在異地,而 把 NAS 備份到一台 Storage VPS 就是這份異地備份。VPS 也裝 Tailscale,備份流量全程走 WireGuard,VPS 的防火牆不必對外開 rsync 或 SSH。

兩個方向都可以,選一個:

NAS 推到 VPS。 Synology 用 Hyper Backup,目的地選「rsync」,伺服器填 VPS 的 100.x.y.z 位址。QNAP 用 HBS 3,目的地同樣填 VPS 的 tailnet 位址。這個方向在 Synology 上需要前面的 TUN 開機任務,否則 NAS 連不出去。

VPS 從 NAS 拉。 在 VPS 上用 rsync 經 SSH 連 NAS 的 tailnet 位址:

rsync -av --delete -e ssh nasadmin@100.x.y.z:/volume1/photo/ /srv/backup/nas/photo/

nasadmin 換成你在 DSM 或 QTS 上有管理員權限的帳號(DSM 7 預設停用 admin 這個帳號)。NAS 端只需要打開 SSH 服務。如果你改過 Tailscale 的 ACL,要允許 VPS 連 NAS 的 22 埠,預設 ACL 是全部放行。因為 NAS 的 100.x.y.z 只在 tailnet 內可達,路由器上什麼都不用開。

在 VPS 上先用 ssh nasadmin@100.x.y.z 手動登入一次確認金鑰,再排進 cron。連不上時先看 tailscale status 裡 NAS 是不是 offline,再看 NAS 的 SSH 服務有沒有啟用。這兩個原因占了絕大多數。

用途二:手機直接開 NAS 上的 Immich 與其他容器

DSM 7.2 的 Container Manager(舊名 Docker)和 QNAP 的 Container Station 讓 NAS 能跑 Immich、Vaultwarden、Jellyfin 這類服務。傳統做法是反向代理加埠轉發,等於把這些服務的登入頁曝露在公網。

有了 tailnet,手機裝 Tailscale App 登入同一個帳號之後,直接在瀏覽器或 Immich App 裡填 http://100.x.y.z:2283(Immich 預設埠)就能連上。開啟 MagicDNS 的話,可以改填 http://nas:2283,不用記 IP。這些服務對公網完全不可見,路由器上沒有任何埠對外。

注意一點:Immich 手機 App 在背景備份照片時也走這條路,所以手機的 Tailscale 要保持連線。Android 和 iOS 的 Tailscale App 都可以設成常駐 VPN,才不會出門後備份就停掉。

如果你想把某個容器分享給沒有 tailnet 帳號的家人,Tailscale 的 Funnel 功能可以做。但這個功能在 NAS 套件上的支援狀況我沒有驗證過,穩妥的做法是在 VPS 上做,NAS 只透過 tailnet 對 VPS 開放。

讓 VPS 或外出的筆電經 NAS 進家裡區網

想從外面連的不只是 NAS,還有家裡的印表機、IP 攝影機或路由器管理頁,就把 NAS 設成 subnet router。Synology 在 SSH 終端機執行:

sudo /var/packages/Tailscale/target/bin/tailscale set --advertise-routes=192.168.1.0/24

QNAP 把路徑換成前面用 getcfg 找到的那個。192.168.1.0/24 換成你家實際的網段,到路由器管理頁或 DSM 的「網路」設定確認。

接著到 Tailscale 管理主控台的 Machines 頁面,找到 NAS,進「Subnets」區塊按「Edit」,勾選這條路由並「Save」。沒有核准之前,路由不會生效,其他裝置也看不到。

然後在要用這條路由的裝置上接受它。Linux 要執行 sudo tailscale set --accept-routes,Windows、macOS 與手機 App 預設就會接受。記得 Synology 自己不能 --accept-routes,所以 NAS 是這條路的入口,不是出口。

如果你家的上傳頻寬太小,或你希望入口有固定的公網 IP,另一個做法是把入口設在 VPS。在 VPS 上架 Tailscale subnet router 那篇說明怎麼做,以及什麼情況下該選 VPS 而不是 NAS。

費用與帳號

官方文件的說法是:登入時沒有帳號會自動建立一個免費帳號。個人用途(一個人、幾台裝置、一台 NAS、一台 VPS)落在免費方案內。方案的裝置數與使用者數限制會變動,這篇不列數字。需要確認的話看 Tailscale 免費方案的實際限制,那篇有註明查核日期。

FAQ

Synology 裝了 Tailscale 之後,為什麼 Hyper Backup 連不到 VPS?

因為 DSM 7 預設不讓 Tailscale 套件建立 TUN 裝置,NAS 上的其他套件無法主動連出去到 tailnet 的其他節點,只有連進 NAS 的方向正常。修法是建立開機觸發任務,以 root 執行 /var/packages/Tailscale/target/bin/tailscale configure-host; synosystemctl restart pkgctl-Tailscale.service,然後重開機。每次升級 Tailscale 套件後都要再執行一次。

對於你自己和你信任的裝置,可以,而且直連時速度更快,廠商服務中斷時也不受影響。做不到的是把一個連結丟給沒有 tailnet 帳號的人,這是 QuickConnect 分享連結在做的事。要做這件事,保留 QuickConnect 只給分享用,或在 VPS 上用 Tailscale Funnel。

我的 ISP 給我的是私有 IP,Tailscale 還能用嗎?

能用。這正是 Tailscale 相對於埠轉發的優勢:兩端都是主動往外連,不需要任何一端有可被連入的公網位址。差別只在能不能直連。tailscale ping nas 一直停在 via DERP(...) 就表示直連沒打通,流量走中繼,仍然可用,但速度和延遲會差一些。

套件中心的 Tailscale 版本太舊,手動裝 SPK 或 QPKG 安全嗎?

pkgs.tailscale.com 是 Tailscale 官方的套件伺服器,套件中心和 App Center 上架的也是同一來源,只是審核上架有延遲。手動安裝前先查對照表確認 CPU 架構。Synology 手動裝完後要記得,升級也算套件更新,TUN 觸發任務要重跑。

從 DSM 6 升到 DSM 7 要注意什麼?

先在 DSM 6 解除安裝 Tailscale,升級 DSM,再重新安裝 Tailscale,然後建立 DSM 7 需要的 TUN 觸發任務。整個過程請在家裡的區網內操作,不要透過 Tailscale 連線遠端執行升級,因為升級中連線會中斷。