Open bevishwang opened 2 years ago
使用作者的docker, 最终中心节点显示为leaf, 测试移动4g和电信宽带延迟为500ms, 到中心节点分别为120ms和40ms, 实际没有走自定义的节点. 经过研究, 需要再进行设置. 提供下思路, 如下:
具体参考 https://github.com/xubiaolin/docker-zerotier-planet 里面的代码实现和各种生成moon教程
######## 仅供参考 #########
下载
git clone https://github.com/Jonnyan404/zerotier-planet
cd zerotier-planet
vim docker-compose.yml
修改
### 参考
### date:2021年11月29日
### author: www.mrdoc.fun | jonnyan404
### 转载请保留来源
version: '2.0'
services:
ztncui:
container_name: ztncui
restart: always
environment:
# - MYADDR=公网地址(不设置该项自动获取)
- MYADDR=127.0.0.1 # 改成自己的服务器公网ip
- HTTP_PORT=3443
- HTTP_ALL_INTERFACES=yes
- ZTNCUI_PASSWD=root
ports:
- '3443:3443' # 设置网页的端口
- '9993:9993' # 作为中心节点,提供9993端口给客户端用,一般是9993
- '9993:9993/udp'
volumes:
- './zerotier-one:/var/lib/zerotier-one'
- './ztncui/etc:/opt/key-networks/ztncui/etc'
# 按实际路径挂载卷, 冒号前面是宿主机的, 支持相对路径
image: keynetworks/ztncui
运行
docker-compose up -d
docker images # 查看镜像
docker container ps -a # 查看容器
docker exec -it ztncui bash # 进入容器
# 在容器内操作
cd /var/lib/zerotier-one
ls -l
# 生成moon配置文件
zerotier-idtool initmoon identity.public > moon.json
chmod 777 moon.json
新建一个terminal, 在容器外修改moon.json
, 位置对应挂载位置
修改stableEndpoints
, 注意格式和实际公网ip
{
"id": "b72b5e9e1a",
"objtype": "world",
"roots": [
{
"identity": "b72b5e9e1a:0:a892e51d2ef94ef941e4c499af01fbc2903f7ad2fd53e9370f9ac6260c2f5d2484fd90756bec0c410675a81b7cf61d2bb885783bd6a8c28bce83bcab5f03fe14",
"stableEndpoints": ["127.0.0.1/9993"]
}
],
"signingKey": "45f0613e569a0549c74293c39b30495b594a003534290e8ade9ef82877aa7505d7a73eeabfc22c97c404e4caaf9f3c9eed2b134d696935c966e28f523364f15f",
"signingKey_SECRET": "cc6afd67e7b7f84a92e2c8d3c2e7212c71e2ad0a4f5b3c03bf60ab1cd3b99281b57d9a2958d2bd8fc2bc77fdf2a1160099c2c61d3d9acc8cb311673ee120b4a6",
"updatesMustBeSignedBy": "45f0613e569a0549c74293c39b30495b594a003534290e8ade9ef82877aa7505d7a73eeabfc22c97c404e4caaf9f3c9eed2b134d696935c966e28f523364f15f",
"worldType": "moon"
}
在容器内生成moon文件
zerotier-idtool genmoon moon.json
mkdir moons.d
cp *.moon moons.d/
在容器外生成planet文件
拷贝一份moon文件, 客户端可以用到
下载mkmoonworld, 拷贝moon.json, 放在一个目录下
./mkmoonworld-x86_64 ./moon.json
mv world.bin planet
# 复制到容器内
docker cp ./planet ztncui:/var/lib/zerotier-one
重启容器
docker restart ztncui
docker exec -it ztncui bash # 进入容器
# 在容器内操作
cd /var/lib/zerotier-one
# 查看moon
zerotier-cli listmoons
访问ip+端口
对应的设置页面
替换客户端的planet文件并重启服务, 再加入网络, 在网页端授权
这个版本最高限速还是100mbps吗
你说得很对,在同一台服务器上面再搞一个moon就可以了。
@jqtmviyu 非常感谢您的教程
我有一点疑问,按照我的理解,这个moon.json
只是中间产物,最终是为了生成planet
文件的,那么在您教程中的第5步中”在容器内生成moon文件“:
mkdir moons.d
cp *.moon moons.d/
这两行命令是不是没有必要的?
网络小白,想确认一下
网络小白,想确认一下
- 现在有个准信,此github项目就是个控制器+ui了吗?
- 按照上面那位大神额外的修改步骤,也只是做了一个自用的moon服务器?但是这个moon服务器可以供给ios和android端使用?(因为现在官方的ios和android端都不支持orbit moon)
您好,请问在控制界面,为啥最后的Peer address / latency部分会出现一个172.18.0.1的地址,似乎这个地址出现后内网内的机子就再也ping不通了。
是可以创建私有planet的,相关构建代码在 ZeroTierOne/attic/world/ 目录下。
是可以创建私有planet的,相关构建代码在 ZeroTierOne/attic/world/ 目录下。
好的好的,谢谢您,我已经借助腾讯云成功创建好了一个私有planet,谢谢您!!!!祝生活舒畅工作顺利!!
是可以创建私有planet的,相关构建代码在 ZeroTierOne/attic/world/ 目录下。
好的好的,谢谢您,我已经借助腾讯云成功创建好了一个私有planet,谢谢您!!!!祝生活舒畅工作顺利!!
可以说说创建过程吗
是可以创建私有planet的,相关构建代码在 ZeroTierOne/attic/world/ 目录下。
好的好的,谢谢您,我已经借助腾讯云成功创建好了一个私有planet,谢谢您!!!!祝生活舒畅工作顺利!!
可以说说创建过程吗
兄弟你好,按照这位老哥说的做就好,我已经成功了,没有一点问题。https://github.com/Jonnyan404/zerotier-planet/issues/11#issuecomment-1059961262
如果有问题,欢迎私信问我,我觉得我已经基本上把所有的坑全踩过了。
如果有问题,欢迎私信问我,我觉得我已经基本上把所有的坑全踩过了。
可以问一下这种是什么情况吗😭
有没有一种可能你的Linux是64位的,你用的是mkmoon32位的。我看下面有64位的下载链接https://github.com/kaaass/ZeroTierOne/releases/tag/mkmoonworld-1.0,我觉得可能是你没有32位的库。
如果有问题,欢迎私信问我,我觉得我已经基本上把所有的坑全踩过了。
可以问一下这种是什么情况吗😭
也有可能是linux内核过旧, 我服务器上的centos7也是这样提示, 后来我是在本地manjaro上生成的, 你可以按照@hustwwx 的试下, 或者用虚拟机装支持滚动更新的linux试下, 甚至升级内核.
@jqtmviyu 非常感谢您的教程 我有一点疑问,按照我的理解,这个
moon.json
只是中间产物,最终是为了生成planet
文件的,那么在您教程中的第5步中”在容器内生成moon文件“:mkdir moons.d cp *.moon moons.d/
这两行命令是不是没有必要的?
理论上是没必要的, 只需要行星节点, 因为当时网络上的教程又乱又杂, 其中各种博客中以自建moon节点为主. 我也不清楚最终会不会生效, 所以干脆把行星节点和月亮节点都换了. 其中 v2ex上有人提供了支持自定义节点的android app, 只加载planet并不能生效, 但加载moon却ok. 我现在可以用, 暂时没时间去折腾. 或许你可以试下删除容器里的moon, 重启后看是否正常.
使用作者的docker, 最终中心节点显示为leaf, 测试移动4g和电信宽带延迟为500ms, 到中心节点分别为120ms和40ms, 实际没有走自定义的节点. 经过研究, 需要再进行设置. 提供下思路, 如下:
- compose需要增加ports: '9993:9993'和'9993:9993/udp', 服务器和防火墙也得放行
- 进入容器, 生成moon.json
- 拷贝moon.json到宿主机, 修改stableEndpoints
- 在宿主机用mkmoonworld-x86生成行星文件
- 把修改后的moon.json拷回容器, 在容器内生成moon文件, 创建moons.d文件夹, 放进去. 拷贝一份到宿主机备用
- 把行星文件替换回容器
- 重启容器
- 把客户端的planet文件替换
- 安卓端的话, 实测单独加载planet不生效. 加载moon文件, 关闭官方行星节点, 生效
具体参考 https://github.com/xubiaolin/docker-zerotier-planet 里面的代码实现和各种生成moon教程
######## 仅供参考 #########
- 下载
git clone https://github.com/Jonnyan404/zerotier-planet cd zerotier-planet vim docker-compose.yml
- 修改
### 参考 ### date:2021年11月29日 ### author: www.mrdoc.fun | jonnyan404 ### 转载请保留来源 version: '2.0' services: ztncui: container_name: ztncui restart: always environment: # - MYADDR=公网地址(不设置该项自动获取) - MYADDR=127.0.0.1 # 改成自己的服务器公网ip - HTTP_PORT=3443 - HTTP_ALL_INTERFACES=yes - ZTNCUI_PASSWD=root ports: - '3443:3443' # 设置网页的端口 - '9993:9993' # 作为中心节点,提供9993端口给客户端用,一般是9993 - '9993:9993/udp' volumes: - './zerotier-one:/var/lib/zerotier-one' - './ztncui/etc:/opt/key-networks/ztncui/etc' # 按实际路径挂载卷, 冒号前面是宿主机的, 支持相对路径 image: keynetworks/ztncui
运行
docker-compose up -d docker images # 查看镜像 docker container ps -a # 查看容器 docker exec -it ztncui bash # 进入容器 # 在容器内操作 cd /var/lib/zerotier-one ls -l # 生成moon配置文件 zerotier-idtool initmoon identity.public > moon.json chmod 777 moon.json
- 新建一个terminal, 在容器外修改
moon.json
, 位置对应挂载位置 修改stableEndpoints
, 注意格式和实际公网ip{ "id": "b72b5e9e1a", "objtype": "world", "roots": [ { "identity": "b72b5e9e1a:0:a892e51d2ef94ef941e4c499af01fbc2903f7ad2fd53e9370f9ac6260c2f5d2484fd90756bec0c410675a81b7cf61d2bb885783bd6a8c28bce83bcab5f03fe14", "stableEndpoints": ["127.0.0.1/9993"] } ], "signingKey": "45f0613e569a0549c74293c39b30495b594a003534290e8ade9ef82877aa7505d7a73eeabfc22c97c404e4caaf9f3c9eed2b134d696935c966e28f523364f15f", "signingKey_SECRET": "cc6afd67e7b7f84a92e2c8d3c2e7212c71e2ad0a4f5b3c03bf60ab1cd3b99281b57d9a2958d2bd8fc2bc77fdf2a1160099c2c61d3d9acc8cb311673ee120b4a6", "updatesMustBeSignedBy": "45f0613e569a0549c74293c39b30495b594a003534290e8ade9ef82877aa7505d7a73eeabfc22c97c404e4caaf9f3c9eed2b134d696935c966e28f523364f15f", "worldType": "moon" }
- 在容器内生成moon文件
zerotier-idtool genmoon moon.json mkdir moons.d cp *.moon moons.d/
在容器外生成planet文件
- 拷贝一份moon文件, 客户端可以用到
- 下载mkmoonworld, 拷贝moon.json, 放在一个目录下
./mkmoonworld-x86_64 ./moon.json mv world.bin planet
# 复制到容器内 docker cp ./planet ztncui:/var/lib/zerotier-one
- 重启容器
docker restart ztncui docker exec -it ztncui bash # 进入容器 # 在容器内操作 cd /var/lib/zerotier-one # 查看moon zerotier-cli listmoons
- 访问
ip+端口
对应的设置页面- 替换客户端的planet文件并重启服务, 再加入网络, 在网页端授权
请问ztncui安装好后有没有类似于官方的API,可以返回用户信息和在线状况的命令呀。
使用作者的docker, 最终中心节点显示为leaf, 测试移动4g和电信宽带延迟为500ms, 到中心节点分别为120ms和40ms, 实际没有走自定义的节点. 经过研究, 需要再进行设置. 提供下思路, 如下:
- compose需要增加ports: '9993:9993'和'9993:9993/udp', 服务器和防火墙也得放行
- 进入容器, 生成moon.json
- 拷贝moon.json到宿主机, 修改stableEndpoints
- 在宿主机用mkmoonworld-x86生成行星文件
- 把修改后的moon.json拷回容器, 在容器内生成moon文件, 创建moons.d文件夹, 放进去. 拷贝一份到宿主机备用
- 把行星文件替换回容器
- 重启容器
- 把客户端的planet文件替换
- 安卓端的话, 实测单独加载planet不生效. 加载moon文件, 关闭官方行星节点, 生效
具体参考 https://github.com/xubiaolin/docker-zerotier-planet 里面的代码实现和各种生成moon教程
######## 仅供参考 #########
- 下载
git clone https://github.com/Jonnyan404/zerotier-planet cd zerotier-planet vim docker-compose.yml
- 修改
### 参考 ### date:2021年11月29日 ### author: www.mrdoc.fun | jonnyan404 ### 转载请保留来源 version: '2.0' services: ztncui: container_name: ztncui restart: always environment: # - MYADDR=公网地址(不设置该项自动获取) - MYADDR=127.0.0.1 # 改成自己的服务器公网ip - HTTP_PORT=3443 - HTTP_ALL_INTERFACES=yes - ZTNCUI_PASSWD=root ports: - '3443:3443' # 设置网页的端口 - '9993:9993' # 作为中心节点,提供9993端口给客户端用,一般是9993 - '9993:9993/udp' volumes: - './zerotier-one:/var/lib/zerotier-one' - './ztncui/etc:/opt/key-networks/ztncui/etc' # 按实际路径挂载卷, 冒号前面是宿主机的, 支持相对路径 image: keynetworks/ztncui
运行
docker-compose up -d docker images # 查看镜像 docker container ps -a # 查看容器 docker exec -it ztncui bash # 进入容器 # 在容器内操作 cd /var/lib/zerotier-one ls -l # 生成moon配置文件 zerotier-idtool initmoon identity.public > moon.json chmod 777 moon.json
- 新建一个terminal, 在容器外修改
moon.json
, 位置对应挂载位置 修改stableEndpoints
, 注意格式和实际公网ip{ "id": "b72b5e9e1a", "objtype": "world", "roots": [ { "identity": "b72b5e9e1a:0:a892e51d2ef94ef941e4c499af01fbc2903f7ad2fd53e9370f9ac6260c2f5d2484fd90756bec0c410675a81b7cf61d2bb885783bd6a8c28bce83bcab5f03fe14", "stableEndpoints": ["127.0.0.1/9993"] } ], "signingKey": "45f0613e569a0549c74293c39b30495b594a003534290e8ade9ef82877aa7505d7a73eeabfc22c97c404e4caaf9f3c9eed2b134d696935c966e28f523364f15f", "signingKey_SECRET": "cc6afd67e7b7f84a92e2c8d3c2e7212c71e2ad0a4f5b3c03bf60ab1cd3b99281b57d9a2958d2bd8fc2bc77fdf2a1160099c2c61d3d9acc8cb311673ee120b4a6", "updatesMustBeSignedBy": "45f0613e569a0549c74293c39b30495b594a003534290e8ade9ef82877aa7505d7a73eeabfc22c97c404e4caaf9f3c9eed2b134d696935c966e28f523364f15f", "worldType": "moon" }
- 在容器内生成moon文件
zerotier-idtool genmoon moon.json mkdir moons.d cp *.moon moons.d/
在容器外生成planet文件
- 拷贝一份moon文件, 客户端可以用到
- 下载mkmoonworld, 拷贝moon.json, 放在一个目录下
./mkmoonworld-x86_64 ./moon.json mv world.bin planet
# 复制到容器内 docker cp ./planet ztncui:/var/lib/zerotier-one
- 重启容器
docker restart ztncui docker exec -it ztncui bash # 进入容器 # 在容器内操作 cd /var/lib/zerotier-one # 查看moon zerotier-cli listmoons
- 访问
ip+端口
对应的设置页面- 替换客户端的planet文件并重启服务, 再加入网络, 在网页端授权
请问在这样的docker下,控制器的网页的文件在哪里呀,我在docker内和docker外都找了一遍,还是找不到。
使用作者的docker, 最终中心节点显示为leaf, 测试移动4g和电信宽带延迟为500ms, 到中心节点分别为120ms和40ms, 实际没有走自定义的节点. 经过研究, 需要再进行设置. 提供下思路, 如下:
- compose需要增加ports: '9993:9993'和'9993:9993/udp', 服务器和防火墙也得放行
- 进入容器, 生成moon.json
- 拷贝moon.json到宿主机, 修改stableEndpoints
- 在宿主机用mkmoonworld-x86生成行星文件
- 把修改后的moon.json拷回容器, 在容器内生成moon文件, 创建moons.d文件夹, 放进去. 拷贝一份到宿主机备用
- 把行星文件替换回容器
- 重启容器
- 把客户端的planet文件替换
- 安卓端的话, 实测单独加载planet不生效. 加载moon文件, 关闭官方行星节点, 生效
具体参考 https://github.com/xubiaolin/docker-zerotier-planet 里面的代码实现和各种生成moon教程
######## 仅供参考 #########
- 下载
git clone https://github.com/Jonnyan404/zerotier-planet cd zerotier-planet vim docker-compose.yml
- 修改
### 参考 ### date:2021年11月29日 ### author: www.mrdoc.fun | jonnyan404 ### 转载请保留来源 version: '2.0' services: ztncui: container_name: ztncui restart: always environment: # - MYADDR=公网地址(不设置该项自动获取) - MYADDR=127.0.0.1 # 改成自己的服务器公网ip - HTTP_PORT=3443 - HTTP_ALL_INTERFACES=yes - ZTNCUI_PASSWD=root ports: - '3443:3443' # 设置网页的端口 - '9993:9993' # 作为中心节点,提供9993端口给客户端用,一般是9993 - '9993:9993/udp' volumes: - './zerotier-one:/var/lib/zerotier-one' - './ztncui/etc:/opt/key-networks/ztncui/etc' # 按实际路径挂载卷, 冒号前面是宿主机的, 支持相对路径 image: keynetworks/ztncui
运行
docker-compose up -d docker images # 查看镜像 docker container ps -a # 查看容器 docker exec -it ztncui bash # 进入容器 # 在容器内操作 cd /var/lib/zerotier-one ls -l # 生成moon配置文件 zerotier-idtool initmoon identity.public > moon.json chmod 777 moon.json
- 新建一个terminal, 在容器外修改
moon.json
, 位置对应挂载位置 修改stableEndpoints
, 注意格式和实际公网ip{ "id": "b72b5e9e1a", "objtype": "world", "roots": [ { "identity": "b72b5e9e1a:0:a892e51d2ef94ef941e4c499af01fbc2903f7ad2fd53e9370f9ac6260c2f5d2484fd90756bec0c410675a81b7cf61d2bb885783bd6a8c28bce83bcab5f03fe14", "stableEndpoints": ["127.0.0.1/9993"] } ], "signingKey": "45f0613e569a0549c74293c39b30495b594a003534290e8ade9ef82877aa7505d7a73eeabfc22c97c404e4caaf9f3c9eed2b134d696935c966e28f523364f15f", "signingKey_SECRET": "cc6afd67e7b7f84a92e2c8d3c2e7212c71e2ad0a4f5b3c03bf60ab1cd3b99281b57d9a2958d2bd8fc2bc77fdf2a1160099c2c61d3d9acc8cb311673ee120b4a6", "updatesMustBeSignedBy": "45f0613e569a0549c74293c39b30495b594a003534290e8ade9ef82877aa7505d7a73eeabfc22c97c404e4caaf9f3c9eed2b134d696935c966e28f523364f15f", "worldType": "moon" }
- 在容器内生成moon文件
zerotier-idtool genmoon moon.json mkdir moons.d cp *.moon moons.d/
在容器外生成planet文件
- 拷贝一份moon文件, 客户端可以用到
- 下载mkmoonworld, 拷贝moon.json, 放在一个目录下
./mkmoonworld-x86_64 ./moon.json mv world.bin planet
# 复制到容器内 docker cp ./planet ztncui:/var/lib/zerotier-one
- 重启容器
docker restart ztncui docker exec -it ztncui bash # 进入容器 # 在容器内操作 cd /var/lib/zerotier-one # 查看moon zerotier-cli listmoons
- 访问
ip+端口
对应的设置页面- 替换客户端的planet文件并重启服务, 再加入网络, 在网页端授权
您好,方便问一下,ztncui界面中的active bridge功能是有什么用的呀。
使用m1 的mac mini 连接自己搭建的行星服务器,一直提示REQUESTING_CONFIGURATION, 但是intel的mac却能连接上。你们有遇到这种情况吗?
如果有问题,欢迎私信问我,我觉得我已经基本上把所有的坑全踩过了。
请教一下,那个Planet文件在哪里取呀,根据教程http://ip:3180 或者在目录的./ztncui/etc/myfs/里都只有一个moon文件
如果有问题,欢迎私信问我,我觉得我已经基本上把所有的坑全踩过了。
又重新执行了一遍,发现没有planet,请教一下这是什么原因
服务器最低内核版本要求多少啊?
搭建的行星服务器成功,但是plant文件替换到window客户端后,zeroTier one 重启连接失败
您好,方便问一下,ztncui界面中的active bridge功能是有什么用的呀。
大佬现在知道是干啥用的了吗,还请告知
@b1ank1108 启用虚拟网卡到物理网卡的桥接。
如果有问题,欢迎私信问我,我觉得我已经基本上把所有的坑全踩过了。
请问一下windows服务器如何编译生成world.bin文件呢
如果搭建planet并且需要它同时负责转发的任务,是不是还需要生成moon,即planet和moon在同一台主机上都要生成?客户端只需要替换planet文件即可,不需要放置moon文件?
请问加入之后控制台里一直没有出现设备怎么办呢?
请问加入之后控制台里一直没有出现设备怎么办呢?
9993的udp和tcp在安全组开了没
如果搭建planet并且需要它同时负责转发的任务,是不是还需要生成moon,即planet和moon在同一台主机上都要生成?客户端只需要替换planet文件即可,不需要放置moon文件?
不需要。只用将docker network设置成 host 。
示例yaml
### date:2021年11月29日
### author: www.mrdoc.fun | jonnyan404
### 转载请保留来源
### update:2022年08月14日
version: '2.0'
services:
ztncui:
container_name: ztncui
restart: always
devices:
- /dev/net/tun
cap_add:
- NET_ADMIN
- SYS_ADMIN
- NET_RAW
environment:
- MYADDR=1.1.1.1 #改成自己的服务器公网IP
- HTTP_PORT=4000
- HTTP_ALL_INTERFACES=yes
- ZTNCUI_PASSWD=mrdoc.fun
ports:
- '4000:4000' # web控制台入口
- '9993:9993'
- '9993:9993/udp'
- '3180:3180' # planet/moon文件在线下载入口,如不对外提供。可防火墙禁用此端口。
volumes:
- './zerotier-one:/var/lib/zerotier-one'
- './ztncui/etc:/opt/key-networks/ztncui/etc'
# 按实际路径挂载卷, 冒号前面是宿主机的, 支持相对路径
image: keynetworks/ztncui
network_mode: host
之后可以在容器里安装bash等软件包
docker exec -it ztncui sh
sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list && apt-get update && apt-get install -y bash iproute2 iputils-ping net-tools
exit
如果需要转发,在容器里加入就可以了。
docker exec -it ztncui bash
zerotier-cli join <network id>
请问加入之后控制台里一直没有出现设备怎么办呢?
9993的udp和tcp在安全组开了没
都开了
现在listpeers还会提示:
出现这种情况,大概率是由于没有替换 planet 文件导致的。 需要下载planet 文件。 如何替换可以参考: https://github.com/xubiaolin/docker-zerotier-planet#4%E5%AE%A2%E6%88%B7%E7%AB%AF%E9%85%8D%E7%BD%AE
出现这种情况,大概率是由于没有替换 planet 文件导致的。 需要下载planet 文件。 如何替换可以参考: https://github.com/xubiaolin/docker-zerotier-planet#4%E5%AE%A2%E6%88%B7%E7%AB%AF%E9%85%8D%E7%BD%AE
我确认替换了下载的planet文件,不替换的话会有很多其他的节点出现在listpeers中,更换后就只有截图的这一个了
有一个情况是在重启服务的时候,会提示
确认以后会显示还是已经停止了,重新点击启动也没有报错
发现应该是腾讯云屏蔽了9993端口,换用其他端口就可以了
发现应该是腾讯云屏蔽了9993端口,换用其他端口就可以了
我和你遇到了同样的情况,而且我换用了其它端口也不行,你能说下具体的解决流程吗,谢谢!
发现应该是腾讯云屏蔽了9993端口,换用其他端口就可以了
我和你遇到了同样的情况,而且我换用了其它端口也不行,你能说下具体的解决流程吗,谢谢!
我一开始也遇到一样的问题,我是把 current.c25519 previous.c25519 planet 一起复制到容器的/var/lib/zerotier-one下,突然就正常了
现在listpeers还会提示:
对于这个问题,我在 docker-compose.yml
文件中发现了一个地方 - MYADDR=1.1.1.1 #改成自己的服务器公网IP
,原先是写的全是1,然后我改成了我自己服务器的公网IP。这个地方,github和博客上都没说,不知道需不需要改。
但是我改了之后,立马就能看到我的那个公网服务器作为planet存在了
还有一种可能,你的客户端要有网,如果没网也是没办法出现你的公网服务器作为planet
不过我为啥没看到moon节点?
(base) PS C:\Users\abc> zerotier-cli.bat peers
200 peers
<ztaddr> <ver> <role> <lat> <link> <lastTX> <lastRX> <path>
241111xxxx 1.12.2 LEAF 6 DIRECT 562 9368 172.20.1.1/20843
8c87xxxxxx 1.8.4 PLANET 23 DIRECT -380 4114 1.1.1.1/9993
学得差不多了,这个issue的标题和楼主的发言有误导性。
这个项目就是搭建了一个私有的planet,不然你解释不了为啥role是planet而不是moon
节点控制器是一方面,能够越过官方控制自己VPN内的节点。官方并不会没有想到moon和planet的区别。如果这里搭建的仅仅是节点控制器,难道role就会显示planet了吗
如果搭建planet并且需要它同时负责转发的任务,是不是还需要生成moon,即planet和moon在同一台主机上都要生成?客户端只需要替换planet文件即可,不需要放置moon文件?
不需要。只用将docker network设置成 host 。
示例yaml
### date:2021年11月29日 ### author: www.mrdoc.fun | jonnyan404 ### 转载请保留来源 ### update:2022年08月14日 version: '2.0' services: ztncui: container_name: ztncui restart: always devices: - /dev/net/tun cap_add: - NET_ADMIN - SYS_ADMIN - NET_RAW environment: - MYADDR=1.1.1.1 #改成自己的服务器公网IP - HTTP_PORT=4000 - HTTP_ALL_INTERFACES=yes - ZTNCUI_PASSWD=mrdoc.fun ports: - '4000:4000' # web控制台入口 - '9993:9993' - '9993:9993/udp' - '3180:3180' # planet/moon文件在线下载入口,如不对外提供。可防火墙禁用此端口。 volumes: - './zerotier-one:/var/lib/zerotier-one' - './ztncui/etc:/opt/key-networks/ztncui/etc' # 按实际路径挂载卷, 冒号前面是宿主机的, 支持相对路径 image: keynetworks/ztncui network_mode: host
之后可以在容器里安装bash等软件包
docker exec -it ztncui sh sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list && apt-get update && apt-get install -y bash iproute2 iputils-ping net-tools exit
如果需要转发,在容器里加入就可以了。
docker exec -it ztncui bash zerotier-cli join <network id>
如果搭建planet并且需要它同时负责转发的任务,是不是还需要生成moon,即planet和moon在同一台主机上都要生成?客户端只需要替换planet文件即可,不需要放置moon文件?
不需要。只用将docker network设置成 host 。
示例yaml
### date:2021年11月29日 ### author: www.mrdoc.fun | jonnyan404 ### 转载请保留来源 ### update:2022年08月14日 version: '2.0' services: ztncui: container_name: ztncui restart: always devices: - /dev/net/tun cap_add: - NET_ADMIN - SYS_ADMIN - NET_RAW environment: - MYADDR=1.1.1.1 #改成自己的服务器公网IP - HTTP_PORT=4000 - HTTP_ALL_INTERFACES=yes - ZTNCUI_PASSWD=mrdoc.fun ports: - '4000:4000' # web控制台入口 - '9993:9993' - '9993:9993/udp' - '3180:3180' # planet/moon文件在线下载入口,如不对外提供。可防火墙禁用此端口。 volumes: - './zerotier-one:/var/lib/zerotier-one' - './ztncui/etc:/opt/key-networks/ztncui/etc' # 按实际路径挂载卷, 冒号前面是宿主机的, 支持相对路径 image: keynetworks/ztncui network_mode: host
之后可以在容器里安装bash等软件包
docker exec -it ztncui sh sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list && apt-get update && apt-get install -y bash iproute2 iputils-ping net-tools exit
如果需要转发,在容器里加入就可以了。
docker exec -it ztncui bash zerotier-cli join <network id>
改为host行不通啊
改成host模式后,可以直接去掉端口转发部分。
示例yaml
### date:2021年11月29日
### author: www.mrdoc.fun | jonnyan404
### 转载请保留来源
### update:2022年08月14日
version: '2.0'
services:
ztncui:
container_name: ztncui
restart: always
devices:
- /dev/net/tun
cap_add:
- NET_ADMIN
- SYS_ADMIN
- NET_RAW
environment:
- MYADDR=1.1.1.1 #改成自己的服务器公网IP
- HTTP_PORT=4000
- HTTP_ALL_INTERFACES=yes
- ZTNCUI_PASSWD=mrdoc.fun
volumes:
- './zerotier-one:/var/lib/zerotier-one'
- './ztncui/etc:/opt/key-networks/ztncui/etc'
# 按实际路径挂载卷, 冒号前面是宿主机的, 支持相对路径
image: keynetworks/ztncui
network_mode: host
如果有问题,欢迎私信问我,我觉得我已经基本上把所有的坑全踩过了。
可以把教程分享一下吗
经过本人踩了多个坑后,结合各方资料,得出了以下结论:
本人在使用官网的控制器且可以建立直接链接的场景中,设备间延迟在10ms以内,网速可以跑满;在无法建立直接链接时,使用官方的planet服务器做转发,延迟在400ms左右浮动,网速100k左右,使用基于aliyun服务器搭建的私有moon做转发,延迟在30ms以内,网速可以跑满aliyun服务器的网速上限。
关于几个相关术语的个人理解: