手機上 Tailscale + SSH,簡版
Tailscale 把你的手機和伺服器放進一個私有網路(「tailnet」),每臺都有一個穩定的私有 IP,於是你能從任何地方 SSH 到一臺機器,不用轉發連接埠、也不把 SSH 暴露到公網。人們說「Tailscale SSH」時通常指兩件相關的事:
- 走 Tailscale 的 SSH——你連到伺服器的私有 tailnet IP、用你正常的 SSH 金鑰登入。這是你在行動 SSH 客戶端裡做的,也是常見情況。
- Tailscale SSH(那個功能)——一個伺服器端選項(
tailscale up --ssh),由 Tailscale 自己用你的身分和 ACL 在 tailnet 節點之間認證 SSH,於是這些連線你不用管金鑰。
本文把兩者都從手機設定好。
第 1 步——讓手機和伺服器進 tailnet
- 在每臺伺服器上裝 Tailscale 並登入(
tailscale up)。每臺拿到一個 100.x 私有 IP 和一個 MagicDNS 名字。 - 讓手機進 tailnet。要麼裝 Tailscale App,要麼用一個內建它的客戶端——TermAI 內嵌了 Tailscale,手機不用第二個 App 就能入網。見 iPhone 上的 Tailscale。
第 2 步——走 tailnet SSH
現在在 SSH 客戶端裡加一個連線,用伺服器的 tailnet IP(或 MagicDNS 名)代替公網位址,連接埠 22、你的使用者名稱和金鑰。因為 tailnet 是私有且常開的,這臺機器從行動網路或任何 Wi-Fi 都能到達——而沒有任何東西暴露到公網。
第 3 步(可選)——在伺服器上開啟 Tailscale SSH
如果你想讓 Tailscale 來處理你自己裝置之間的 SSH 認證,在伺服器上開啟這個功能:
sudo tailscale up --ssh 現在來自你 tailnet 的連線(受你的 ACL 管轄)由 Tailscale 身分認證,而非你管理的金鑰。你在 tailnet 策略檔裡控制誰能 SSH 到什麼——例如,允許你的使用者到達 prod 標籤:
// tailnet 策略(ACL)——示例
{
"ssh": [
{
"action": "accept",
"src": ["autogroup:member"],
"dst": ["tag:prod"],
"users": ["root", "autogroup:nonroot"]
}
]
} 注意:Tailscale SSH 用 tailnet 身分認證。第三方行動 SSH 客戶端在隧道裡仍然出示你的 SSH 金鑰;--ssh 功能的亮點在於 Tailscale 感知端點之間的免金鑰存取、以及把存取規則集中到 ACL 裡。
在手機上少打字地做
在手機上敲 tailscale up --ssh 或改 ACL 容易手滑。把要做的事描述給 TermAI 助理——「在這臺主機上開啟 Tailscale SSH」——執行前先複核命令。它貼著你連上的機器,所以給的是這個發行版對的命令。
常見問題
Tailscale SSH 和「走 Tailscale 的 SSH」有什麼區別?
走 Tailscale 的 SSH 是指連到伺服器私有 IP、用你正常的 SSH 金鑰登入。Tailscale SSH(--ssh)是一個功能,由 Tailscale 透過身分和 ACL 在 tailnet 節點之間認證 SSH,這些連線你不用管金鑰。
用 Tailscale 做 SSH 需要開 22 連接埠嗎?
不需要——這正是重點。伺服器在它的私有 tailnet 位址上可達,所以你能對公網關閉 22 連接埠。
能從 iPhone 或 Android 用 Tailscale SSH 嗎?
你能從任何行動客戶端走 tailnet SSH(TermAI 內建 Tailscale)。至於 --ssh 身分功能本身,在 Tailscale 感知端點之間體驗最強;從第三方客戶端,你在隧道裡仍出示金鑰。
快速事實
- 走 Tailscale 的 SSH:連私有 tailnet IP + 你的金鑰——無需連接埠轉發(行動預設)
- Tailscale SSH(
tailscale up --ssh):Tailscale 透過 ACL 在 tailnet 節點間認證 SSH - 手機設定:入 tailnet(Tailscale App 或 TermAI 內建),再 SSH 到私有 IP
- 安全收益:對公網關閉 22 連接埠
Free on iOS and Android. 5 AI requests/day on the free tier, plus unlimited SSH/SFTP and built-in Tailscale.