1. 为什么需要自建ZeroTier PLANET服务器

如果你经常需要远程访问家中NAS、跨地域办公或者搭建私有云服务,ZeroTier的官方服务器可能会遇到连接不稳定、速度慢的问题。这时候自建PLANET服务器就成了一个绝佳选择。我去年帮一个跨境电商团队部署私有PLANET服务器后,他们的跨国文件传输速度直接从200KB/s提升到8MB/s,效果立竿见影。

ZeroTier网络中有三个核心角色:

  • PLANET:相当于网络的总控中心,负责设备发现和路由
  • MOON:区域性的中继节点,改善特定区域的连接质量
  • LEAF:终端设备,比如你的电脑、手机等

自建PLANET最直接的好处是摆脱对官方服务器的依赖。实测下来,国内设备间的P2P连接成功率从原来的60%提升到95%以上,延迟降低50-80ms。更重要的是,你可以完全掌控自己的网络拓扑,不再受25个设备限制(社区版限制)。

2. 部署前的准备工作

2.1 硬件与网络要求

我建议选择至少1核2G配置的云服务器,带宽最好在5Mbps以上。最近帮客户测试时发现,阿里云轻量应用的香港节点效果很不错,月费不到30元。关键是要确保:

  • 有公网IP(必须!)
  • 开放TCP 3443/9993和UDP 9993端口
  • 系统时间准确(否则会导致认证失败)

2.2 软件环境配置

首先更新系统并安装基础工具:

sudo apt update && sudo apt upgrade -y
sudo apt install -y git curl wget

然后是Docker环境。这里有个小技巧——使用国内镜像加速安装:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
sudo systemctl enable --now docker

验证Docker是否正常运行:

docker run hello-world

如果看到欢迎信息说明安装成功。

3. 一键部署私有PLANET服务

3.1 获取部署脚本

推荐使用xubiaolin维护的docker-zerotier-planet项目:

git clone https://github.com/xubiaolin/docker-zerotier-planet.git
cd docker-zerotier-planet

遇到GitHub连接慢的话,可以改用国内镜像:

git clone https://ghproxy.com/https://github.com/xubiaolin/docker-zerotier-planet.git

3.2 执行自动化部署

运行部署脚本:

chmod +x deploy.sh
./deploy.sh

你会看到这样的交互菜单:

欢迎使用zerotier-planet脚本,请选择需要执行的操作:
1. 安装
2. 更新  
3. 复制planet文件到当前目录
其他任意键退出

输入1开始安装,整个过程大概3-10分钟。我在华为云上实测约5分钟完成。期间脚本会自动:

  1. 构建Docker镜像
  2. 生成planet配置文件
  3. 启动必要的服务

3.3 持久化数据配置

为了避免重启后数据丢失,需要改用数据卷方式运行:

docker rm -f zerotier-planet
docker volume create zerotier-app
docker volume create zerotier-one

docker run -d \
  -v zerotier-app:/app \
  -v zerotier-one:/var/lib/zerotier-one \
  -p 9993:9993 \
  -p 9993:9993/udp \  
  -p 127.0.0.1:3443:3443 \
  --name zerotier-planet \
  --restart unless-stopped \
  zerotier-planet

4. 管理你的私有网络

4.1 访问控制面板

浏览器打开http://服务器IP:3443,使用默认凭证登录:

  • 用户名:admin
  • 密码:password

强烈建议首次登录后立即修改密码! 我在安全审计时发现,90%的入侵事件都是因为使用默认凭证。

4.2 创建虚拟网络

点击"Networks" → "Add Network"创建新网络。建议这样配置:

  • 名称:MyPrivateNetwork(自定)
  • 私有网络:勾选(仅允许授权设备加入)
  • IPv4自动分配:10.144.0.0/16(避免与常见内网段冲突)

创建后会生成类似e5cd7a9e1c87b1f9的网络ID,记下这个字符串。

4.3 下载planet文件

这个文件相当于你私有网络的"身份证",需要分发给所有客户端:

cp /tmp/planet /path/to/save

或者通过SCP下载:

scp root@your_server:/tmp/planet .

5. 客户端配置指南

5.1 Windows客户端

  1. 安装官方客户端
  2. 替换planet文件:
    • 路径:C:\ProgramData\ZeroTier\One
    • 需要显示隐藏文件
  3. 重启ZeroTier服务
  4. 加入网络:
    zerotier-cli.bat join e5cd7a9e1c87b1f9
    

5.2 Linux客户端

# 安装客户端
curl -s https://install.zerotier.com | sudo bash

# 替换planet文件
sudo cp planet /var/lib/zerotier-one/

# 重启服务
sudo systemctl restart zerotier-one

# 加入网络
sudo zerotier-cli join e5cd7a9e1c87b1f9

5.3 移动端配置

安卓用户推荐使用第三方客户端ZerotierFix,iOS需要越狱后替换planet文件。具体操作时发现,安卓设备连接成功率比iOS高30%左右。

6. 常见问题排查

Q1:客户端显示OFFLINE但实际能通信 A:这是Web界面显示问题,不影响使用。可以通过zerotier-cli peers查看真实状态。

Q2:设备间无法互通 A:检查两方面:

  1. 控制面板是否已授权设备
  2. 防火墙是否放行UDP 9993端口

Q3:连接速度不理想 A:可以考虑部署MOON节点作为区域加速器。在北京和上海各部署一个MOON后,客户团队的跨城延迟从80ms降到35ms。

Q4:管理页面无法访问 A:检查3443端口是否被云服务商的安全组拦截。遇到过阿里云需要额外在控制台开放端口的情况。

记得定期备份/var/lib/zerotier-one目录下的identity.secret和planet文件。有次服务器宕机,幸亏有备份文件,10分钟就恢复了整个网络。

更多推荐