想讓朋友連到家裡的 Plex 或 Minecraft 伺服器,又不想把對方拉進自己的 tailnet、也不想公開到網際網路,可以用 Tailscale 的裝置分享(node sharing):把單一台機器分享給另一個 tailnet 的使用者,對方接受後,那台機器就會出現在他自己的 tailnet 裡,而他看不到你的其他裝置。
本文依 2026 年 10 月的 Tailscale 官方文件整理。
分享前先知道的事
- 所有方案都能使用。以連結邀請的分享方式(下面的 email 與連結兩種都是)官方目前標示為 beta,介面與行為可能還會變動。
- 分享與收回都要由你 tailnet 的 Owner、Admin 或 IT admin 操作;接受分享的人也要是對方 tailnet 的 Owner、Admin 或 IT admin。個人 tailnet 的擁有者就是 Owner,一般不用擔心。
- 只能分享給「使用者」:機器不能分享給 tag,對方 tailnet 裡用 tag 身分登入的機器也連不到分享過去的機器。
- 被分享的使用者不會計入你 tailnet 的使用者數。
怎麼分享
在 Admin console 的 Machines 頁面找到要分享的機器,點右邊的選單選 Share,有兩種方式:
- Share by email:輸入對方的 email,系統寄出一次性的邀請連結。對方不一定要用同一個 email 的 Tailscale 帳號接受,可以用任何 Tailscale 帳號登入接受。
- Copy invite link:產生連結自己傳給對方。預設是一次性連結;開啟 Reusable link 的話,同一個連結最多可以被接受 1,000 次。
不管哪一種,沒用到的邀請連結 30 天後失效。邀請連結要當成密碼看待,拿到的人就能接受分享、連到你的機器。
對方打開連結、登入並接受後,你會在 Share 對話框看到對方的頭像與 email,Machines 頁面也會標示這台機器有分享給外部使用者。
對方會看到什麼
接受之後,分享的機器就像對方自己 tailnet 裡的裝置一樣,出現在他的 Tailscale 用戶端與 Admin console 中,例如 macOS 的選單列,或 Linux 上的 tailscale status。
- 只有接受的那個人看得到,對方 tailnet 裡的其他使用者看不到這台機器。
- 機器在對方 tailnet 裡顯示的擁有者是分享的人,不一定是機器真正的擁有者。
- IPv4 位址通常和在你 tailnet 裡的一樣;如果那個位址在對方 tailnet 已經被別台裝置用掉,就會配發另一個位址。
- MagicDNS 只能用完整名稱:要用
<機器名稱>.<你的 tailnet 名稱>.ts.net連線,例如minecraft-server.yak-bebop.ts.net,不能只打minecraft-server。對方要自己在 tailnet 開啟 MagicDNS 才能用名稱連線。
接受分享時,Tailscale 只會揭露最少的資訊:接受者的 email 與頭像(讓你確認是誰接受),以及連線需要的實體 IP。
被分享的人能做與不能做的事
隔離(quarantine)
分享出去的機器預設是隔離的:它可以回應從對方 tailnet 進來的連線,但不能主動連到對方的裝置。所以對方接受分享不會讓自己的 tailnet 暴露在風險中。
如果需要雙向連線,例如你和朋友的工作站要互相連,就互相分享:你把你的機器分享給對方,對方也把他的機器分享給你。
Subnet Router 與 Exit Node
- Subnet Router 的路由不會一起分享:分享一台 Subnet Router,對方只能連到那台機器本身,連不到它後面的區網。要讓對方存取子網路,只能邀請對方加入你的 tailnet。
- Exit Node 可以分享:先把機器設成 Exit Node 並在 Admin console 核准(有設定
autoApprovers則免),分享時勾選 Allow use as an exit node,對方就能用它當出口。
其他限制
- 不能用 Taildrop 傳檔案。
- 不能把新裝置加進你的 tailnet。
- 你的 tag、群組與子網路資訊不會帶到對方 tailnet,對方的 policy 也不能引用你的 tag。
ACL 對分享的影響
分享的連線同時受兩邊 tailnet 的存取規則限制。預設的 policy 允許這種連線;只要任一邊改過 policy,就要確認規則有放行。
在你的 tailnet 裡,可以用對方的 email 或 autogroup:shared 寫規則(語法見 ACL / Grants 入門)。例如只讓所有被分享的使用者連 80 與 443 連接埠:
"grants": [
// 管理員可以連所有裝置
{
"src": ["group:admins"],
"dst": ["*"],
"ip": ["*"],
},
// 被分享的使用者只能連分享給他的機器的 80、443
{
"src": ["autogroup:shared"],
"dst": ["*"],
"ip": ["80", "443"],
},
],"dst": ["*"] 看起來像是開放所有機器,但被分享的使用者本來就只連得到分享給他的機器,這條規則只是再把連接埠限縮到 80 與 443。
反過來要小心 "src": ["*"] 這類規則:它會套用到所有能連進你 tailnet 的人,包含被分享的使用者。官方建議改用一個包含所有成員的群組;也可以用 autogroup:member,它不包含只接受了裝置分享的人。
和其他做法的比較
| 做法 | 對象 | 能連到什麼 | 適合 |
|---|---|---|---|
| 裝置分享 | 特定的 Tailscale 使用者 | 分享給他的機器(受雙方 ACL 限制) | 給朋友連 Plex、遊戲伺服器、給外包連開發機 |
| 邀請加入 tailnet | 特定的人 | 整個 tailnet(受 ACL 限制),含 Subnet Router 後面的區網 | 家人、長期合作的人,需要的裝置會越來越多 |
| Tailscale Funnel | 任何拿到網址的人 | 單一服務,透過公開的 HTTPS 網址 | 短期展示、接收 webhook |
| Tailscale Serve | 自己 tailnet 內的人 | 單一服務,以 tailnet 內的 HTTPS 網址提供 | 在 tailnet 內分享開發中的網站或資料夾 |
邀請使用者加入 tailnet 的差別:
- 會增加使用者數。Personal 方案最多 6 位使用者,付費方案則依使用者計費(見 方案與限制比較)。
- 可以指定對方的角色、用群組管理權限、讓他使用 Taildrop、新增自己的裝置。
- 邀請方式是 Admin console 的 Users 頁面 → Invite external users,未使用的邀請同樣 30 天失效。
簡單來說:只分享一兩台固定的機器、對方也有自己的 tailnet,用裝置分享;對方需要的範圍會變大、或要連區網裡的設備,就邀請加入;對方根本不用 Tailscale,用 Funnel。
收回分享
到 Machines 頁面,點那台機器的選單選 Share,在 Share 對話框裡的選單選 Revoke invite。已接受的分享與尚未接受的邀請都能這樣收回。收回後對方就連不到這台機器;之後要恢復,得重新寄送邀請,讓對方再接受一次。
另外要注意:
- 刪除你 tailnet 裡的某個使用者時,他管理的分享機器也會一起刪除;停權(suspend)的話,他管理的分享機器無法再和其他機器連線。
- 你的 tailnet 有開 Tailnet Lock 時,對方接受分享的裝置要先在你的 tailnet 裡簽署,才連得到分享的機器;反過來,分享進一個有開 Tailnet Lock 的 tailnet 的機器,也要先在對方那邊簽署。
疑難排解
找得到分享的機器卻連不上:
- 用名稱連線的話,確認自己的 tailnet 有開 MagicDNS,並且用的是完整的
.ts.net名稱。 - 檢查自己 tailnet 的存取規則有沒有擋掉;沒有的話,請分享的人檢查他那邊的規則。