一些问题
异地组网,管理方便,A、B网段内的IP可以直接相互访问
如果不搭建<code>MOON</code>节点,直接<code>P2P</code>的话,速度确实让人捉急,我感觉这个原因劝退了绝大多数人
应用场景不同。<code>Zerotier One</code>更适合用来组网,可以把它理解成<code>VPN</code>,可以直接通过局域网内IP互相访问。而<code>frp</code>特点是把内网的某个服务穿透出去,机器一多的话,你就需要记住不同端口号或子网域名。这里并不是说<code>Zerotier One</code>比<code>frp</code>更好用,需要根据自己的业务场景来看。比如你在家里部署了一个WEB服务,想要给你异地的朋友使用,你不可能让你的朋友安装<code>Zerotier One</code>吧?直接用<code>frp</code>把该服务反向代理映射出去,直接给他一个域名不是更方便?
开始使用
账号注册(略),注意国内访问速度很慢,这个自己解决一下
创建网络,进入网络管理页面,点击<code>Create A Network</code>后,自动创建一个网络,点击网络ID右侧的小图标可以进行复制

客户端安装,推荐使用<code>docker</code>
(1)拉取并运行:<code>docker run -d --restart unless-stopped --name zerotier-one --device /dev/net/tun --net host --cap-add NET_ADMIN --cap-add SYS_ADMIN -v /var/lib/zerotier-one:/var/lib/zerotier-one henrist/zerotier-one</code>
(2)将该客户端A加入网络:<code>docker exec zerotier-one zerotier-cli join 8bd5124fd655f3bf</code>,注意最后的网络ID,就是上面复制的,根据自己的进行替换,成功后会显示<code>200 join OK</code>字段
(3)进入该网络的管理界面,授权该客户端加入该网络
(4) 重复上面步骤,加入另外的客户端B
(5)根据图(3)中分配的IP,A、B机器可以相互<code>ping</code>通
(6)如果是<code>Windows</code>,客户端可以直接下载官方的安装包,进行安装,不需要使用<code>Docker</code>
(7)直接使用这种<code>P2P</code>方式连接的话,速度较慢,一般至少有<code>200m</code>s的延时
准备一台有公网IP的机器,放行<code>9993</code>端口
根据<code>docker logs -f zerotier-moon</code>运行输出的日志,在客户端执行该命令添加该<code>MOON</code>节点
A、B机器再<code>ping</code>一下,查看网络连接是否改善
<code>docker exec zerotier-one zerotier-cli listmoons</code>可以查看加入的<code>MOON</code>
现在考虑一个场景:A机器所在的内网<code>lan_A</code>有10台Server,B机器所在的内网<code>lan_B</code>也有10台Server,怎么让A、B机器直接访问到对方其它Server?
在这20台Server上分别装上客户端,这个可以实现需求,不过管理上比较麻烦。
实际上只要分别在<code>lan_A</code>、<code>lan_B</code>的某台机器上安装客户端,开启内核转发,然后在Web管理页面添加两条路由就可以了。
最简单的方法当然是分别在A、B机器上安装客户端就可以了,但前提是这两台机器都是<code>Linux</code>系统,因为需要开启内核转发功能。我在官网文档并没找到<code>Windows</code>的配置方法。
如果A、B两台机器都是<code>Windows</code>系统的话,需要分别装上客户端。然后在各自的内网内找一台Server,安装客户端后,开启内核转发就可以了
正常在两台Server上安装客户端
两台机器分别执行以下命令,开启内核转发:
登录Web管理添加路由
尽力表示了,还看不懂的话看下文档,按照这个方法,添加另外一条路由。
再来概括一下吧:通过<code>Zerotier One</code>中分配的IP作为网关,跳到对应的网络
K2P使用
以下内容搬运自恩山论坛csl0524的帖子,稍微做了些修改,如果侵权,请联系删除
<code>open-zerotier.sh</code>脚本:
保存open-zerotier.sh脚本,放入/etc/storage目录下
自定义脚本中添加以下命令
到zerotier后台看应该有设备连接上来了,在Auth项打勾授权
切换到/etc/storage目录,在该目录下新建一个ZT的文件夹,再打开<code>/opt/var/lib/zerotier-one/</code>目录,复制<code>authtoken.secret identity.publicidentity.secret</code>三个文件到刚才的ZT文件夹。这三个文件夹包含着本机zerotier的网络号,每次开机zerotier自动安装好后会把这三个文件恢复,不然每次开机zerotier会重新生成一个网络号并且要后台重新授权