Tailscale:五分钟组建私有局域网,手机直连家里 NAS
这是什么
Tailscale 是基于 WireGuard 的组网工具。注册账号、在每台设备上装客户端、登录同一账号,这些设备就自动在同一个虚拟局域网里,每台设备分配一个 100.x.x.x 的 IP 地址,P2P 直连,延迟接近本地网络。
你能做什么:
- 在咖啡馆 SSH 回家里的电脑
- 手机访问家里 NAS 的文件管理界面
- 公司电脑远程桌面家里的 Windows
- 把 VPS 变成所有设备的流量出口
关键词(可以展开学习): WireGuard 协议、UDP 打洞(hole punching)、Mesh VPN、DERP 中继
免费版够用吗
| 限制项 | 免费版 |
|---|---|
| 账号数 | 1 个 |
| 设备数 | 最多 100 台 |
| Exit Node(出口节点) | 支持 |
| Subnet Routes(子网路由) | 支持 |
| MagicDNS | 支持 |
个人用完全够,不需要付费。
安装
手机 / 平板
iOS / Android 直接在应用商店搜 Tailscale,安装后用 Google 或 GitHub 账号登录。
Mac
brew install tailscale
sudo tailscale up
或者直接从 App Store 安装 Tailscale。
Linux(Ubuntu / Debian)
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
Windows
从 tailscale.com/download 下载安装包,安装后在系统托盘登录。
第一次连接
- 在每台设备上安装并登录同一个 Tailscale 账号
- 打开 Tailscale 控制台,看到所有设备及其
100.x.x.xIP - 在任意设备上 ping 另一台:
ping 100.64.0.1 # 换成你目标设备的 Tailscale IP
ssh user@100.64.0.1 # SSH 直连,不用端口转发
能 ping 通则组网成功。
MagicDNS:按机器名访问,不用记 IP
控制台 → DNS → 开启 MagicDNS
开启后可以直接用机器名访问:
ssh user@my-homeserver # 机器名
curl http://nas.tail12345.ts.net:8080 # 完整 Tailscale 域名
Exit Node:把 VPS 当成流量出口
如果你有一台 VPS,可以让所有设备的流量从 VPS 出去,类似 VPN 的效果。
→ 还没有 VPS?见《用 $6 VPS 搭建你的第一个服务器》
在 VPS 上开启 Exit Node:
# 开启内核 IP 转发
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf
# 注册为 Exit Node
sudo tailscale up --advertise-exit-node
在控制台里批准: 找到这台 VPS → Edit route settings → 勾选 Use as exit node
在其他设备上使用:
# 命令行
sudo tailscale up --exit-node=100.x.x.x # VPS 的 Tailscale IP
# 或者在 Tailscale App 图形界面里选择 Exit Node
现在你手机的所有流量都走 VPS 出去了。
Subnet Routes:访问家里整个内网
家里有路由器、NAS、智能设备,不想每台都装 Tailscale?在一台已安装的机器上开启子网路由:
# 假设家里内网是 192.168.1.0/24
sudo tailscale up --advertise-routes=192.168.1.0/24
在控制台批准这条路由后,Tailscale 网络里的其他设备都能直接访问 192.168.1.x 的设备,比如路由器管理界面 192.168.1.1。
和 Cloudflare Tunnel 的区别
两者解决的问题不同,可以同时用:
| Tailscale | Cloudflare Tunnel | |
|---|---|---|
| 访问者 | 只有你的 Tailscale 设备 | 任何人(公网) |
| 是否需要域名 | 否(MagicDNS 自动分配) | 是 |
| 延迟 | P2P 直连,延迟极低 | 经过 Cloudflare 节点 |
| 适合 | 个人设备互访、私有服务 | 向公网用户提供服务 |
常见问题
两台设备 ping 不通?
检查两台设备是否都显示在控制台且状态为 Connected。有时防火墙会阻止 UDP(WireGuard 用的协议)。如果 P2P 失败,Tailscale 会自动改用 DERP 中继,速度慢一点但仍然能通。
Tailscale 会看到我的流量吗?
不会。WireGuard 是端对端加密的,Tailscale 的服务器只负责帮设备找到彼此,流量本身走 P2P,Tailscale 无法解密。
手机关了 Tailscale 还能访问吗?
不能。需要 Tailscale 在后台运行,iOS 上记得允许后台刷新。