最后更新于:2026年6月

Tailscale / ZeroTier 异地组网指南
Tailscale / ZeroTier 异地组网完全指南

传统 VPN 的体验往往让人头疼:手动配置 IP、端口转发、NAT 穿透失败、证书过期……对于大多数「只想让两台设备互相访问」的需求来说,这套流程太重了。

**Mesh VPN(网状组网)**的出现彻底改变了这个局面。你不需要公网 IP,不需要手动配置防火墙,不需要折腾复杂的路由规则——安装一个客户端、登录账号,设备就自动出现在了同一个「虚拟局域网」里。

Tailscale 和 ZeroTier 是当前最流行的两款 Mesh VPN 工具。它们的技术路线截然不同,各有拥趸,也各有最适合的场景。本指南将带你从零开始,完整掌握两者的配置、对比和实战应用。


🌐 什么是 Mesh VPN?

传统 VPN vs Mesh VPN

PLAINTEXT
传统 VPN(Hub-and-Spoke):
        [VPN 服务器]
       /    |    \
    [设备A] [设备B] [设备C]
     ↑ 所有流量经过中心服务器,延迟高、带宽受限于服务器

Mesh VPN(Full Mesh):
    [设备A] ←→ [设备B]
       ↖   ↗
       [设备C]
     ↑ 设备之间点对点直连,不经中心节点中转

核心区别

维度传统 VPNMesh 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 深度对比

一表看懂所有差异

维度TailscaleZeroTier
底层协议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)。

安装客户端

平台安装方式
Windowstailscale.com/download 下载 .exe 安装包,一路下一步
macOSApp Store 搜索「Tailscale」或官网下载 .pkg
Linuxcurl -fsSL https://tailscale.com/install.sh | sh
iOSApp Store 搜索「Tailscale」
AndroidGoogle Play 或 F-Droid 搜索「Tailscale」
Synology NAS套件中心搜索「Tailscale」
OpenWrtopkg install tailscale 或从软件包安装

安装后打开客户端,用浏览器完成 OAuth 登录。此时你的设备已经出现在 Tailnet 中,拥有了一个 100.x.x.x 格式的内网 IP。

第二步:MagicDNS —— 告别 IP 地址

默认情况下,设备之间用 100.x.x.x 访问。一旦设备多了,记 IP 是噩梦。

开启 MagicDNS

  1. 登录 Tailscale Admin Console(login.tailscale.com/admin)
  2. 点击顶部「DNS」选项卡
  3. 开启「MagicDNS」
  4. 在「Nameservers」中添加上游 DNS(推荐 Cloudflare 1.1.1.1 或 Google 8.8.8.8),勾选「Override local DNS」

开启后,你不再需要记住 IP:

BASH
# 原来(记 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

