天天看点

组网神器Zerotier One使用

一些问题

异地组网,管理方便,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右侧的小图标可以进行复制

组网神器Zerotier One使用

客户端安装,推荐使用​<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)进入该网络的管理界面,授权该客户端加入该网络

组网神器Zerotier One使用

(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>​节点

组网神器Zerotier One使用

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作为网关,跳到对应的网络

组网神器Zerotier One使用

K2P使用

以下内容搬运自恩山论坛​​csl0524的帖子​​,稍微做了些修改,如果侵权,请联系删除

​<code>​open-zerotier.sh​</code>​脚本:

保存open-zerotier.sh脚本,放入/etc/storage目录下

自定义脚本中添加以下命令

组网神器Zerotier One使用

到zerotier后台看应该有设备连接上来了,在Auth项打勾授权

切换到/etc/storage目录,在该目录下新建一个ZT的文件夹,再打开​<code>​/opt/var/lib/zerotier-one/​</code>​目录,复制​<code>​authtoken.secret identity.publicidentity.secret​</code>​三个文件到刚才的ZT文件夹。这三个文件夹包含着本机zerotier的网络号,每次开机zerotier自动安装好后会把这三个文件恢复,不然每次开机zerotier会重新生成一个网络号并且要后台重新授权

组网神器Zerotier One使用