OMV搭建ZeroTier的中转服务器

OMV搭建ZeroTier的中转服务器

2020-04-29 93 写

Moon是什么?为什么需要Moon?

ZeroTier通过自己的多个根服务器帮助我们建立虚拟的局域网,让虚拟局域网内的各台设备可以打洞直连。这些根服务器的功能有些类似于通过域名查询找到服务器地址的DNS服务器,它们被称为Planet。然而这里存在一个非常严重的问题,就是Zerotier的官方行星服务器都部署在国外,从国内访问的时候延迟很大,甚至在网络高峰期的时候都没法访问,这也会导致我们的虚拟局域网变得极不稳定,经常掉链子。

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

作为Moon服务器不需要具备太强大的CPU性能/内存空间和存储空间,虚拟机、VPS、或者云服务器甚至一个树莓派都行,当然,这台服务器需要长时间可靠在线并且具有静态IP地址(ZeroTier官网上说公网IP或者内网IP都可以,只是如果用的是内网IP的话,在外网的设备就只能依靠Planet而不能使用moon了)。

访问:阿里云双十二活动,高性能云服务器ECS 84.97元/年

Moon服务器配置过程

1. 首先需要和普通设备一样,下载并安装ZeroTier:

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

安装完成后得到一个ID:

*** Success! You are ZeroTier address [ 9c960b9ac2 ]

2. 加入网络:

sudo zerotier-cli join 3efa5cb78a961967
200 join OK

3.进入ZeroTier的默认安装目录,生成moon配置文件:

cd /var/lib/zerotier-one
sudo zerotier-idtool initmoon /var/lib/zerotier-one/identity.public >> moon.json
bash: moon.json: Permission denied
sudo su
zerotier-idtool initmoon identity.public > moon.json

注意,这里如果使用sudo命令提示权限不够,需要使用sudo su命令切换到root用户进行操作,才能生成moon.json文件。

4.修改moon.json文件。

生成的文件样式如下:

"id": "9c960b9ac2",
 "objtype": "world",
 "roots": [
  {
   "identity": "9c960b9ac2:0:daca38dfc5f3a5e2113178cbecda4b741c85cc3aa6fff9ab86285146bb0c7030a604be1d8fc5489bb54a30c30933ae1a700fb9197cd3905eb8e230200e68f3c8",
   "stableEndpoints": []
  }
 ],
 "signingKey": "676f0c29eb8d6f2f00ce22ee2082b3ec15b21e95dd2f1305d5066c43372c4060fe34379de508b4ecfbcff768629b6e217c07228f80687f77970bfd87b067ed6c",
 "signingKey_SECRET": "39de9f7ab16d0adb035276b7281f73344a0df8af59cf937d4b032078037fd0f97c1006e050c2805882a6807cb636240de1a49797580a24b575ad7d944a17613d",
 "updatesMustBeSignedBy": "676f0c29eb8d6f2f00ce22ee2082b3ec15b21e95dd2f1305d5066c43372c4060fe34379de508b4ecfbcff768629b6e217c07228f80687f77970bfd87b067ed6c",
 "worldType": "moon"
}

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

"stableEndpoints": [ "11.22.33.44/9993" ]

5. 根据之前修改的moon.json文件生成真正需要的签名文件:

root@daweibro:/var/lib/zerotier-one# zerotier-idtool genmoon moon.json
wrote 0000009c960b9ac2.moon (signed world with timestamp 1580398410930)

可以看到生成的文件名称是和服务器之前是到的ID是对应的。

6.创建moons.d文件夹,并把签名文件移动到文件夹内:

sudo mkdir moons.d
sudo mv 0000009c960b9ac2.moon moons.d/

7.只需要重启ZeroTier服务就好了,没必要重启电脑,服务器如果做点什么配置更改都要重启的话那就搞笑了。到这里,moon服务器的配置就算全部完成了。

8.其他机器如果要使用moon服务器,必须要在本地加入之前生成的moon签名文件并重启服务才能生效。有两种方法。一种是在本机的Zerotier安装目录创建moons.d文件夹,然后下载该签名文件放在创建的moons.d目录里,重启服务。另一种是直接使用命令zerotier-cli orbit :

sudo zerotier-cli orbit 9c960b9ac2 9c960b9ac2
200 orbit OK
sudo service zerotier-one restart
zerotier-one stop/waiting
zerotier-one start/running, process 18347
sudo zerotier-cli listpeers
200 listpeers     
200 listpeers 34e0a5e174 147.75.92.2/9993;3061;2939 123 - PLANET
200 listpeers 3a46f1bf30 185.180.13.82/9993;7565;7794 271 - PLANET
200 listpeers 778cde7190 103.195.103.66/9993;7566;7693 373 - PLANET
200 listpeers 992fcf1db7 195.181.173.159/9993;3063;7158 396 - PLANET
200 listpeers 9c960b9ac2 121.41.23.39/9993;3052;3052 11 1.4.6 MOON
200 listpeers af415e486f 35.236.47.35/31469;3063;7873 192 1.4.1 LEAF

上面可见,moon服务器已经可以被其他常规节点访问到了。

使用zerotier-cli orbit命令行都是最简便快捷的办法,只要一行命令就能省去下载再上传的复杂步骤。

有了Moon服务器,效果怎么样?不得不说,改善非常明显。之前用putty通过移动宽带SSH连接到长城宽带后的机器的时候卡的厉害,有时候刚进入系统还来不及输入下一条命令就没反应了,现在用起来和在同一个局域网内一样,完全感觉不到延迟。这简直可以算得上是鼠年来的第一个小成就了!

访问:阿里云双十二活动,高性能云服务器ECS 84.97元/年

标签

评论

0 thoughts on “OMV搭建ZeroTier的中转服务器

回复