Zerotier Moon服务器搭建

上一篇文章已经讲了如何安装zerotier进行组网,但是想达到直连的效果条件比较苛刻。想达到最高速度,需要宽带和手机的NAT类型是FullCone,而且最好都是同运营商。然而有相当多的时候网络条件是不可控的,也不是所有宽带的NAT类型都是FullCone,一些地方运营商将宽带的NAT类型调成Symmetric,又或者从移动到电信网络连接不稳定。这种时候网络连接的稳定性会大幅下降,甚至导致一些时候无法直连被迫走zerotier官方的中转服务器,这个服务器位于国外,在国内访问的延迟和速度都不如人意。
zerotier的体验也符合木桶效应,直连的长板很长,走中转的短板很短,在一些时候会带来很多不好的体验。zerotier允许用户自定义中转服务器,让被迫走中转时的速度和延迟都比较让人可以接受。同时,购买的VPS通常都是BGP网络,也就是同时接入多个运营商,使用中转服务器可以一定程度上提高跨运营商组网的体验。

什么是Moon服务器

Moon服务器就是上面说的中转服务器,在zerotier中,每个客户端叫做LEAF,官方的节点叫做PLANET,个人的节点叫做MOON。

搭建Moon服务器

首先购买一台vps

可以想办法开一个阿里云学生机,9块一个月。有了vps就不仅可以装zerotier还可以装frp。选购vps不是本文的内容,这部分教程比较长,需要单独开几篇文章。

安装zerotier

执行官方一键安装脚本

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

安装完成后执行

zerotier-cli

检查是否安装成功

zerotier-cli

接着先把vps加入zerotier网络,xxxxx为zerotier的Network ID,可以在后台看到。

zerotier-cli join xxxxx

join

加入以后去后台允许一下,接着进行moon相关配置,先导出moon.json

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

使用nano编辑文件

nano moon.json

moon.json

生成的文件大概是这样的,只需要修改stableEndpoints,格式为”vps的公网IP/端口号”,如果vps有v6地址也可以一起写上。

"stableEndpoints": ["47.xx.xx.xx/9993","2004:xxxx:xxxx::xxx/9993"]

编辑完成后按ctrl+S保存按ctrl+X退出。下一步应用配置。

zerotier-idtool genmoon moon.json

这一步做完还需要修改防火墙,打开9993端口。如果使用的是aliyun的机器还需要在aliyun的控制台放行9993端口。

客户端连接Moon服务器

不管是哪个平台首先都需要知道Moon节点的id,这个id可以通过在vps执行zerotier-cli info获得。下面简称id。

群辉

假设已经接入了zerotier局域网。在控制面板打开ssh,连接ssh以后执行

zerotier-cli orbit id id

后面两个id输入moon节点的id,要输入两次!显示200 orbit OK说明加入成功。
synology-join-moon

windows

右键windows左下角开始菜单,点击命令提示符(管理员)或者以管理员模式运行Powershell,在命令行窗口内输入

zerotier-cli orbit id id

后面两个id输入moon节点的id,要输入两次!显示200 orbit OK说明加入成功,操作和群辉一样。
windows-join-moon

移动端

官方暂时不支持。zerotier官方已经注意到这个问题,并且说将在后续版本添加连接moon的功能。

效果

接入4g热点,把路由器的Fullcone NAT关闭使得zerotier无法直连,然后ping家中的nas,延迟只有45ms。
ping
用iperf测试回连家中的软路由的速度,速度可以跑满VPS的带宽(学生机的带宽为5mbps,好处是延迟低价格合适)
iperf

总结

有了自己搭建的国内moon服务器,在NAT类型无法直连的情况下也能达到一个相对理想的速度。有人说zerotier不如frp等软件,我的看法是这些软件各有利弊。

zerotier:

优点:一旦组网,里面的设备可以相互连接任意端口,不需要每次修改配置文件。在NAT类型允许的情况下,可以直连速度快。自己用不需要备案,安全性也高。
缺点:使用UDP互联,一些运营商会对UDP进行限速或者其他限制操作,连接没那么稳定。NAT类型是Fullcone的宽带不是很多。

frp:

优点:可以使用tcp,udp,kcp等协议进行连接,连接稳定。直接将本地端口映射到服务器的某个端口上,可以通过这个网站给别人分享链接。
缺点:如果要远程访问NAS的某些其他端口,需要修改frpc配置文件并且重启服务,比较麻烦。国内的服务器使用http服务需要备案,否则请求会被拦截。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

轻松实现无公网IP高速远程访问NAS!zerotier从原理到实践 下一篇