搭建zerotier moon中转服务器实现虚拟局域网稳定快速互访

0.缘由

很久之前(差不多快3年了)写过一篇介绍zerotier内网穿透的文章【zerotier内网穿透功能简要介绍及简明设置方法】,那是基于官网自己的服务器组建的虚拟局域网,由于服务器在国外,有时不稳定,转半天圈也无法实现握手,虽然握手之后就是点对点的实现互访,但总觉得还是有些不爽。有没有办法跨越这个限制,实现自由快速的握手和互访呢?答案还真有,官方给具有服务器的小伙伴准备了自行搭建moon中转服务器的方案,下面就让我们一起去探索和完成吧。

1.moon主机搭建

你需要一台具有公网ip的服务器,如果你的宽带服务商还提供公网的话,那就祝贺你可以免费拥有这一切了。没有公网就得自己去购买云服务器(也就是vps),当然最好是国内的vps,国外的cn2线路也可以。该云服务器除了可以搭建属于你自己的moon服务器外,也可以同时实现搭建个人网站等其他用途。

1.1.安装zerotier moon

用ssh软件(比如putty、MobaXterm等)登录你刚的云服务器,然后运行如下命令(如果你本身就是已root账户登录的,可以将如下命令中的sudo去掉):

1.1.1.安装moon并加入你在zerotier注册的Network ID

curl -s https://install.zerotier.com/ | sudo bash
zerotier-cli join ID****

注意需要在zerotier官网中勾选启用该zerotier服务

1.1.2.给moon相关文件夹授权并生成moon配置文件

sudo chmod 777 /var/lib/zerotier-one
cd /var/lib/zerotier-one
sudo zerotier-idtool initmoon identity.public > moon.json

1.1.3.修改moon配置文件moon.json

主要是将ip修改为你的云服务器的ip,默认端口号9993可以不改

"stableEndpoints": [ "192.168.196.141/9993" ]

注意:192.168.196.141是你的云服务器IP (非公网ip,必须是该moon服务器在zerotier中分配的局域网ip,可以在你的zerotier控制面板查找到,也可以通过zerotier-cli listnetworks命令查看到<如下图所示的192.168.196.141>),一定要配置正确,Zerotier依靠此配置去连接moon。后面的端口若没有改变则默认都是9993端口, 且在你的服务器防火墙上需要以UDP方式开放9993端口(可到云服务器管理后台去添加,若没有,也可以安装宝塔面板去添加),否则你是连接不上Moon的!
在这里插入图片描述

1.1.4.生成moon配置文件

sudo zerotier-idtool genmoon moon.json 

此时会在/var/lib/zerotier-one目录下生成一个类似000000xxxxxxxxxx.moon的文件,记住它。

1.1.5.应用配置文件(使其生效)

在/var/lib/zerotier-one目录下,新建一个 moons.d文件夹,并将刚生成的000000xxxxxxxxxx.moon配置文件放到该文件夹下:

mv 000000xxxxxxxxxx.moon moons.d/

1.1.6.重新启动moon服务

service zerotier-one restart

可以用如下命令查看是否有以- MOON结尾的节点,有则证明部署成功,已经加入moon节点
在该moon服务器中运行这个命令是不能显示moon节点的,只能在其他客户端上按后续程序完成操作后运行此命令即可显示连上的moon节点

zerotier-cli listpeers

2.客户端连接并使用云服务器上的Moon

2.1.Linux客户端:

直接在zerotier目录下,创建moons.d文件夹,并且将moon服务器中生成的000000xxxxxxxxxxx.moon文件拷入,并重启服务即可.

2.2.Windows客户端:

打开服务程序services.msc, 找到服务"ZeroTier One", 并且在属性内找到该服务可执行文件路径, 打开该文件夹, 并且在其下建立moons.d文件夹,然后将moon服务器下生成的000xxxxxxxxxx.moon文件,拷贝到此文件夹内…再重启该服务即可(计算机右键管理-找到服务双击打开-找到zerotier one右键重新启动即可)

2.3.通用方案

直接在客户端运行如下命令:zerotier-cli orbit xxxxxxxxxx xxxxxxxxxx(注意是输入2次ID,此ID即为前面生成的xxxxxxxxxx.moon配置文件的xxxxxxxxxx)

最后

在此客户端上用如下命令即可查看是否成功加入moon服务器:

zerotier-cli listpeers

在这里插入图片描述
成功了吧!

后记

1.如果不想将此服务器作为moon了,只需删掉moons.d文件夹中的本机生成的000000xxxxxxxxxxx.moon文件即可。
2.如果客户端要换一个moon服务器,只需删掉moons.d文件夹中的已有000000xxxxxxxxxxx.moon文件,再上传新的moon服务器生成的000000xxxxxxxxxxx.moon文件即可。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

engineerlzk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值