ZeroTier 的 Planet/Controller

新年到了,元旦的时候做了数据的备份,同时Blog也全新升级了版本,便于维护,折腾了2天吧~

去年新生来了后,全面推进实验室信息化建设,Nextcloud网盘已经成为主流,不仅用于数据备份、在线协助,而且对于qPCR、照胶电脑的数据实现了网上共享,同时打印机电脑也实现了无U盘打印…数据方面已经初步完成了上网。

Onenote等office365系列也被新生认同,协同处理的流程越来越熟练~

唯一的遗憾在于建立了labwiki,但是很多实验室内部的资料不太想共享到公共网络中,简单设置了网页加密,但是基本就是皇帝的新装,不实用,所以仍在思考解决方案,局域网肯定是最佳的,但是实验室几个房间隔的太远,校园网、电信和移动网络都有,很难实现网线直连、交换机之间交流,或者是我这个假IT的能力不够…之前一直听说Zerotier神器,前几天又看见知乎推荐了这个VLAN工具,忍不住试了试,居然完美解决了我的问题,实现了异地异网的局域网构建,从而将服务器的Wiki网页只对局域网成员公开,实现了内部数据的共享和协助,同时提高了网盘的下载速度,因此在这里记录下相关流程,参考了很多资料,就不一一引用了= =!

Zerotier官网注册

进入官网直接走流程注册即可,我用的google账号,得到Network ID,即建立了自己的局域网,并且拥有了管理界面,基于免费的公共通道。不过我选择私有,每个加入的电脑都需要手动确认,作为实验室内部的局域网,这个肯定是有必要的。

Windows和Linux安装app登陆

Linux

If you’re willing to rely on SSL to authenticate the site, a one line install can be done with:

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

Then run

sudo zerotier-cli orbit {Network ID} # 输入之前得到的Network ID

sudo zerotier-cli listpeers # 查看节点列表,出现根服务器的 MOON 节点表示成功

Windows

下载相关的软件,安装即可,链接:https://www.zerotier.com/download/。

输入Network ID即可加入局域网。

MOON根目录服务器

重难点在MOON根目录服务器设置,利用免费的公共通道不仅有延迟,而且国内不稳定,因此利用云服务器搭建中心节点进行中转很有必要,zerotier 也支持自己搭建中心节点服务器,也叫做 MOON 服务器,ZT官方的叫Planet,这命名非常符合我这个科幻迷的胃口,下面是它的搭建步骤:

安装并加入服务器

curl -s https://install.zerotier.com/ | sudo bash # 同上,下载安装

sudo zerotier-cli orbit {Network ID} # 加入

sudo zerotier-cli listpeers # 查看

sudo chmod 777 /var/lib/zerotier-one # 这里为了有写入文件的权限
cd /var/lib/zerotier-one
sudo zerotier-idtool initmoon identity.public > moon.json

修改配置文件 moon.json,主要是添加公网 IP,修改内容如下,9993 是默认端口

"stableEndpoints": [ "1.1.1.1/9993" ] # 修改为VPS公网IP/9993,记得VPS打开端口

在 /var/lib/zerotier-one 目录下新建 moons.d 文件夹中,并将生成的 moon 文件放到该文件夹下,我的 moon 文件名为 000000efe9e9a259.moon

sudo zerotier-idtool genmoon moon.json # 生成 moon 文件
mv 000000efe9e9a259.moon moons.d/ # 移动 moon 文件
sudo systemctl restart zerotier-one.service # 重启 ZT

还需要注意 moon.json 中的 id 值,它是 MOON 服务器的 ID (MOON-ID),是一个 10 位的字符串,我的为 XXXXXXXXXXX,也可以用 sudo zerotier-cli info 查看,后面会用到。

内网节点配置(本地设备)

Linux

sudo zerotier-cli orbit MOON-ID MOON-ID # 注意这里是两次根节点的ID

如果没返回 200 orbit OK 的话,需要手动拷贝生成的 moon 文件 000000efe9e9a259.moon 文件到常规节点的机器上,位置如下:

Windows: C:\ProgramData\ZeroTier\One
Linux: /var/lib/zerotier-one
FreeBSD/OpenBSD: /var/db/zerotier-one
sudo systemctl restart zerotier-one.service # 重启 ZT

sudo zerotier-cli listpeers # 查看节点列表,出现根服务器的 MOON 节点表示成功

Windows

以管理员身份打开 PowerShell,将命令中的两组 xxxxxxxxxx 都替换成 moon 的节点ID

PS C:\Windows\system32> zerotier-cli.bat orbit xxxxxxxxxx xxxxxxxxxx

退出之前的moon,比如某人不小心重置VPS服务器了= =!

PS C:\Windows\system32> zerotier-cli.bat deorbit xxxxxxxxxx

检查是否添加成功

PS C:\Windows\system32> zerotier-cli.bat listpeers

Windows 系统的默认程序目录位于 C:\Program Files (x86)\ZeroTier\One。

效果检测

最后将实验室服务器电脑加入ZT,测试了Wiki网页,流畅运行…所以ZT比想象中简单,非常容易就实现了之前考虑很久的难题,其实吧,和做实验一样,有了Idea就大胆测试,很多时候自己的直觉是很准确的,以后就可以更好的在实验室推进信息化…

总结

敢想敢做!致谢开源!

Jiannan Zhang
Jiannan Zhang
Associate Professor

My research interests include Avian Physiology, Endocrinology and Metabolism.

Related