自建私有ZeroTier服务器踩坑
背景
某日,休息在家,无意中发现Openwrt的系统中有Zerotier的虚拟路由的软件,并且对于技术的好奇研究了起来。从网络上查找大量资料,但是没找到对所有讲的明白的。
网上查资料,发现Zerotier 定义了其网络的结构的几个专业名词
- PLANET 行星服务器,Zerotier 各地的根服务器,有日本、新加坡等地;
- moon 卫星级服务器,用户自建的私有根服务器,起到中转加速的作用;
- LEAF 相当于各个枝叶,就是每台连接到该网络的机器节点。
依据上方三条,我们发现,我们要搭建私有平台,就需要搭建PLANET服务器
查到个部署方案
教程1:https://www.appinn.com/zerotier-planet-server-docker-install/
开源:https://github.com/Jonnyan404/zerotier-planet
按照作者的教程1的方式,配置正常使用,自己摸索Openwrt的路由设备可以被正常识别。
但是总是感觉不对,看了教程下面的回帖,有了一下疑惑,总感觉客户端没有修改,我什么就是连接了的私有服务器了呢?后来发现其实这个教程只是安装了ztncui。
带走疑惑,找到了下面教程
教程2:https://post.smzdm.com/p/akx70kwe/
和
教程3:https://www.nuomiphp.com/t/613586b995b0dc3394796e36.html
开源:https://github.com/sbilly/docker-zerotier-controller
看了教程,和相关开源介绍,了解了这个应该才是私有服务器的搭建,并且里面的回复都很重要。
按照教程其实讲的很清楚了,按照命令执行也可以通,但是没有人去介绍patch/planets.json中的"Identity" 怎么生成。
重要回复
1. identity.* 文件是 zeortier 运行时自动创建的,也可以用 zerotier-cli generate 来生成
2. “planet 使用的公钥” 就是指 zerotier planet 的 identity.public 文件中的内容。项目里面 planet.json 对应的 identity 是 patch/planet.public 和 patch/planet.secret
3. 9333 是 zerotier 的端口,3000/4000 都是 zero-ui 的端口(缺省配置的 zero-ui 只用了 4000 端口)
4. authtoken.secret 文件是 zerotier 运行时自动创建
看到下面的回复,Identity 来自 planet.public文件
后来发现,其实很多资料需要客户端zeortier-one的软件有了这些命令才可以生成:
zerotier-idtool <command> [<args>]
Commands:
generate [<identity.secret>] [<identity.public>] [<vanity>]
validate <identity.secret/public>
getpublic <identity.secret>
sign <identity.secret> <file>
verify <identity.secret/public> <file> <signature>
initmoon <identity.public of first seed>
genmoon <moon json>
还有zerotier-cli命令
ZeroTier 生成identity.public命令
zerotier-idtool generate identity.secret
zerotier-idtool generate identity.public
报错:
zerotier-cli: missing port and zerotier-one.port not found in /var/lib/zerotier-one
执行一下:zerotier-one -d
评论