手机上 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 或安卓用 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.