Linux使用Docker搭建ZeroTiger,实现异地组网

发布于 2023-02-26  3033 次阅读


前言

去年四月份在家里自建了一个Unraid系统,搭建了seafile同步网盘,同时还玩起了PT,所以有时候需要实时登陆家里的服务器,已经通过ddnsgo做了映射,但是端口时不时被扫描爆破,每天被爆破实在受不了了,就用了一段时间frp,对我来说实在不好用,配置也麻烦,就想到了用ZeroTiger。
用了ZeroTiger官网的服务,有各种限制,速度也不理想,查看各种教程后觉得自建planet和moon节点。

镜像简介

  • 默认用户:admin
  • 默认密码:loganjin.cn
  • zerotier-one版本:1.10.1
  • 基础镜像:debian:bullseye-slim
  • 附加功能:构建planet、构建mooon、查询配置moon方法
  • 访问地址:http://IPaddress:3000或https://IPaddress:3443
  • docker仓库镜像:loganjindev/zerotier-ztncui:latest
  • 阿里云仓库镜像:registry.cn-shanghai.aliyuncs.com/logandev/zerotier-ztncui:latest
  •  环境变量:MYADDR MYDOMAIN HTTP_PORT HTTPS_PORT ZTNCUI_PASSWD NODE_ENV HTTP_ALL_INTERFACES

开始部署

一、Docker命令行部署:

# 下载项目
git clone https://gitee.com/logandev/zerotier-planet-moon.git
or 
git clone https://github.com/LoganJinDev/zerotier-planet-moon.git
# 切换到项目目录
cd zerotier-planet-moon
# 启动命令
docker run -d \
    --net=host \
    --name zerotier-planet \
    --restart unless-stopped \
    -v ./zerotier-one:/var/lib/zerotier-one \
    -v ./ztncui/etc:/opt/key-networks/ztncui/etc \
    loganjindev/zerotier-ztncui:v1.0.0
# 参数注释
--net=host #使用主机网络
--name zerotier-planet # 容器名
--restart unless-stopped # 容器重启策略
-v ./zerotier-one:/var/lib/zerotier-one \ # 将容器/var/lib/zerotier-one挂载到主机./zerotier-one
-v ./ztncui/etc:/opt/key-networks/ztncui/etc \ # 将容器/opt/key-networks/ztncui/etc挂载到主机./ztncui/etc

二、构建planet和moon节点

# 构建 moon
docker exec -it zerotier-planet build moon
# 构建 planet
docker exec -it zerotier-planet build planet
# 查询客户端配置moon方法
docker exec -it zerotier-planet build moonid

三、服务端开启的端口

  • 防火墙开放端口:3000 3443 9993/tcp 9993/udp 3180
  • 端口简介:
  • 3000:ztncui http访问
  • 3443:ztncui https访问
  • 9993:9993/tcp 9993/udp 均为zerotier使用 必须开放
  • 3180:planet moon下载端口 如果不需要可不开放

四、服务端创建networks

  • 浏览器打开网站:http://IPaddress:3000或https://IPaddress:3443
  • 登录:默认用户:admin 默认密码:loganjin.cn
  • 点击Add network输入网络名称 点击Create Network
  • 点击Network查看Network ID
  • 客户端加入网络:zerotier-cli join Network ID
  • 客户端常用命令,windows直接从官网下载客户端,在运行目录按照以下命令加入网络即可。
# 加入网络
zerotier-cli join Network ID
# 查看当前加入的网络列表
zerotier-cli listnetworks
# 删除网络
zerotier-cli leave Network ID
zerotier-cli oribn ID ID
#linux客户端加入自建网络
docker exec zerotier-one zerotier-cli join **************
docker exec zerotier-one zerotier-cli orbit ********* *********

使用docker部署客户端

#直接部署客户端,从上一步替换planet后重启即可
docker run -d --device=/dev/net/tun --name zerotier-one --net=host --restart=always --cap-add=NET_ADMIN --cap-add=SYS_ADMIN -v /var/lib/zerotier-one:/var/lib/zerotier-one bltavares/zerotier:latest

感谢

此项目基于Logan/zerotier-planet-moon构建,特别感谢。


则人之生也奚为哉?奚乐哉?为美厚尔,为声色尔。