ZeroTier 5分钟上手:无需公网IP的虚拟局域网神器
结论先行:远程访问家里的 NAS、把多台跨云 VPS 拉进同一个私有网、或在无公网 IP 环境下实现异地设备直连,ZeroTier 是上手极快且支持 Layer 2 二层网络模拟的选择。安装客户端 → 加入网络 ID → 在 ZeroTier Central 控制台勾选授权即可秒级互通,全程不依赖公网 IP 与路由器端口映射。免费版支持 10 台设备(老账号保留 25 台),个人与小团队日常组网完全够用。
0、写在前面
你在家里放了一台 NAS 存储核心工程代码和备份数据,去咖啡店或异地办公时需要随时调取。
或者你在美西、新加坡和欧洲分别购买了不同云服务商的 VPS,希望在它们之间搭建一条私有内网同步数据库与 Redis 缓存。
再或者你想和异地伙伴搭建一个安全的点对点开发测试局域网。
传统方案怎么做?
- 申请公网 IPv4 / IPv6:家庭宽带多为私网 NAT,且 80/443 等常用端口被封锁
- 动态域名(DDNS)+ 路由器端口映射:容易被扫描器暴力破解,端口暴露面过大
- FRP / 商业穿透代理:高度依赖公网服务器带宽,流量绕路,遇到高峰期延迟波动剧烈
- 传统 VPN(OpenVPN / IPsec):需要手写服务端配置与路由表,维护成本高
ZeroTier 的核心思路:在互联网之上建立一层加密的二层以太网虚拟交换机。所有设备通过 16 位 Network ID 接入,就像插进了同一个无形的千兆交换机接口。
1、期望目标与落地清单
本指南覆盖以下组网目标:
- [ ] 快速组网:5 分钟完成控制台注册、网络创建与客户端接入
- [ ] 跨平台覆盖:打通 Windows、macOS、Linux、iOS、Android 与 NAS 系统
- [ ] 集中授权管控:在 Web 控制台进行单机审批与固定 IP 绑定
- [ ] 二层网络通信:支持广播、组播与特定以太网协议跨地域直通
- [ ] 自定义中继(Moon):掌握自建国内中继加速节点的进阶配置
2、方案对比与技术定位
常见组网穿透方案对比
| 方案 | 依赖公网 IP | 端口映射要求 | 上手门槛 | 组网协议层级 | 穿透机制 |
|---|---|---|---|---|---|
| ZeroTier | ❌ 零依赖 | ❌ 无需 | ⭐ 极简 | Layer 2(虚拟以太网) | P2P 打洞 + Moon/Root 中继 |
| Tailscale | ❌ 零依赖 | ❌ 无需 | ⭐ 极简 | Layer 3(WireGuard) | ICE 打洞 + 全球 DERP 中继 |
| Netbird | ❌ 零依赖(自建除外) | ❌ 无需 | ⭐ 简单 | Layer 3(WireGuard) | ICE 打洞 + Coturn 中继 |
| FRP 自建 | ✅ 必须有公网机 | ⚠️ 需配置端口 | ⭐⭐⭐ 适中 | Layer 4 / 7 代理 | 必须经由中转机转发 |
核心优势与边界说明
- 二层仿真特性:ZeroTier 在操作系统层创建的是虚拟网卡(TAP/TUN),模拟完整以太网交换机,因此天然支持广播与 mDNS 服务发现。
- P2P 直连优先:设备间建立隧道时优先尝试 UDP 握手,打洞成功后直接走点对点物理带宽,官方服务器不触碰任何用户明文数据。
- 免运维与轻量化:客户端为单二进制可执行文件,守护进程常驻内存仅数十兆。
💡 提示:如果你的业务场景仅需要纯点对点三层隧道路由而无需二层以太网组播,可以参考 ITTinker 开源的
tailscale-quick-mesh脚本,两者可在混合拓扑中互为互补。
3、操作步骤
整个搭建过程分为四步:注册账号 → 创建虚拟网络 → 节点加入网络 → Web 审批授权。
3.1 注册 ZeroTier Central 控制台
- 浏览器访问管理平台:
https://my.zerotier.com - 点击右上角 Sign Up,支持 Google 账号 SSO 或邮箱密码注册。
3.2 创建虚拟网络并记录 Network ID
登录后进入管理中心:
- 导航至 Networks 选项卡。
- 点击 + Create Network。
- 系统会自动生成一个 16 位的十六进制字符串作为 Network ID(例如
8056c2e21c000001)。 - 在基础设置中,网络访问控制默认为 Private(私有网络,必须管理员授权后才能接入)。
3.3 各平台安装客户端
Linux (Debian / Ubuntu / CentOS)
1 | # 官方自动化安装脚本 |
macOS
1 | # 使用 Homebrew 安装 |
Windows
从官方下载页面获取 MSI 安装包(https://www.zerotier.com/download/),双击完成安装后,任务栏会出现带有橘色图标的 ZeroTier One 客户端。
群晖 NAS (DSM 7.x)
群晖 DSM 7 增强了系统安全隔离,推荐通过 Docker 容器化运行 ZeroTier:
1 | docker run -d \ |
3.4 节点加入虚拟网络
在各设备终端执行加入命令,传入刚才记录的 16 位 Network ID:
1 | # 加入网络 |
终端返回:
1 | 200 join OK |
图形客户端用户可直接在 UI 窗口输入 Network ID 并点击 Join。
3.5 控制台授权与分配 IP
加入网络后,设备由于尚未通过准入审核,处于暂挂状态。必须手动勾选放行:
- 登录 ZeroTier Central,进入对应 Network 详情页。
- 滚动至 Members 区域,新设备会以 10 位的 Node ID 显示。
- 勾选前面的 Auth 复选框。
- 在 Short Name 列填入设备别名(例如
MacBook-Pro、Home-NAS)。
勾选几秒钟后,Assigned IP 列会自动分配虚拟局域网 IP(例如 10.147.0.2)。
3.6 连通性测试与对端状态核验
在本地机器查看连接详情:
1 | # 查看网络状态 |
预期输出:
1 | 200 listnetworks 8056c2e21c000001 My_Home_Lab OK PRIVATE zt0 10.147.0.2/24 |
从 MacBook 端 Ping NAS 的虚拟局域网 IP:
1 | ping 10.147.0.1 |
1 | 64 bytes from 10.147.0.1: icmp_seq=1 ttl=64 time=18.4 ms |
查看当前链路是直连还是中继:
1 | sudo zerotier-cli peers |
输出中目标 Node ID 对应的列如果显示 DIRECT,说明两端已经穿透成功;如果显示 RELAY,说明当前正通过 Planet 根服务器转发。
3.7 进阶加速:自建 Moon 自定义中继节点
在国内或跨境复杂网络环境中,如果两端处于 Symmetric NAT(对称型 NAT)导致 P2P 穿透失败,流量会默认走海外 Planet 根服务器,延迟高达 200ms 以上甚至丢包。
利用一台国内或香港的低延迟 VPS 自建 Moon 节点,即可在打洞失败时由自有服务器负责中转。
第一步:在云服务器生成 Moon 配置
在 VPS 执行:
1 | cd /var/lib/zerotier-one |
编辑生成的 moon.json,在 "roots" 字段填入 VPS 的公网 IP 与 UDP 端口(默认 9993):
1 | "roots": [ |
第二步:生成签名并加载
1 | sudo zerotier-idtool genmoon moon.json |
第三步:客户端加入 Moon 节点
在其他设备上执行绑定(其中 10位ID 可在 VPS 上执行 zerotier-cli info 获取):
1 | sudo zerotier-cli orbit <VPS_NODE_ID> <VPS_NODE_ID> |
执行后客户端可在 zerotier-cli peers 列表中看到 VPS 的角色变为 MOON。自此即使打洞失败,中转延迟也能控制在 20ms 以内。
4、总结与场景建议
最佳适用场景
- 家庭内网服务安全互联:不用申请公网 IP、不用配置动态 DDNS、不担心运营商封锁端口。
- 多云 VPC 私网互联:跨越 AWS、阿里云、腾讯云、Hetzner 组建单一私有网段,内网调用数据库免受公网扫描。
- 点对点远程调试:手机、开发笔记本与工控设备之间免端口映射直连。
架构选型建议
- 如果追求零门槛开箱即用与现代 SSO,且不需要二层以太网组播特性:优先选 Tailscale。
- 如果重视完全自托管控制面、代码 100% 开源:优先选 Netbird。
- 如果有二层网络模拟、跨地域广播/组播、自建 Moon 节点加速需求:首选 ZeroTier。
5、常见异常排查手册
Q1:listnetworks 显示 ACCESS_DENIED?
原因:设备已成功连接协调服务器,但管理员尚未在 Central 控制台授权。
解决:登录 my.zerotier.com,在 Networks 详情下的 Members 列表找到该设备,勾选 Auth 复选框。
Q2:两端均已授权并获得 IP,但互相 Ping 不通?
排查步骤:
- 检查本机防火墙:
- Linux:
sudo ufw allow in on zt0 - Windows: 确认 Windows Defender 防火墙未将新网卡识别为公用网络并阻断 ICMP。
- Linux:
- 检查路由冲突:确保 Central 分配的网段与本地物理局域网段(如
192.168.1.0/24)不发生重叠。
Q3:跨境访问延迟过高(250ms+)且偶发丢包?
原因:P2P 打洞失败,流量退化走官方海外根服务器转发。
解决:在离你物理位置最近的 VPS 上部署 Moon 节点,两端均执行 zerotier-cli orbit 绑定,中转延迟即可降至物理网络直达水准。
6、FAQ(独立开发者核心问答)
Q1:ZeroTier 免费版 10 台设备限制是按网络算还是账号算?
是按整个 ZeroTier Central 账号的总授权设备计算的。如果一个账号建了 3 个虚拟网络,所有网络中被授权的设备总和上限为 10 台。
Q2:ZeroTier 会影响电脑的原有网络出口速度吗?
不会。ZeroTier 默认只对目标为虚拟网段(如 10.147.0.0/24)的流量进行路由,你日常上网浏览网页、下载依然走原本的物理宽带出口。
Q3:Moon 节点被墙或掉线会阻断组网吗?
不会。Moon 仅作为辅助寻址与中继跳板。如果 Moon 离线,客户端会自动回退至官方 Planet 节点,确保业务链路始终保持连通。
相关资源与开源仓库
- ZeroTier 官方仓库:https://github.com/zerotier/ZeroTierOne
- ZeroTier 官方文档:https://docs.zerotier.com
- ITTinker 自动化工具箱:
tailscale-quick-mesh- Tailscale 自动化组网与路由配置脚本vps-bench- VPS 跨地域网络延迟与路由测评工具