耳语海岸
艾泽拉斯避难谷地

内网穿透系列:ZeroTier技术中级

一、前言

之前写的《内网穿透系列:原理介绍》,Zerotier可以让你和你的朋友一起加入大型局域网,那么有朋友说了,我按你之前写的做好了部署,但有时候感觉延迟挺高的。

对的,那篇文章最后介绍过了,ZeroTier通过自己的Moon和Planet服务器帮助我们建立虚拟的局域网,让虚拟局域网内的各台设备可以打洞直连。然而这里存在一个非常严重的问题,就是Zerotier官方的服务器都部署在国外,从国内访问的时候延迟很大,甚至在网络高峰期的时候都没法访问,这也会导致我们的虚拟局域网变得极不稳定,经常掉链子。

为了应对网络链接的延迟和不稳定,提高虚拟局域网的速度和可靠性,Zerotier允许我们建立自己的Moon卫星中转服务器。

二、Moon配置

作为Moon服务器不需要具备太强大的CPU性能/内存空间和存储空间,虚拟机、VPS、或者云服务器甚至一个树莓派都行,当然,这台服务器需要长时间可靠在线并且具有静态IP地址。这里我以Ubuntu环境的云服务器作为介绍。

(一)安装

下载并安装ZeroTier:

curl -s https://install.zerotier.com/ | sudo bash

安装完成后得到一个ID:

*** Success! You are ZeroTier address [ 1c110b9ac2 ]

(二)加入网络

sudo zerotier-cli join 3efa5cb78a961967

3efa5cb78a961967是你网络ID,请替换为你自己的,执行后会出现:200 join OK

代表加入成功,请参照之前文章,在官网勾选加入。

(三)生成配置

依次输入:

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

接着输入vim moon.json编辑文件,样式如下:

"id": "1c110b9ac2",
"objtype": "world",
"roots": [
{
"identity": "9c960b9ac2:0:daca38dfc5f3",
"stableEndpoints": []
}
],
"signingKey": "676f0c29eb8d6f2f00ce22ee2082b3ec",
"signingKey_SECRET": "39de9f7ab16d0adb035276b7281f73344",
"updatesMustBeSignedBy": "676f0c29eb8d6f2f00ce22ee",
"worldType": "moon"
}

这里我们需要根据自己服务器的公网静态IP,修改stableEndpoints那一行格式如下,其中11.22.33.44为你的公网IP,9993是默认的端口号:

"stableEndpoints": [ "11.22.33.44/9993" ]

根据moon.json文件生成真正需要的签名文件.moon

sudo zerotier-idtool genmoon moon.json

输出:

wrote 0000009c960b9ac2.moon (signed world with timestamp 1280398410930)

执行该命令以后会在软件目录下生成一个类似000000xxxxxxxxx.moon的文件,妥善保存该文件,因为要使用moon服务器,必须在所有客户端上面都发送一个这个文件。

(四)配置生效

移动.moon签名文件到moons.d目录下并且重启服务,注意替换自己的moon文件名字:

cd /var/lib/zerotier-one && mkdir moons.d && mv 000000*.moon moons.d && service zerotier-one restart

三、客户端配置

其他机器如果要使用Moon服务器,必须要在本地加入之前生成的.moon签名文件并重启服务才能生效,有两种方法:

(一)Linux系统

(1)手动方式

一般是 /var/lib/zerotier-one 目录下:

cd /var/lib/zerotier-one && mkdir moons.d

然后将 .moon 文件移动到 moons.d 目录下。然后执行

sudo service zerotier-one restart

(2)命令方式

sudo zerotier-cli orbit 9c960b9ac2 9c960b9ac2

出现200 orbit OK后,执行:

sudo service zerotier-one restart

(二)Windows系统

直接拷贝文件至C:\ProgramData\ZeroTier\One\moons.d目录下即可,通常默认配置均为这个路径,不然请从服务中找到文件路径。然后任务管理器内,重启服务。

(三)检查连接

Windows需要用管理员模式启动cmd输入,Linux直接输入:

zerotier-cli listpeers

如果输出中出现一条最后为MOON的记录,说明已经成功连接Moon服务器,如:

zerotier-cli listpeers
200 listpeers <ztaddr> <path> <latency> <version> <role>
200 listpeers id myip/9993;6012;1706 -1 1.8.4 MOON
200 listpeers 62f865ae71 50.7.252.138/9993;6012;1070 -294 - PLANET
赞(2) 打赏
未经允许不得转载:GSWXY » 内网穿透系列:ZeroTier技术中级

评论 抢沙发

评论前必须登录!

立即登录   注册

耳语海岸

WLK版本,定位于RP服务器,趣味养老,请注意:本服仅为技术交流和学习使用,欢迎广泛传播,不作为商业用途。

①群已满加入②群

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