跳到正文
minimachine.
← 学习路径
第 14 步 · 网络 简单 · 10 分钟

🕸️Tailscale:您的私有网络

从任何地方, 咖啡馆、火车、沙发, 都能连上您的机器,就像它就在您身边。加密、不用开放任何端口,五分钟搞定。


您的迷你 PC 在您家里,摆在路由器后面。只要您在同一个 Wi-Fi 上,一切都很美好。但您一出门, 咖啡馆、火车、办公室, 它就联系不上了。它住在一个私有网络里,藏在路由器的 NAT 后面,没有属于自己的公网地址。

2000 年代解决这个问题的办法是在路由器上开放端口:您把 22 端口转发到机器上,然后祈祷别人找不到它。问题是整个互联网都在不停地扫描这个端口。您刚刚把自家大门暴露给了全世界。脆弱、让人焦虑,而且每次换路由器都要重新配。

Tailscale 从另一头入手:它不是朝您的机器开一道口子,而是搭建一个私有网络,把您所有的设备彼此连起来。您的迷你 PC、笔记本、手机就像接在同一根网线上一样相互可见, 无论它们在地球上哪个角落。端到端加密(底层跑的是 WireGuard,当下最快的 VPN),而且您的路由器上零端口开放

你的笔记本 经 Tailscale 你的手机 经 Tailscale Mini-PC linux · agent · ollama Cloudflare 出站隧道 公众 ton-app.ton-domaine 私有 · 加密 公开 · 自选
fig.谁在和谁通话:私有走 Tailscale,公开走 Cloudflare。

一张图看懂它怎么工作

每台设备会在一个独立的地址段里拿到一个稳定的 IP(100.x.y.z)。这一组设备就是您的 tailnet, 您的个人小网络。当您的笔记本想和迷你 PC 通话时,Tailscale 会在两者之间建立一条直接且加密的连接,自己穿透 NAT。数据永远不会经过 Tailscale 的服务器:它们走点对点。

实际效果:您在火车上敲 ssh ulrich@mini,就跟坐在自家客厅里一样。无需配置路由器,无需暴露任何端口。

搭建,一步一步来

创建一个 Tailscale 账号(免费)

tailscale.com 注册。不用想新密码:Tailscale 依托您已有的账号, Google、GitHub 或 Microsoft。正是这个账号定义了有权进入您的 tailnet。免费方案对个人用途绰绰有余(最多 100 台设备)。

在迷你 PC 上安装 Tailscale

在机器上,一行命令就能装好这个服务:

# 安装 Tailscale 客户端(自动识别您的发行版)
curl -fsSL https://tailscale.com/install.sh | sh
# 把机器接入 tailnet
sudo tailscale up

tailscale up 会显示一个认证链接。在浏览器里打开它(任何设备上都行),用您的账号登录,机器就加入了网络。它现在终身拥有自己的 100.x.y.z 地址。

在您的笔记本和手机上装应用

在您的 Mac/PC 和手机上下载 Tailscale 应用(网站会给您合适的安装包),用同一个账号登录。每新增一台设备都会出现在网络里。要从迷你 PC 上查看列表:

tailscale status   # 列出您所有的设备及其 100.x.y.z 地址

开启 MagicDNS,用名字而不是数字来通话

没人愿意记 100.118.42.7。在 Tailscale 管理控制台(DNS 标签页)里,开启 MagicDNS。每台设备都能通过名字联系。您的 ssh 变得易读:

ssh ulrich@mini   # 而不是 ssh [email protected]

改变生活的彩蛋:Tailscale SSH

这就是那个让人说出”哦,这下真不一样了”的功能。正常情况下,要把 SSH 搞干净,得生成密钥、把它们复制到机器上、管理它们的轮换。有了 Tailscale SSH,是 tailnet 替您处理认证。

# 重新启用 Tailscale,并授权由 tailnet 管理的 SSH
sudo tailscale up --ssh

从此,您可以在 tailnet 里的设备之间做 SSH,一把密钥都不用管:Tailscale 已经知道那是您(拥有这两台机器的正是您的账号),身份的事它来负责。方便、神奇,而且一旦您把设备从网络里移除,访问立刻断开。

两个值得了解的附加项(可选)

  • 出口节点(exit node)。 您可以用 sudo tailscale up --advertise-exit-node 让笔记本的全部流量经过您家里的机器(然后在客户端选择这台机器作为出口)。在可疑的公共 Wi-Fi 上很有用:您上网就像在家里一样。
  • 子网路由(subnet routing)。 您可以把家里局域网中其他设备(一台打印机、一个 NAS)暴露给 tailnet,而无需在它们上面安装 Tailscale,只要把这台机器声明为子网路由器即可。这是一个选项,不是义务。

实话实说的那一面

Tailscale 是一个第三方协调服务。您的数据保持点对点且加密, 它们永远不会经过它, 但负责编排谁能联系谁的是它的基础设施(目录、认证、连接的建立)。对几乎所有用途来说,这都是一个绝佳的折中:您在简单性和安全性上收获巨大,代价只是依赖一个靠谱的第三方。

如果您执着于 100% 自托管,那么备选方案叫 Headscale:一个您自己托管的开源协调服务器,兼容 Tailscale 的客户端。工作量更大,控制力更强。如果完全的主权是您的一项标准,把它记在心里某个角落。