自定义Zerotier planet

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

上一篇
下一篇