引言
你管理着多台 VPS,分布在不同的云服务商或地区。日常运维中,你是否遇到过这些痛点?
- 每台服务器都要单独配置端口映射,防火墙规则复杂且容易出错;
- 远程桌面、SSH、数据库连接需要暴露公网 IP,安全风险高;
- 不同 VPS 之间的服务调用要经过公网,延迟高且不稳定;
- 想用 WireGuard 自建 VPN,但配置繁琐,密钥管理麻烦。
Tailscale 的出现让这些问题迎刃而解。它是一个基于 WireGuard 的零配置 Mesh VPN,只需在每台设备上安装客户端,就能自动建立安全的私有网络。所有设备共享同一个虚拟 IP 段,无需手动配置路由、端口映射或防火墙规则。
本文将带你从零开始,使用 Tailscale 为你的 VPS 构建一套完整的私有组网方案。
为什么选择 Tailscale?
核心优势
| 特性 | Tailscale | 传统 VPN | Cloudflare Tunnel |
|---|---|---|---|
| 配置复杂度 | ⭐ 零配置 | ⭐⭐⭐ 复杂 | ⭐⭐ 中等 |
| 设备间互通 | ✅ 原生支持 | ✅ 需配置 | ❌ 不支持 |
| 跨地域延迟 | ✅ 低延迟 | ✅ 正常 | ⚠️ 经代理 |
| 安全性 | ✅ 端到端加密 | ✅ 加密 | ✅ 加密 |
| 成本 | ✅ 免费(5 设备) | ✅ 自建免费 | ✅ 免费 |
| 适用场景 | 多设备组网 | 远程访问 | Web 服务发布 |
技术原理
Tailscale 基于 WireGuard 协议,采用以下架构:
- 控制平面:Tailscale 服务器负责设备认证、NAT 穿透协调
- 数据平面:设备之间直接建立 WireGuard 连接(P2P)
- DERP 中继:当 P2P 失败时,通过 Tailscale 的中继服务器转发
这意味着你的数据传输是端到端加密的,即使经过中继服务器,内容也无法被解密。
安装与配置
第一步:注册账号
访问 Tailscale 官网,使用 Google、GitHub 或 Microsoft 账号登录。个人用户免费,最多支持 5 台设备。
第二步:安装客户端
Linux (Debian/Ubuntu)
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
Linux (CentOS/RHEL)
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
Windows
下载 Windows 客户端,运行安装程序后登录即可。
macOS
brew install --cask tailscale
sudo tailscale up
第三步:配置 VPS
以 Ubuntu 22.04 为例:
# 安装 Tailscale
curl -fsSL https://tailscale.com/install.sh | sh
# 启动并认证
sudo tailscale up
# 查看本机 Tailscale IP
tailscale ip -4
# 查看已连接设备
tailscale status
第四步:配置防火墙
Tailscale 会自动处理防火墙规则。你只需要确保:
# 允许 Tailscale 接口通信
sudo ufw allow from 100.64.0.0/10
sudo ufw reload
如果使用 firewalld:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="100.64.0.0/10" accept'
sudo firewall-cmd --reload
实际应用场景
场景一:SSH 远程管理
配置前:
# 需要知道每台 VPS 的公网 IP
ssh root@192.168.1.100
ssh root@10.0.0.50
配置后:
# 使用 Tailscale IP,自动路由
ssh root@100.64.0.1
ssh root@100.64.0.2
优势:
- 无需暴露 SSH 端口到公网
- 即使 VPS 公网 IP 变化,Tailscale IP 不变
- 所有连接端到端加密
场景二:服务间互通
假设你有三台 VPS:
- VPS-A:运行数据库 (MySQL)
- VPS-B:运行应用服务器
- VPS-C:运行 Web 前端
配置后,应用服务器可以直接通过 Tailscale IP 访问数据库:
# VPS-B 访问 VPS-A 的 MySQL
mysql -h 100.64.0.1 -u app_user -p
Web 前端也可以直接访问应用服务器:
# VPS-C 访问 VPS-B 的 API
curl http://100.64.0.2:8080/api
场景三:多地域 VPS 互通
不同云服务商的 VPS 之间也可以组建私有网络:
# 阿里云 VPS
sudo tailscale up
# 腾讯云 VPS
sudo tailscale up
# AWS VPS
sudo tailscale up
# 现在它们都在同一个虚拟局域网中
高级配置
子网路由
让 Tailscale 网络中的设备访问你的内网资源:
# 在 VPS 上启用子网路由
sudo tailscale up --advertise-routes=192.168.1.0/24
# 在管理后台批准该路由
访问控制
在 Tailscale 控制台配置 ACL:
{
"acls": [
{
"action": "accept",
"src": ["autogroup:members"],
"dst": ["*:*"]
}
]
}
文件共享
利用 Tailscale 的内置功能进行文件传输:
# 发送文件
tailscale file send user@100.64.0.2 /path/to/file.zip
# 接收文件会自动保存到 ~/Downloads/tailscale-file-receive/
与替代方案对比
Tailscale vs WireGuard
| 特性 | Tailscale | 自建 WireGuard |
|---|---|---|
| 配置难度 | ⭐ 极低 | ⭐⭐⭐ 高 |
| NAT 穿透 | ✅ 自动 | ❌ 需手动 |
| 设备管理 | ✅ 控制台 | ❌ 手动 |
| 密钥轮换 | ✅ 自动 | ❌ 手动 |
| 适合场景 | 快速部署 | 完全掌控 |
Tailscale vs Cloudflare Tunnel
| 特性 | Tailscale | Cloudflare Tunnel |
|---|---|---|
| 设备间互通 | ✅ 支持 | ❌ 不支持 |
| Web 服务发布 | ✅ 支持 | ✅ 原生支持 |
| 延迟 | ✅ 低 | ⚠️ 经代理 |
| 配置复杂度 | ⭐ 低 | ⭐⭐ 中等 |
最佳实践
1. 使用强密码和 MFA
# 启用两步验证
# Tailscale 控制台 → 账号设置 → 两步验证
2. 定期审计设备
# 查看所有连接设备
tailscale status
# 移除不再使用的设备
# Tailscale 控制台 → 设备 → 删除
3. 限制访问权限
使用 ACL 严格控制哪些设备可以访问哪些服务。
4. 监控网络状态
# 实时监控网络状态
tailscale netcheck
# 测试连通性
tailscale ping 100.64.0.2
常见问题
Q: Tailscale 免费吗?
个人用户免费,最多支持 5 台设备。团队版 $6/用户/月,支持无限设备。
Q: 数据安全吗?
是的。Tailscale 使用 WireGuard 加密,采用端到端加密,即使经过中继服务器也无法解密。
Q: 会影响网络速度吗?
P2P 直连时延迟很低。只有当 P2P 失败时才会使用中继服务器,此时会有轻微延迟。
Q: 可以自托管控制平面吗?
可以。Tailscale 支持自托管 MagicDNS 和控制平面,适合企业级需求。
总结
Tailscale 为自托管爱好者提供了一套简单、安全、高效的组网方案:
- ✅ 零配置:安装即用,无需手动配置路由
- ✅ 安全可靠:端到端加密,访问可控
- ✅ 跨地域互通:不同云服务商的 VPS 也能组成私有网络
- ✅ 成本低廉:个人用户免费
对于管理多台 VPS 的运维人员来说,Tailscale 是提升效率、降低风险的利器。别再让复杂的端口映射和防火墙规则困扰你,试试 Tailscale 吧!
