ZeroTier 是一个面向地球的可编程以太网交换机,让所有联网设备、VM、容器、应用如同在同一个物理数据中心或云区域里通信。它把加密的 P2P 网络(VL1)与以太网仿真层(VL2,类似 VXLAN)结合,端到端加密,大部分流量点对点。
一、项目官方信息
| 项目 | 信息 |
|---|---|
| GitHub 仓库 | https://github.com/zerotier/ZeroTierOne |
| 官方网站 | https://www.zerotier.com |
| 官方文档 | https://docs.zerotier.com |
| 开源协议 | BSL-1.1(内部/非商业免费,闭源商业需授权) |
| 主要语言 | C++(约 74.0%) |
| Star 数 | 约 17.0k |
二、官方图片
ZeroTier 仓库预览:

三、环境要求
- Linux/macOS/Windows。
- iOS/Android 移动端。
- 开放 UDP 9993 入站(P2P 直连效果更好)。
- 可访问 my.zerotier.com(默认云端控制器)。
四、完整部署步骤
1. 安装
macOS:
brew install --cask zerotier
Debian/Ubuntu:
curl -s https://install.zerotier.com | sudo bash
Windows 到 https://www.zerotier.com/download/ 下载安装包。
2. 启动服务
Linux 安装脚本会自动启动并设置开机自启。手动:
sudo zerotier-one -d
3. 加入网络
sudo zerotier-cli join <Network ID>
Network ID 是 16 位网络号,例如 8056c2e21c000001。
4. 授权
登录 https://my.zerotier.com ,在网络 Members 里勾选新加入的节点 Authorized。
5. 查看状态
sudo zerotier-cli status
sudo zerotier-cli listnetworks
会得到该节点在 ZeroTier 网络里的 IP。
6. 验证
ping <另一台设备的 ZeroTier IP>
ssh root@<另一台设备的 ZeroTier IP>
五、使用方法
概念
- ZeroTier 地址:10 位,标识节点/设备;
- Network ID:16 位,标识虚拟以太网;
- Controller:SDN 控制器,分配 IP、下发规则;
- Moon:自建中继节点,改善 P2P 失败时的中转。
常用命令
zerotier-cli join <网络ID> # 加入网络
zerotier-cli leave <网络ID> # 离开网络
zerotier-cli listnetworks # 列出加入的网络
zerotier-cli peers # 列出对等节点
zerotier-cli info # 本机地址与状态
自建 Controller
参考 controller/ 目录,可完全脱离 my.zerotier.com 自行管理网络。
Moon 节点
在 P2P 打洞失败时,自建 Moon 作为中继:
# 在有公网 IP 的机器上
zerotier-idtool initmoon identity.public > moon.json
zerotier-idtool genmoon moon.json
mkdir -p moons.d
cp *.moon moons.d/
sudo zerotier-one -d
其他节点把该 Moon 的 ID 加入 moons.d/。
配置文件
- Linux:
/var/lib/zerotier-one - macOS:
/Library/Application Support/ZeroTier/One - Windows:
C:\ProgramData\ZeroTier\One
六、常见问题 FAQ
1. 加入网络后 ping 不通? 到 my.zerotier.com 把节点 Authorized;检查 UDP 9993 是否放行。
2. P2P 连不上很慢? 对称 NAT 打洞失败,流量走官方中继。自建 Moon 改善。
3. 如何完全脱离云端控制器?
自建 Controller,参考 controller/ 目录。
4. 商业使用要付费吗? 内部/非商业免费;闭源商业 App 或 SaaS 需 BSL 商业授权。
5. OpenBSD 限制? 只有 4 个 tap 设备,最多 4 个网络成员。
6. 防火墙拦了 UDP? 会回退到 TCP 443 隧道,能通但很慢。