Moon是什么?为什么需要Moon?
ZeroTier通过自己的多个根服务器帮助我们建立虚拟的局域网,让虚拟局域网内的各台设备可以打洞直连。这些根服务器的功能有些类似于通过域名查询找到服务器地址的DNS服务器,它们被称为Planet。然而这里存在一个非常严重的问题,就是Zerotier的官方行星服务器都部署在国外,从国内访问的时候延迟很大,甚至在网络高峰期的时候都没法访问,这也会导致我们的虚拟局域网变得极不稳定,经常掉链子。为了应对网络链接的延迟和不稳定,提高虚拟局域网的速度和可靠性,Zerotier允许我们建立自己的moon卫星中转服务器。
作为Moon服务器不需要具备太强大的CPU性能/内存空间和存储空间,虚拟机、VPS、或者云服务器甚至一个树莓派都行,当然,这台服务器需要长时间可靠在线并且具有静态IP地址。在比较了多家云服务器提供商后,我选择三丰云 这家,经测试了三丰云的免费产品之后感觉确实和别的云服务的不一样,申请简单、管理界面使用方便速度快的惊人。 它还可以试用免费虚拟主机、免费云服务器等服务功能,有需要的朋友可以去 https://www.sanfengyun.com 申请。
下面是在三丰云上配置Moon的过程:
前期准备:首先去 三丰云 https://www.sanfengyun.com注册账号,然后登录管理界面选择产品中的免费产品,开通免费云服务器,安装系统镜像我就直接选了unbuntu14,之前一直用的ubuntu,比较熟。
配置Moon的步骤(Linux):
1、安装 moon,zerotier官方提供了比较方便的安装方式,一条命令即可完成:
curl -s https://install.zerotier.com/ | sudo bash
安装完成后得到一个ID:
** Success! You are ZeroTier address [ 9c960b9ac2 ]
2.生成moon配置文件
cd /var/lib/zerotier-one
sudo zerotier-idtool initmoon identity.public > moon.json
3. 修改配置文件moon.json,主要是添加公网IP,修改内容如下, 9993是默认端口
vim moon.json #找到对应行修改内容
"stableEndpoints": [ "你的公网IP/9993" ]
注:公网ip一定要配置正确,Zerotier依靠此配置去连接moon.后面的端口若没有改变则默认都是9993端口, 且是UDP协议的, 此处在防火墙上需要开放UDP,否则是连接不上Moon。
4.生成moon文件
sudo zerotier-idtool genmoon moon.json
执行该命令后,会在在/var/lib/zerotier-one目录下生成一个0000009c960b9ac2.moon文件,可以看到生成的文件名称是和服务器之前是到的ID是对应的。
5.使moon配置文件生效:
在/var/lib/zerotier-one目录下,新建一个 moons.d 文件夹,并将刚生成的moon配置文件放到该文件夹下。
mv 00000018fasd2319.moon moons.d/
6. 重新启动moon服务器,由于使用命令安装时会自动注册为服务,所以可以依靠以下命令完成启动或重启。
service zerotier-one restart #服务重启命令
经过以上配置,服务器上的moon即配置并应用完闭.
7. 客户端连接并使用服务器上的Moon
a、直接在zerotier目录下,创建moons.d文件夹,并且将生成的000000xxxxxxxx.moon文件拷入,并重启服务即可。
b、另一种是直接使用命令zerotier-cli orbit <id> <id>,不管是Linux还是Windows,使用zerotier-cli orbit命令行都是最简便快捷的办法,只要一行命令就能省去下载再上传的复杂步骤。
8.最后输入zerotier-cli listmoons这个命令,会列出现在在网的所有zerotier moon 服务器,找一找有没有你刚刚设置的moons,有就完事儿啦。