ZeroTier 网络较差,需要自行搭建Moon服务器作为中转,提高访问速度和稳定性。

创建Docker容器

  1. docker run --name zerotier-moon -d -p 9993:9993 -p 9993:9993/udp jonnyan404/zerotier-moon -4 1.2.3.4

1.2.3.4为当前服务器公网IP,如果有IPv6,也可以在上面命令后加上-6 xx:xx:xx
当容器创建成功,会在日志中显示moon id

  1. docker logs zerotier-moon

生成moon文件

  1. 进入moon容器

    1. docker exec -it zerotier-moon /bin/sh
  2. 生成moon文件

    1. cd /var/lib/zerotier-one/
    2. zerotier-idtool initmoon identity.public > moon.json
  3. 修改moon文件

    1. vim moon.json

    stableEndPoints中填入服务器公网IP地址和端口,其余不变

    1. "stableEndpoints": ["1.2.3.4/9993"]
  4. 生成签名文件

    1. zerotier-idtool genmoon moon.json

    执行后会生成一个000000xxxx.moon的文件

  5. 将Moon节点加入网络

创建一个moons.d目录,将签名文件放入此目录

  1. cd /var/lib/zerotier-one/
  2. mkdir moons.d
  3. mv 000000xxxxxx.moon moons.d/

客户端配置

  1. 下载签名文件,从docker容器复制到宿主机

    1. docker cp <container-id>:/var/lib/zerotier-one/moons.d/000000xxxxxx.moon ./
  2. Windows 客户端在C:\ProgramData\ZeroTier\One下创建空文件夹moons.d,将签名文件放到此文件夹中

  3. 加入moon节点
  • 在moon服务器,执行下面命令可查看到moon id

    1. docker logs zerotier-moon
  • 在Windows客户端,以管理员身份打开powershell,执行下面命令

    1. zerotier-cli orbit <moon_id> <moon_id>
  • 查看是否连接上Moon服务器

    1. zerotier-cli listpeers

    若出现moon字样,则代表连接成功。连接服务器可能存在延迟,若没有可等待几秒钟再次执行。

  • 移除moon

    1. zerotier-cli deoribit <moon_id>

    参考

  1. 使用docker搭建Zerotier Moon服务器
  2. ZeroTier 的 Moon 节点搭建与配置