ztncui配置
安装配置
docker-compose配置
version: '2.0'
services:
ztncui:
container_name: ztncui
restart: always
environment:
- MYADDR=8.8.8.8 # 换成自己的公网ip
- HTTP_PORT=4000 # web管理ip
- ZERO_PORT=28993 # 自定义zerotier端口
- HTTP_ALL_INTERFACES=yes # 绑定所有端口
- ZTNCUI_PASSWD=password # web管理密码
ports:
- '4000:4000' # web控制台入口
- '28993:9993' # zerotier连接端口, tcp
- '28993:9993/udp' # zerotier连接端口, udp
- '3180:3180' # planet/moon文件在线下载入口,如不对外提供。可防火墙禁用此端口。
volumes:
# 按实际路径挂载卷, 冒号前面是宿主机的, 支持相对路径
- '/opt/ztncui/zerotier-one:/var/lib/zerotier-one'
- '/opt/ztncui/etc:/opt/key-networks/ztncui/etc'
image: keynetworks/ztncui
moon和planet配置
# 下载mkmoonworld
wget https://github.com/kaaass/ZeroTierOne/releases/download/mkmoonworld-1.0/mkmoonworld-x86_64
# 以下步骤为创建planet和moon
docker-compose up -d
docker cp mkmoonworld-x86_64 ztncui:/tmp
docker cp patch.sh ztncui:/tmp
docker exec -it ztncui bash /tmp/patch.sh
docker restart ztncui
path配置脚本
#!/bin/bash
set -x
chmod 777 /tmp/mkmoonworld-x86_64
# 创建moon配置文件
zerotier-idtool initmoon /var/lib/zerotier-one/identity.public > moon.json
chmod 777 moon.json
# 根据容器启动时的环境变量,配置定义的ip和端口
moonip="[\"${MYADDR}/${ZERO_PORT}\"]"
# 替换ip
sed -i "s#127.0.0.1#${MYADDR}#g" moon.json
sed -i "s#\[\]#${moonip}#g" moon.json
#
zerotier-idtool genmoon moon.json
/tmp/mkmoonworld-x86_64 moon.json
#
mkdir /var/lib/zerotier-one/moons.d
cp *.moon /var/lib/zerotier-one/moons.d
mv world.bin planet
cp -f planet /var/lib/zerotier-one/planet
cp *.moon planet /opt/key-networks/ztncui/etc/myfs
moon_id=$(cat /var/lib/zerotier-one/identity.public | cut -d ':' -f1)
echo -e "Your ZeroTier moon id is \033[0;31m$moon_id\033[0m, you could orbit moon using \033[0;31m\"zerotier-cli orbit $moon_id $moon_id\"\033[0m"
配置备份
进入/opt/
目录,备份ztncui文件夹
tar -cvf ztncui.tar.gz /opt/ztncui
配置恢复时只需解压ztncui.tar.gz
到opt目录,然后重新运行docker-compose即可
ztncui文件夹目录格式
.
├── etc
│ ├── myfs
│ ├── passwd
│ ├── storage
│ └── tls
└── zerotier-one
├── authtoken.secret
├── controller.d
├── identity.public
├── identity.secret
├── moons.d
├── peers.d
├── planet
├── zerotier-cli -> /usr/sbin/zerotier-one
├── zerotier-idtool -> /usr/sbin/zerotier-one
├── zerotier-one -> /usr/sbin/zerotier-one
├── zerotier-one.pid
└── zerotier-one.port
客户端配置
安装Zerotier
Linux 安装zerotier
curl -s https://install.zerotier.com | sudo bash
安卓使用使用第三方zerotier-fix,自行导入moon和planet配置
# 项目地址
https://github.com/kaaass/ZerotierFix
Linux接入
- 进入目录 /var/lib/zerotier-one,替换目录下的 planet 文件
cp planet planet.bak
#
# 下载自建的plaet配置
wget http://<ip:3180>/planet
- 重启 zerotier-one 服务
systemctl restart zerotier-one
- 加入网络 zerotier-cli join
- zerotier-cli peers 可以看到 planet 角色
参考链接
https://github.com/Jonnyan404/zerotier-planet