ztncui搭建的实际上是ZeroTier Network Controller UI,并没有取代官方的Planet。
这次的专栏教程,我会从搭建控制器、搭建私有Planet一步步讲解。控制器+自建Planet才是真正完全私有化的ZeroTier网络。
一台安装Linux系统的主机(教程使用Ubuntu Server 24.04)
OpenSSH、WinSCP、Xshell或别的任意一款远程工具
如果需要搭建自建Planet或Moon需要主机带有公网IP
我这里使用Windows自带的OpenSSH登录进服务器中
输入如下命令,下载ZeroTier官方客户端
curl -s https://install.zerotier.com | sudo bash

curl -O https://s3-us-west-1.amazonaws.com/key-networks/deb/ztncui/1/x86_64/ztncui_0.8.14_amd64.deb

sudo apt install ./ztncui_0.8.14_amd64.deb

sudo sh -c "echo ZT_TOKEN=`sudo cat /var/lib/zerotier-one/authtoken.secret` > /opt/key-networks/ztncui/.env"
sudo sh -c "echo HTTPS_HOST=192.168.1.7 >> /opt/key-networks/ztncui/.env"
sudo sh -c "echo HTTPS_PORT=3443 >> /opt/key-networks/ztncui/.env"
sudo sh -c "echo NODE_ENV=production >> /opt/key-networks/ztncui/.env"
将ZeroTier的授权令牌写进ztncui配置文件,不填写会出现HTTP 403问题。
指定HTTPS服务监听的IP地址,我这里配置的局域网内可访问。
指定HTTPS服务监听的端口,建议高于1024,不超过65535即可。
将Node.js的模式切换为生产环境,如不切换会增加页面加载时间。
sudo chmod 400 /opt/key-networks/ztncui/.env
sudo chown ztncui.ztncui /opt/key-networks/ztncui/.env
sudo systemctl restart ztncui
授予.env文件只有文件所有者可以读取的权限。
将文件权限转移到ztncui用户头上。
重启ztncui服务

https://192.168.1.7:3443(举例)
首次登录账号:admin,密码:password
登陆后强制要求修改密码。

输入网络名称,单击Create Network

配置IP地址段,这里使用CIDR表示法。
如果不知道怎么配置,单击Generate Network address随机生成一套吧!

iOS设备(手机、平板)不支持自建的Planet。
安卓设备使用ZeroTier Fix。
Planet需要服务器拥有公网IP。
我没有Mac设备,相关问题请善用搜索引擎。
如果Planet和ztncui处于一台设备,并且已加入相同网络,可跳过这步。
curl -s https://install.zerotier.com | sudo bash
sudo zerotier-cli join 网络ID

sudo more /var/lib/zerotier-one/identity.public
输出的一长串字符串我们需要保存下来,待会要用到。

cd ZeroTierOne/attic/world
sudo vim mkworld.cpp


source ./build.sh
./mkworld
mv ./world.bin ./planet

cp -r ./planet /var/lib/zerotier-one

sudo zerotier-cli listpeers
cd C:\ProgramData\ZeroTier\One
zerotier-cli listpeers
Controller和Planet搭建完毕后,入网的设备都已经成为脱离官方服务的新“星系”。
摸索的过程离不开这些文档、作者、好朋友的帮助!
https://github.com/key-networks/ztncui
https://github.com/zerotier/ZeroTierOne
https://docs.zerotier.com/