Linux下通过docker以及非docker方案部署zerotier节点
zerotier是什么?不懂的自行谷歌。
docker部署命令:
docker run -d \
--name zerotier-one \
--restart=always \
--device=/dev/net/tun \
--net=host \
--cap-add=NET_ADMIN \
--cap-add=SYS_ADMIN \
-v /var/lib/zerotier-one:/var/lib/zerotier-one \
zerotier/zerotier:1.14.0
部署完成,常用的命令如下:
# 加入moon
docker exec zerotier-one zerotier-cli orbit ID ID
# 脱离moon
docker exec zerotier-one zerotier-cli deorbit ID ID
# 查看已加入的网络信息
docker exec zerotier-one zerotier-cli listnetworks
# 查看已连接的节点信息
docker exec zerotier-one zerotier-cli peers
# 加入网络
docker exec zerotier-one zerotier-cli join ID
# 脱离网络
docker exec zerotier-one zerotier-cli leave ID
非docker部署命令:
# 一键安装脚本
curl -s https://install.zerotier.com | bash
非docker方案常用命令:
# 加入moon
zerotier-cli orbit ID ID
# 脱离moon
zerotier-cli deorbit ID ID
# 查看已加入的网络信息
zerotier-cli listnetworks
# 查看已连接的节点信息
zerotier-cli peers
# 加入网络
zerotier-cli join ID
# 脱离网络
zerotier-cli leave ID
两种方案按照需求来选择部署,部署完毕记得加入自己的网络ID,可以使用官方的(有限制),也可以自建节点控制器(需要自备服务器),部署命令如下:
docker run -d \
--name ztncui \
-e ZTNCUI_PASSWD=1122334488 \
-p 80:80 \
-e HTTP_PORT=80 \
-p 9993:9993/udp \
-v /home/ztncui/ztncui:/opt/key-networks/ztncui/etc \
-v /home/ztncui/zt1:/var/lib/zerotier-one \
-e HTTP_ALL_INTERFACES=yes \
--restart unless-stopped \
keynetworks/ztncui:1.2.17
其中,ZTNCUI_PASSWD=1122334488的1122334488是自定义的面板密码,部署后可以登录面板自行修改,-p 80:80以及-e HTTP_PORT=80就是指定面板的映射以及默认容器内的面板端口。-p 9993:9993/udp这个参数不要修改。登录面板后就可以创建自己的网络,拥有自己的网络ID了。
另外,附上自建moon节点的教程:
docker方法:
# 部署节点的命令不变,名称最好是按照下面的设置
docker run -d \
--name zerotier-moon \
--restart=always \
--device=/dev/net/tun \
--net=host \
--cap-add=NET_ADMIN \
--cap-add=SYS_ADMIN \
-v /home/zerotier:/var/lib/zerotier-one \
zerotier/zerotier:1.14.0
# 复制一份默认配置文件
docker exec zerotier-moon sh -c "zerotier-idtool initmoon /var/lib/zerotier-one/identity.public > /var/lib/zerotier-one/moon.json"
# 从容器中复制配置文件到宿主机编辑
docker cp zerotier-moon:/var/lib/zerotier-one/moon.json /home/zerotier/moon.json
# 宿主机编辑
nano /home/zerotier/moon.json
# x.x.x.x改成你的这个moon节点的公网IP
"stableEndpoints": ["x.x.x.x/9993"]
# 编辑完成后复制回容器里面
docker cp /home/zerotier/moon.json zerotier-moon:/var/lib/zerotier-one/moon.json
# 生成moon文件,记住文件名
docker exec zerotier-moon zerotier-idtool genmoon /var/lib/zerotier-one/moon.json
# 建立moon文件夹,移动moon文件过去
docker exec zerotier-moon sh -c "mkdir -p /var/lib/zerotier-one/moons.d && mv /*.moon /var/lib/zerotier-one/moons.d/"
# 查看moon id
docker exec zerotier-moon zerotier-cli info
非docker的大同小异,注意生成的moon文件所在位置即可,有了moon id之后,互联的双方必须要同时添加moon才可以让moon有效。