最后更新于:2026年6月

传统 VPN 的体验往往让人头疼:手动配置 IP、端口转发、NAT 穿透失败、证书过期……对于大多数「只想让两台设备互相访问」的需求来说,这套流程太重了。
**Mesh VPN(网状组网)**的出现彻底改变了这个局面。你不需要公网 IP,不需要手动配置防火墙,不需要折腾复杂的路由规则——安装一个客户端、登录账号,设备就自动出现在了同一个「虚拟局域网」里。
Tailscale 和 ZeroTier 是当前最流行的两款 Mesh VPN 工具。它们的技术路线截然不同,各有拥趸,也各有最适合的场景。本指南将带你从零开始,完整掌握两者的配置、对比和实战应用。
🌐 什么是 Mesh VPN?
传统 VPN vs Mesh VPN
传统 VPN(Hub-and-Spoke):
[VPN 服务器]
/ | \
[设备A] [设备B] [设备C]
↑ 所有流量经过中心服务器,延迟高、带宽受限于服务器
Mesh VPN(Full Mesh):
[设备A] ←→ [设备B]
↖ ↗
[设备C]
↑ 设备之间点对点直连,不经中心节点中转核心区别:
| 维度 | 传统 VPN | Mesh VPN |
|---|---|---|
| 架构 | 中心化(Hub-and-Spoke) | 去中心化点对点(P2P) |
| 流量路径 | 所有流量经过 VPN 服务器 | 设备间直连 |
| 性能瓶颈 | VPN 服务器的带宽和算力 | 仅受两端网络限制 |
| 配置复杂度 | 需要配置服务端和客户端 | 安装客户端、登录即可 |
| 公网 IP 要求 | 服务端通常需要公网 IP | 不需要 |
| NAT 穿透 | 需要手动处理 | 自动 |
| 适合场景 | 访问公司内网、隐私上网 | 设备互联、远程 NAS、家庭组网 |
Mesh VPN 的核心技术
WireGuard:Tailscale 的底层隧道协议。ChaCha20-Poly1305 加密,极小代码量(约 4000 行),性能和安全性经过了正式密码学验证。
NAT 穿透(STUN/TURN/UPnP):自动发现路由器的 NAT 类型并建立直连路径。如果直连失败,通过中继服务器(DERP / Root Servers)转发。
身份认证:Tailscale 用现有的 OAuth 身份(Google、Microsoft、GitHub 等)验证设备和用户身份。ZeroTier 用公私钥对验证设备身份。
⚔️ Tailscale vs ZeroTier 深度对比
一表看懂所有差异
| 维度 | Tailscale | ZeroTier |
|---|---|---|
| 底层协议 | WireGuard(ChaCha20-Poly1305) | 自有协议(Salsa20/Poly1305, Curve25519) |
| 网络层 | 第 3 层(IP 路由) | 第 2 层(虚拟以太网) |
| 免费额度 | 6 用户 + 无限设备 | 10 设备/网络 + 1 管理员 |
| 付费起步价 | $8/用户/月 | $18/月起 + $2/额外设备 |
| 身份认证 | Google/Microsoft/GitHub/Okta OAuth | 设备公私钥对 + OIDC(高级版) |
| MagicDNS | ✅ 自动设备名解析 | ❌ 需要手动配置 |
| 2 层广播/多播 | ❌ 不支持 | ✅ 完整支持 |
| WoL 唤醒 | ❌ | ✅ |
| Taildrop 文件快传 | ✅ 跨平台 | ❌ |
| Tailscale SSH | ✅ 零配置免密登录 | ❌ |
| Tailscale Funnel | ✅ 公网暴露本地端口 | ❌ |
| Exit Node | ✅ 流量出口代理 | 通过路由配置实现 |
| Subnet Router | ✅ 广播内网设备 | ✅ 路由转发 |
| 自建控制平面 | Headscale(社区版) | ✅ ZeroTier-One(官方开源) |
| 开源程度 | 客户端开源,控制平面闭源 | 客户端和控制器均开源(BSL) |
| 多用户管理 | SSO 集成、ACL 细粒度控制 | 基础设备授权 |
| 审计日志 | ✅ Premium 及以上 | ❌ |
| Post-Quantum 加密 | ❌ | ✅ Quantum 版 |
| 易用性 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| 灵活性 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
核心哲学差异
Tailscale 的设计哲学是「零配置」。你登录 Google 账号,所有设备自动加入同一个 Tailnet,IP 和 DNS 自动管理。它像一个「Apple 版本的 VPN」——封装底层复杂性,专注于极致的用户体验。
ZeroTier 的设计哲学是「网络即代码」。它给你一个虚拟的第 2 层交换机,你可以自定义拓扑、路由、流控规则。它像一个「网络工程师的瑞士军刀」——功能的广度超过易用性的深度。
一句话选择指南
| 你的需求 | 选哪个 |
|---|---|
| 想 2 分钟内完成配置 | Tailscale |
| 主要用途是远程 NAS、远程办公 | Tailscale |
| 需要 IoT 设备发现(mDNS/Bonjour) | ZeroTier |
| 需要 Wake-on-LAN 远程开机 | ZeroTier |
| 需要局域网联机游戏 | ZeroTier |
| 需要完全自托管、数据不出域 | ZeroTier(自建控制器) |
| 非技术用户多的团队 | Tailscale |
| 有大量无头设备/服务器 | ZeroTier(按设备计费更便宜) |
🔧 Tailscale 从零到精通
第一步:注册与安装
注册:访问 tailscale.com,点击「Get Started」,选择你的身份提供商登录(Google/Microsoft/GitHub)。
安装客户端:
| 平台 | 安装方式 |
|---|---|
| Windows | tailscale.com/download 下载 .exe 安装包,一路下一步 |
| macOS | App Store 搜索「Tailscale」或官网下载 .pkg |
| Linux | curl -fsSL https://tailscale.com/install.sh | sh |
| iOS | App Store 搜索「Tailscale」 |
| Android | Google Play 或 F-Droid 搜索「Tailscale」 |
| Synology NAS | 套件中心搜索「Tailscale」 |
| OpenWrt | opkg install tailscale 或从软件包安装 |
安装后打开客户端,用浏览器完成 OAuth 登录。此时你的设备已经出现在 Tailnet 中,拥有了一个 100.x.x.x 格式的内网 IP。
第二步:MagicDNS —— 告别 IP 地址
默认情况下,设备之间用 100.x.x.x 访问。一旦设备多了,记 IP 是噩梦。
开启 MagicDNS:
- 登录 Tailscale Admin Console(login.tailscale.com/admin)
- 点击顶部「DNS」选项卡
- 开启「MagicDNS」
- 在「Nameservers」中添加上游 DNS(推荐 Cloudflare
1.1.1.1或 Google8.8.8.8),勾选「Override local DNS」
开启后,你不再需要记住 IP:
# 原来(记 IP)
ssh user@100.120.33.78
ping 100.93.210.45
# 现在(使用设备名)
ssh user@my-macbook
ping my-nas设备名可以在 Admin Console 中自定义。右侧点击设备名旁的编辑图标即可修改。
第三步:Access Control (ACL) —— 精细化权限管理
Tailscale 默认的 ACL 策略是「全信任」——同 Tailnet 内的所有设备互相可以访问。如果需要精细化控制,编辑 ACL 规则:
Tailscale Admin Console → Access Controls:
{
"groups": {
"group:admins": ["alice@example.com", "bob@example.com"],
"group:devs": ["carol@example.com"]
},
"acls": [
// 管理员组可以访问所有设备
{
"action": "accept",
"src": ["group:admins"],
"dst": ["*:*"]
},
// 开发组只能访问开发服务器的 SSH 和 HTTPS
{
"action": "accept",
"src": ["group:devs"],
"dst": ["tag:dev-server:22,443"]
},
// 访客只能访问 NAS 的 SMB 共享
{
"action": "accept",
"src": ["tag:guest"],
"dst": ["tag:nas:445,139"]
}
],
"tagOwners": {
"tag:dev-server": ["group:admins"],
"tag:nas": ["group:admins"],
"tag:guest": ["group:admins"]
}
}第四步:Subnet Router —— 让没装 Tailscale 的设备也能访问
场景:你家里有一台群晖 NAS 安装了 Tailscale,但家里的智能电视、打印机、摄像头没有安装。通过 Subnet Router,你在外地的电脑可以直接用 192.168.1.x 访问这些设备。
配置步骤:
① 在家里的设备上宣告子网路由:
# macOS / Linux
sudo tailscale up --advertise-routes=192.168.1.0/24
# Windows(管理员 CMD)
tailscale up --advertise-routes=192.168.1.0/24② 在 Admin Console 中批准:
- 找到该设备 → 点击右侧
...→Edit route settings - 勾选
192.168.1.0/24 - 保存
③ 外部设备验证:
# 现在可以直接访问家里的路由器管理页面
ping 192.168.1.1
# 或者在浏览器中打开
open http://192.168.1.1第五步:Exit Node —— 把家里的网络当成自己的 VPN
场景:在咖啡馆用公共 Wi-Fi 时,让所有流量经过家里的 Mac,用家里的 IP 上网。
① 在家里的设备上开启出口节点:
sudo tailscale up --advertise-exit-node② Admin Console 批准:设备设置 → 勾选「Use as exit node」
③ 客户端启用:
- macOS:菜单栏 Tailscale 图标 →
Exit Nodes→ 选择你的家庭设备 - iOS/Android:App 内找到「Exit Node」,选择设备
- Windows:任务栏 Tailscale 图标 →
Exit Nodes→ 选择设备
启用后你可以访问 whatismyip.com 验证 IP 是否已经变为家里的宽带 IP。
第六步:Taildrop —— 跨平台文件隔空投送
Taildrop 是 Tailscale 内置的文件传输功能,类似 AirDrop 但跨平台。
- macOS:菜单栏 Tailscale → Send File… → 选择文件和目标设备
- Windows:文件管理器右键 → Send with Tailscale
- iOS/Android:相册中点击「分享」→ Tailscale
优势:如果两台设备在同一局域网下,文件传输走本地网络,速度跑满网卡。
第七步:Tailscale SSH —— 零配置免密登录
# 在目标设备上
sudo tailscale up --ssh
# 从任何已连接 Tailscale 的设备直接 SSH(无需配置密钥)
ssh user@my-nas安全机制:SSH 连接的认证绑定到 Tailscale 的身份链。即使有人知道了你的系统密码,也无法从 Tailnet 之外 SSH 进来。
第八步:Tailscale Funnel —— 零公网 IP 暴露本地端口到全网
如果你在本地跑了一个 Web 服务(比如一个临时文件分享、开发中的前端页面),想让没有安装 Tailscale 的人也能访问:
# 将本地的 8080 端口暴露为公网 HTTPS 地址
tailscale funnel 8080Tailscale 会提供一个 https://xxx.tailnet-xxx.ts.net 格式的公网域名,自动配置 Let’s Encrypt SSL 证书。
⚠️ 安全提醒:Funnel 把本地服务暴露给了整个互联网,请确保服务本身有适当的访问控制。
🔧 ZeroTier 从零到精通
第一步:注册与创建网络
- 访问 my.zerotier.com,注册账号并登录
- 点击「Create A Network」
- 系统会分配一个 16 位网络 ID(例如
8056c2e21c000001) - 点击网络名称进入设置页面
第二步:安装客户端
| 平台 | 安装方式 |
|---|---|
| Windows | zerotier.com/download → .msi 安装包 |
| macOS | zerotier.com/download → .pkg 安装包 |
| Linux | curl -s https://install.zerotier.com | sudo bash |
| iOS | App Store 搜索「ZeroTier One」 |
| Android | Google Play 搜索「ZeroTier One」 |
| OpenWrt | opkg install zerotier |
| Docker | docker run -d --cap-add NET_ADMIN zerotier/zerotier |
第三步:加入网络
每台需要加入网络的设备:
# 使用你在 my.zerotier.com 创建的网络 ID
sudo zerotier-cli join 8056c2e21c000001第四步:授权设备
回到 my.zerotier.com 网络设置页面:
- 在「Members」区域,你会看到刚加入的设备(状态为 NOT AUTHORIZED)
- 勾选每个设备左侧的复选框 → 点击「Authorize」
- 设备会自动分配到
10.244.x.x网段的 IP
第五步:配置 Managed Routes(管理路由)
在网络设置页面的「Managed Routes」中,添加路由规则:
# 示例:让 ZeroTier 设备访问 192.168.1.0/24 内网
192.168.1.0/24 via 10.244.1.5其中 10.244.1.5 是连接了该内网的 ZeroTier 设备的 IP。
第六步:Flow Rules(流控规则)
ZeroTier 的 Flow Rules 提供了极其精细的流量控制——类似一个分布式的 iptables:
# 允许所有流量
accept;
# 仅允许特定端口
accept
ipprotocol tcp
dport 22 or dport 443 or dport 445;
# 阻止特定 IP
drop
ipdest 10.244.1.99;
# 限制带宽(QoS)
tag bandwidth 10Mbps;Flow Rules 以类似 DSL 的语法编写,在网络编辑页面的「Flow Rules」部分配置。
🏠 实战场景
场景一:随时随地访问家里 NAS
需求:在公司或出差时访问家中的群晖/威联通 NAS 文件。
推荐方案:Tailscale(最快、最简单)
步骤:
- 在 NAS 上安装 Tailscale 客户端(群晖套件中心直接搜索)
- 在你所有的设备上安装 Tailscale
- 使用 NAS 的主机名或 Tailscale IP 访问:
- SMB 文件共享:
smb://my-nas或\\my-nas - Web 管理界面:
http://my-nas:5000(群晖) - SSH:
ssh admin@my-nas
- SMB 文件共享:
为什么推荐 Tailscale? NAS 厂商官方支持度更好。群晖 Synology 和威联通 QNAP 都在官方套件中心提供了 Tailscale,安装体验丝滑。
场景二:家庭网络全设备互联
需求:家里有 2 台电脑、1 台 NAS、1 台打印机、1 台 Apple TV。希望在任何地方都能像在家里一样访问所有设备。
推荐方案:Tailscale Subnet Router
步骤:
- 在 NAS 或一台 24 小时开机的电脑上安装 Tailscale
- 将其配置为 Subnet Router:BASH
sudo tailscale up --advertise-routes=192.168.1.0/24sudo tailscale up --advertise-routes=192.168.1.0/24 - Admin Console 批准路由
- 外部设备现在可以用
192.168.1.x访问所有内网设备
场景三:跨境办公 / 远程团队协作
需求:团队成员分布在中国、美国、日本,需要共享内网开发和测试环境。
推荐方案:Tailscale 企业版(含 SSO + ACL + 审计)
步骤:
- 所有成员用公司邮箱(Microsoft 365 / Google Workspace)登录 Tailscale
- 配置 ACL,仅允许开发组访问开发服务器
- 在服务器上开启 Tailscale SSH,审计所有 SSH 会话
- 配置 Subnet Router,让远程成员访问公司内网的 Jenkins、GitLab 等服务
场景四:局域网联机游戏
需求:和不在同一个城市的朋友玩 Minecraft 或《文明 6》的局域网模式。
推荐方案:ZeroTier
步骤:
- 每个人安装 ZeroTier 客户端
- 创建者在 my.zerotier.com 创建一个网络
- 所有人
zerotier-cli join <network-id> - 创建者授权所有设备
- 在游戏中输入 ZeroTier 分配的
10.244.x.xIP 作为联机地址
为什么推荐 ZeroTier? 很多游戏使用广播协议来发现局域网中的主机,ZeroTier 的第 2 层支持让这些协议的广播包可以跨互联网传输。Tailscale 的第 3 层路由无法做到这一点。
🐛 性能调优与故障排查
1. 判断是否直连还是中继
Tailscale:
# 查看连接状态
tailscale status
# 测试与目标设备的延迟
tailscale ping my-nas输出中会显示连接类型:
- direct:P2P 直连(最佳,延迟最低)
- relay (via derp-xxx):通过 DERP 中继转发(延迟较高)
ZeroTier:
# 查看对等节点连接状态
sudo zerotier-cli listpeers | grep 10.2442. 如何提高直连成功率
Tailscale:
- 开启 UPnP:在路由器管理后台启用 UPnP,允许 Tailscale 自动映射端口
- 放行 UDP 41641 端口:在设备防火墙和路由器防火墙上,开放 UDP 41641 端口的传入/传出
- 关闭对称型 NAT:在企业网络中,如果使用了对称型 NAT,P2P 直连几乎不可能。此时 DERP 中继是唯一的连接方式
- 自建 DERP 中继节点:如果官方 DERP 延迟高,可以自建 DERP 来降低延迟
# 自建 DERP(需要一台有公网 IP 的 Linux 服务器)
# 安装 derper
go install tailscale.com/cmd/derper@latest
# 运行(需要 SSL 证书)
derper --hostname=derp.yourdomain.comZeroTier:
- 在路由器上开启 UPnP 或 NAT-PMP
- 放行 UDP 9993 端口
- 如果条件允许,将 ZeroTier 设备设为 DMZ 主机(仅限测试)
3. Tailscale 的 macOS 休眠问题
macOS 进入深度休眠后,Tailscale 会断开连接。解决方法:
- 系统设置 → 锁定屏幕 → 勾选「使用电源适配器时防止自动休眠」
- 系统设置 → 电池 → 选项 → 启用「唤醒以供网络访问」
- 或在终端使用临时防止休眠:BASH
caffeinate -dicaffeinate -di
4. ZeroTier 常见问题
问题:设备无法加入网络
# 检查 ZeroTier 服务是否运行
sudo systemctl status zerotier-one
# Linux 上手动启动
sudo systemctl start zerotier-one
sudo systemctl enable zerotier-one问题:设备已加入但无法通信
- 确认在 my.zerotier.com 中已授权该设备
- 检查 Managed Routes 配置是否正确
- 检查防火墙是否放行 UDP 9993
- 使用
zerotier-cli listnetworks确认设备状态
5. Tailscale 和代理/科学上网的共存
Tailscale 和 Surge、Clash 等代理客户端可以共存,但需要注意路由优先级:
# 查看当前路由表
netstat -rn | grep tailscale
# 如果 Tailscale 路由和代理路由冲突,在代理客户端中排除 Tailscale 网段
# Surge / Clash 配置中添加:
# - 100.64.0.0/10 → DIRECT(Tailscale 使用的 CGNAT 地址段)🔄 与 WireGuard / 传统 VPN 的互补策略
Tailscale 基于 WireGuard,但它不替代传统 VPN 的所有场景:
| 场景 | 推荐方案 | 理由 |
|---|---|---|
| 设备互联 | Tailscale / ZeroTier | 自动组网,零配置 |
| 所有流量走代理看流媒体 | 传统 VPN / 机场 | 出口 IP 可选的区域更多 |
| 自建加密隧道回国 | WireGuard 直连 | 完全可控,无 SaaS 依赖 |
| NAS 远程访问 | Tailscale | 开箱即用,无需公网 IP |
| IoT 设备组网 | ZeroTier | Layer 2 支持,广播协议 |
| 企业零信任网络 | Tailscale | SSO + ACL + 审计一体化 |
最佳组合策略:
┌──────────────────────────────────┐
│ 您的网络架构 │
│ │
│ ┌──────────┐ ┌──────────────┐ │
│ │ Tailscale │ │ 传统 VPN/代理 │ │
│ │ (设备互联) │ │ (流媒体/翻墙) │ │
│ └─────┬─────┘ └──────┬───────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌─────────────────────────────┐ │
│ │ 物理网络层 │ │
│ └─────────────────────────────┘ │
└──────────────────────────────────┘Tailscale 处理设备之间的互联需求,传统代理处理流媒体和区域解锁需求,两者并行不悖。
💰 免费额度与付费升级
Tailscale 免费额度
| 项目 | 限制 |
|---|---|
| 用户数 | 最多 6 人 |
| 设备数 | 每个用户无限 |
| MagicDNS | ✅ |
| Subnet Router | ✅ |
| Exit Node | ✅ |
| Tailscale SSH | ✅ |
| Taildrop | ✅ |
| ACL | ✅ |
| 审计日志 | ❌ |
升级到 Premium($18/用户/月)可获得:审计日志、SCIM 用户同步、优先支持、流量日志、更多的 Admin Console 功能。
ZeroTier 免费额度
| 项目 | 限制 |
|---|---|
| 设备数/网络 | 10 台 |
| 网络数 | 无限制 |
| 管理员 | 1 人 |
| 加密 | AES-256 |
| Flow Rules | ✅ |
| Managed Routes | ✅ |
| 自建控制器 | ✅(完全免费) |
升级到 Essential($18/月 + $2/额外设备)可获得:100 设备起步、商业用途支持、优先路由。
省钱技巧:如果你有 50 台设备以下,并且愿意折腾,ZeroTier 支持自建控制器(完全开源),可以免费无限制使用,只是需要自己维护。
💡 最终推荐
| 你的角色 | 推荐 | 理由 |
|---|---|---|
| 普通用户(远程 NAS + 办公) | Tailscale | 开箱即用,零学习曲线 |
| 家庭用户(设备互联) | Tailscale | 免费额度够用,iOS/Android 体验好 |
| 开发者/运维 | Tailscale | SSH + Funnel + MagicDNS 生产力拉满 |
| NAS 玩家 | Tailscale | 群晖/威联通官方支持 |
| 游戏玩家(联机) | ZeroTier | Layer 2 广播支持 |
| IoT / 嵌入式 | ZeroTier | 支持更多架构和嵌入式系统 |
| 完全自托管需求 | ZeroTier | 控制器开源,数据不出域 |
| 大量无头设备 | ZeroTier | 按设备计费更经济 |
综合推荐:90% 的用户应该选 Tailscale。它比 ZeroTier 更好上手,功能更现代化(MagicDNS、Taildrop、SSH、Funnel),免费额度对个人和小团队完全够用。只有当你的场景明确需要 Layer 2 支持(联机游戏、IoT 设备发现、Wake-on-LAN)或有强烈的自托管需求时,ZeroTier 才是更合适的选择。
