阅读此文章之前,你需要:

  1. 了解 zerotier 的概念
  2. 使用过 zerotier 的客户端

前言

用了一段时间的 zerotier,网络一直不稳定,虽然也搭建了 moon 服务器,但是因为官方 planet 不稳定的原因,很多时候并不会使用 moon,而是在 planet 和 moon 中来切来切去,这就很烦。

所以就想能不能使用自己的 planet 服务,这样的话所有 LEAF 节点都直接连接私有 planet,这样我们就拥有了对网络的绝对控制。虽然官方不支持私有 planet,但有大佬实现了,我们就用 ztncui 来创建。

使用私有 planet 有如下好处:

  • 节点同步信息、添加路由会很快
  • 支持多管理员,没有25个设备的限制
  • 提升手机客户端连接的稳定性

1. 服务端

安装 你需要有一台云服务器,并开放 3000 和 9993 端口,这里使用 docker 安装

注意修改 yaml 文件中的环境变量 MYADDR,启动前需要创建好存储卷对应的文件夹

docker-compose.yaml:

version: '3.3'
services:
  ztncui:
    image: keynetworks/ztncui:1.2.16
    container_name: ztncui
    volumes:
      - ./data/zerotier-one:/var/lib/zerotier-one/
      - ./data/ztncui:/opt/key-networks/ztncui/etc/
    ports:
      - "3000:3000"
      - "3180:3180"
      - "9993:9993"
      - "9993:9993/udp"
    environment:
      - "MYADDR=x.x.x.x"
      - "HTTP_PORT=3000"
      - "HTTP_ALL_INTERFACES=yes"
      - "ZTNCUI_PASSWD=admin123"
    restart: always

networks:
  default:
    name: ztncui

使用 docker compose up -d docker-compose up -d 部署

部署好之后访问 http://ip:3000,如果初始密码过于简单要记得修改。

创建网络

初始化网络

设置网段和地址池

想了解其他参数的含义,可以参考 ztncui-aio

想修改 9993 端口,可以参考 ztncui

2. 配置私有 planet 文件

第一步安装好之后,还是使用官方的配置文件,所以它还是会连接官方的planet,服务端还只是 moon。

此时我们需要生成自己的 planet 配置文件。

连接服务器,执行以下命令

git clone https://github.com/Jonnyan404/zerotier-planet
OR
git clone https://gitee.com/Jonnyan404/zerotier-planet

cd zerotier-planet

# 以下步骤为创建planet和moon
docker cp mkmoonworld-x86_64 ztncui:/tmp
docker cp patch.sh ztncui:/tmp
docker exec -it ztncui bash /tmp/patch.sh
docker restart ztncui

生成好 planet 文件后浏览器访问 http://ip:3180 进入 planet 和 moon 的下载页面将 planet 下载下来(也可以在 ./data/ztncui/myfs 中获取)

3. 客户端

客户端的安装这里就不写了,下面的步骤默认已经安装好了客户端。

替换 planet 文件 将服务端下载下来的 planet 文件替换掉客户端的 planet 文件,文件地址为:

  • windows:C:\ProgramData\ZeroTier\One
  • linux(docker):/home/docker/zt-client/zerotier-one

重启服务 替换文件后重启 zerotier

  • windows:重启服务 ZeroTierOneService
  • linux(docker):重启客户端容器

加入网络

  • windows:点击右下角图标,join new network,输入刚刚创建的虚拟网络 id
  • linux(docker):修改 docker-compose.yaml 文件后重启容器

授权 在 ztncui 的控制界面中进行授权

查看状态 显示只有一个 planet 就对了,更换私有 planet 之后直连的成功率明细提高了

参考

github ztncui github ztncui-aio zerotier-planet Zerotier 搭建私有根服务器及创建虚拟局域网完整教程