阅读此文章之前,你需要:
- 了解 zerotier 的概念
- 使用过 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 搭建私有根服务器及创建虚拟局域网完整教程
评论区