HomeLab 網絡的究極形態:用 Tailscale 實現跨網絡設備互聯
為了把散落在不同網絡的設備接成同一張網,我這幾年前後試過幾個方案:先在 Router 上架 OpenVPN,覺得不夠順手,換 OpenWrt + WireGuard 做 site-to-site,再試 Cloudflare WARP 做設備互通。每一個方案都解了一些問題,卻也帶來新的麻煩:設定瑣碎、ACL 難管、手機接入不夠順、連線品質不穩定。
直到用 Tailscale 之後,我才覺得這件事終於不用再花太多心神處理。

我的實際用途
先講結論:我用 Tailscale 不是為了「全機翻牆」,而是為了讓自己的裝置可以安全找到彼此。
目前最常用的是這幾件事:
-
任何地方用 VS Code Remote 連回 Mac mini
Mac mini 是我的主力開發機。平常我不想把工作環境到處同步,也不想每台筆電都裝一整套工具。只要工作機連上 Tailscale,我就可以直接用 VS Code Remote SSH 到
home-mac。最舒服的是不用開家裏 router 的 port,也不用記住家裏 IP 有沒有變。
-
手機安全打開自己的 dashboard
我有一些自用系統,例如 finance dashboard、監控頁面、內部工具。有些跑在 Mac mini,有些跑在 Oracle Cloud VM。
這些服務不值得公開到 Internet,也不想加一堆登入層和反向代理。現在做法很簡單:服務只聽 tailnet 或內網,手機裝 Tailscale,想看就直接打開。
-
免費 Oracle Cloud VM 當長期在線節點
Oracle Cloud 的免費 VM 規格幾吸引,尤其是 Arm VM 可以做到 4C24G。我會把一部分自用服務放在這台日本區 VM 上,同時讓它負責特定流量出口。這個我會在第三篇細講。
-
GPU server 不用長開,需要時才叫醒
GPU server 很吵又吃電,所以我不想 24 小時開著。現在的流程是:先 SSH 到
home-mac,再用 Wake-on-LAN 叫醒gpu-server。等它上線後,就可以從 tailnet 裏任何一台裝置連去上面的 LLM server。這種「平時瞓覺,需要先叫醒」的機器,用 Tailscale 接起來很舒服。
它跟傳統 VPN 最大差別
傳統 VPN 的概念比較像一條隧道:你連進去之後,整台電腦就像被丟進了某個內網,所有流量都從那邊出去。公司 VPN、家裏開 port 設的 OpenVPN,大多是這種感覺。
這種方式可以用,但對 HomeLab 來說有幾個問題:
- 手機在外面要連回來,設定很麻煩
- 裝置一多,IP、key、路由要自己管
- ACL 通常要每台機器自己設,沒有統一介面
- 雲端 VM 臨時加進來,彈性不夠
Tailscale 的作法不太一樣。它不是把你丟進某個內網,而是讓你的裝置直接變成同一張 overlay network 的成員。每台裝置有自己的身份(用 email 登入),可以集中管理權限,不用記 IP。
重點是:Tailscale 預設只處理 tailnet 裏裝置之間的流量,不會接管一般 Internet 流量。所以伺服器和工作機可以長期開著 Tailscale,但不用擔心整台機器的網絡全部被 VPN 改掉。需要全機流量走 VPN 的話,可以另外設定 exit node,但這不是預設行為。
| 方案 | 優點 | 我遇到的麻煩 |
|---|---|---|
| OpenVPN | 成熟、到處都有教學 | 設定和憑證管理比較重,手機和多裝置管理不夠舒服 |
| 手寫 WireGuard | 輕、快、乾淨 | peer、key、路由和 ACL 要自己照顧,裝置一多就煩 |
| Site-to-site VPN | 適合固定兩個網段 | 對手機、筆電、臨時雲端 VM 不夠彈性 |
| Tailscale | 裝置導向、集中管理、ACL 好用 | 需要接受控制台和身份登入這種模式 |
Tailscale 底層怎樣連線
Tailscale 的數據面用的是 WireGuard,但連線建立不是自己手動配 peer。兩台設備要互通時,會先經過 Tailscale 的 coordination server 交換 public key 和端點資訊,然後嘗試 NAT 穿透(類似 STUN/ICE 的機制)直接建立 peer-to-peer 連線。如果兩邊 NAT 太嚴格穿透不了,就會退回到 Tailscale 的 DERP relay server 做中繼。
重點是:不管走直連還是 relay,數據都是端到端 WireGuard 加密。DERP server 只看到加密後的封包,Tailscale 自己也解不開。
大部分家用和雲端場景,NAT 穿透都能成功,流量直接走設備之間,不經過任何中間節點。只有穿透失敗時才會走 relay,速度會慢一點但不會斷。
裝置比 IP 重要
我最喜歡 Tailscale 的地方,是它把「網絡」變成一堆可以被管理的裝置,而不是一堆 IP。
例如我不需要記住 Mac mini 是哪個 100.x.y.z IP,只要用 MagicDNS 叫它 home-mac。這件事看起來很小,但日常使用差很多:SSH、dashboard、內部工具都可以用穩定名字連,不用再翻筆記找 IP。
ACL 和 Tags
另一個我很在意的點,是權限終於可以集中管理。
以前自己架 VPN 或手寫 WireGuard,常常是「網絡通了」就先放著,真的要限制誰能連哪台機器、哪個 port,最後又回到每台機器各自改 firewall。Tailscale 則可以用 ACL / Grants 在控制台定義規則:誰可以連誰、哪些服務可以開、哪些機器屬於同一類。
Tags 也很適合 HomeLab。像 tag:server、tag:cloud、tag:personal 這種分類,比硬記某台 VM 的 IP 或主機名更好維護。機器換了、重建了,只要 tag 還在,權限模型就不用整個重寫。
把拓撲和權限拆開看會比較清楚。拓撲解決「裝置怎樣互相找到」,ACL / Tags 解決「誰可以碰哪些服務」:

下一篇
這篇先講我為什麼這樣用。下一篇會手把手整理設定流程:怎樣建立 tailnet、安裝 Mac / 手機 / Oracle Cloud VM、開 MagicDNS、設 tag、關掉穩定伺服器的 key expiry,以及怎樣讓 VS Code Remote 用起來像本機一樣。
如果你現在的 HomeLab 還是靠「記 IP + 開 port + 偶爾開 VPN」勉強撐住,Tailscale 很值得試一次。它不是最 geek 的方案,但大概是我用過最少煩惱的方案。