JSONC
{
  "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 访问这些设备。

配置步骤

① 在家里的设备上宣告子网路由

BASH
# 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 中批准

  1. 找到该设备 → 点击右侧 ...Edit route settings
  2. 勾选 192.168.1.0/24
  3. 保存

③ 外部设备验证

BASH
# 现在可以直接访问家里的路由器管理页面
ping 192.168.1.1

# 或者在浏览器中打开
open http://192.168.1.1

第五步:Exit Node —— 把家里的网络当成自己的 VPN

场景:在咖啡馆用公共 Wi-Fi 时,让所有流量经过家里的 Mac,用家里的 IP 上网。

① 在家里的设备上开启出口节点

BASH
sudo tailscale up --advertise-exit-node

② Admin Console 批准:设备设置 → 勾选「Use as exit node」

③ 客户端启用

启用后你可以访问 whatismyip.com 验证 IP 是否已经变为家里的宽带 IP。

第六步:Taildrop —— 跨平台文件隔空投送

Taildrop 是 Tailscale 内置的文件传输功能,类似 AirDrop 但跨平台。

优势:如果两台设备在同一局域网下,文件传输走本地网络,速度跑满网卡。

第七步:Tailscale SSH —— 零配置免密登录

BASH
# 在目标设备上
sudo tailscale up --ssh

# 从任何已连接 Tailscale 的设备直接 SSH(无需配置密钥)
ssh user@my-nas

安全机制:SSH 连接的认证绑定到 Tailscale 的身份链。即使有人知道了你的系统密码,也无法从 Tailnet 之外 SSH 进来。

第八步:Tailscale Funnel —— 零公网 IP 暴露本地端口到全网

如果你在本地跑了一个 Web 服务(比如一个临时文件分享、开发中的前端页面),想让没有安装 Tailscale 的人也能访问:

BASH
# 将本地的 8080 端口暴露为公网 HTTPS 地址
tailscale funnel 8080

Tailscale 会提供一个 https://xxx.tailnet-xxx.ts.net 格式的公网域名,自动配置 Let’s Encrypt SSL 证书。

⚠️ 安全提醒:Funnel 把本地服务暴露给了整个互联网,请确保服务本身有适当的访问控制。


🔧 ZeroTier 从零到精通

第一步:注册与创建网络

  1. 访问 my.zerotier.com,注册账号并登录
  2. 点击「Create A Network」
  3. 系统会分配一个 16 位网络 ID(例如 8056c2e21c000001
  4. 点击网络名称进入设置页面

第二步:安装客户端

平台安装方式
Windowszerotier.com/download → .msi 安装包
macOSzerotier.com/download → .pkg 安装包
Linuxcurl -s https://install.zerotier.com | sudo bash
iOSApp Store 搜索「ZeroTier One」
AndroidGoogle Play 搜索「ZeroTier One」
OpenWrtopkg install zerotier
Dockerdocker run -d --cap-add NET_ADMIN zerotier/zerotier

第三步:加入网络

每台需要加入网络的设备:

BASH
# 使用你在 my.zerotier.com 创建的网络 ID
sudo zerotier-cli join 8056c2e21c000001

第四步:授权设备

回到 my.zerotier.com 网络设置页面:

  1. 在「Members」区域,你会看到刚加入的设备(状态为 NOT AUTHORIZED)
  2. 勾选每个设备左侧的复选框 → 点击「Authorize」
  3. 设备会自动分配到 10.244.x.x 网段的 IP

第五步:配置 Managed Routes(管理路由)

在网络设置页面的「Managed Routes」中,添加路由规则:

PLAINTEXT
# 示例:让 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:

PLAINTEXT
# 允许所有流量
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(最快、最简单)

步骤

  1. 在 NAS 上安装 Tailscale 客户端(群晖套件中心直接搜索)
  2. 在你所有的设备上安装 Tailscale
  3. 使用 NAS 的主机名或 Tailscale IP 访问:
    • SMB 文件共享smb://my-nas\\my-nas
    • Web 管理界面http://my-nas:5000(群晖)
    • SSHssh admin@my-nas

为什么推荐 Tailscale? NAS 厂商官方支持度更好。群晖 Synology 和威联通 QNAP 都在官方套件中心提供了 Tailscale,安装体验丝滑。

场景二:家庭网络全设备互联

需求:家里有 2 台电脑、1 台 NAS、1 台打印机、1 台 Apple TV。希望在任何地方都能像在家里一样访问所有设备。

推荐方案:Tailscale Subnet Router

步骤

  1. 在 NAS 或一台 24 小时开机的电脑上安装 Tailscale
  2. 将其配置为 Subnet Router:
    BASH
    sudo tailscale up --advertise-routes=192.168.1.0/24
  3. Admin Console 批准路由
  4. 外部设备现在可以用 192.168.1.x 访问所有内网设备

场景三:跨境办公 / 远程团队协作

需求:团队成员分布在中国、美国、日本,需要共享内网开发和测试环境。

推荐方案:Tailscale 企业版(含 SSO + ACL + 审计)

步骤

  1. 所有成员用公司邮箱(Microsoft 365 / Google Workspace)登录 Tailscale
  2. 配置 ACL,仅允许开发组访问开发服务器
  3. 在服务器上开启 Tailscale SSH,审计所有 SSH 会话
  4. 配置 Subnet Router,让远程成员访问公司内网的 Jenkins、GitLab 等服务

场景四:局域网联机游戏

需求:和不在同一个城市的朋友玩 Minecraft 或《文明 6》的局域网模式。

推荐方案:ZeroTier

步骤

  1. 每个人安装 ZeroTier 客户端
  2. 创建者在 my.zerotier.com 创建一个网络
  3. 所有人 zerotier-cli join <network-id>
  4. 创建者授权所有设备
  5. 在游戏中输入 ZeroTier 分配的 10.244.x.x IP 作为联机地址

为什么推荐 ZeroTier? 很多游戏使用广播协议来发现局域网中的主机,ZeroTier 的第 2 层支持让这些协议的广播包可以跨互联网传输。Tailscale 的第 3 层路由无法做到这一点。


🐛 性能调优与故障排查

1. 判断是否直连还是中继

Tailscale

BASH
# 查看连接状态
tailscale status

# 测试与目标设备的延迟
tailscale ping my-nas

输出中会显示连接类型:

ZeroTier

BASH
# 查看对等节点连接状态
sudo zerotier-cli listpeers | grep 10.244

2. 如何提高直连成功率

Tailscale

  1. 开启 UPnP:在路由器管理后台启用 UPnP,允许 Tailscale 自动映射端口
  2. 放行 UDP 41641 端口:在设备防火墙和路由器防火墙上,开放 UDP 41641 端口的传入/传出
  3. 关闭对称型 NAT:在企业网络中,如果使用了对称型 NAT,P2P 直连几乎不可能。此时 DERP 中继是唯一的连接方式
  4. 自建 DERP 中继节点:如果官方 DERP 延迟高,可以自建 DERP 来降低延迟
BASH
# 自建 DERP(需要一台有公网 IP 的 Linux 服务器)
# 安装 derper
go install tailscale.com/cmd/derper@latest
# 运行(需要 SSL 证书)
derper --hostname=derp.yourdomain.com

ZeroTier

  1. 在路由器上开启 UPnP 或 NAT-PMP
  2. 放行 UDP 9993 端口
  3. 如果条件允许,将 ZeroTier 设备设为 DMZ 主机(仅限测试)

3. Tailscale 的 macOS 休眠问题

macOS 进入深度休眠后,Tailscale 会断开连接。解决方法:

4. ZeroTier 常见问题

问题:设备无法加入网络

BASH
# 检查 ZeroTier 服务是否运行
sudo systemctl status zerotier-one

# Linux 上手动启动
sudo systemctl start zerotier-one
sudo systemctl enable zerotier-one

问题:设备已加入但无法通信

  1. 确认在 my.zerotier.com 中已授权该设备
  2. 检查 Managed Routes 配置是否正确
  3. 检查防火墙是否放行 UDP 9993
  4. 使用 zerotier-cli listnetworks 确认设备状态

5. Tailscale 和代理/科学上网的共存

Tailscale 和 Surge、Clash 等代理客户端可以共存,但需要注意路由优先级:

BASH
# 查看当前路由表
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 设备组网ZeroTierLayer 2 支持,广播协议
企业零信任网络TailscaleSSO + ACL + 审计一体化

最佳组合策略

PLAINTEXT
┌──────────────────────────────────┐
│         您的网络架构               │
│                                   │
│  ┌──────────┐   ┌──────────────┐ │
│  │ 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 体验好
开发者/运维TailscaleSSH + Funnel + MagicDNS 生产力拉满
NAS 玩家Tailscale群晖/威联通官方支持
游戏玩家(联机)ZeroTierLayer 2 广播支持
IoT / 嵌入式ZeroTier支持更多架构和嵌入式系统
完全自托管需求ZeroTier控制器开源,数据不出域
大量无头设备ZeroTier按设备计费更经济

综合推荐:90% 的用户应该选 Tailscale。它比 ZeroTier 更好上手,功能更现代化(MagicDNS、Taildrop、SSH、Funnel),免费额度对个人和小团队完全够用。只有当你的场景明确需要 Layer 2 支持(联机游戏、IoT 设备发现、Wake-on-LAN)或有强烈的自托管需求时,ZeroTier 才是更合适的选择。


版权声明

作者: 易邦

链接: https://blog.e8k.net/posts/tailscale-zerotier-mesh-vpn-guide/

许可证: 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。