Zerotier 介绍

zerotier定义了几个专业名词:
PLANET 行星级的服务器,zerotier各地的根服务器,有日本、新加坡等地。
MOON 卫星级服务器,用户自建的私有根服务器,起到中转加速的作用。
LEAF 相当于各个枝叶,就是每台连接到该网络的机器节点。
官文功能介绍及二次开发文档

1、注册云服务器账号,免费申请云服务器

配置如下(申请过程中需要实名认证花了1元钱)
在这里插入图片描述

2、我的云服务器安装的是Ubuntu16.04纯净版

Linux

3、Xshell远程连接Linux云服务器

三丰云服务器的ubuntu系统安装好后一直没法远程连接,三丰云自带的VNC连接一直显示连接失败,然后我安装了Xshell,下载链接
在Xshell中输入主机的公网IP、SSH协议(默认端口号22)、Linux用户名(初始是root)、用户密码

4、远程连接上Linux后,搭建Moon

4.1 安装配置ZeroTier客户端

执行命令: curl -s https://install.zerotier.com/ | sudo bash

4.2 启动安装好的ZeroTier

启动Zerotier:systemctl start zerotier-one.service
设置开机自启:sudo systemctl enable zerotier-one.service

4.3 将安装好ZeroTier的加入你事先注册好的ZeroTier虚拟局域网中

执行命令:sudo zerotier-cli join e123XXXXXX

此处的e123XXXXXX是本人ZeroTier虚拟局域网的ID,请更改为你本人自己的ID
在这里插入图片描述
注:Linux系统申请加入ZeroTier局域网后,需要在你登陆ZeroTier官网对新加入的Linux设备打勾,并赋予它一个ZeroTier局域网下的内网IP
在这里插入图片描述

4.4搭建ZeroTier的Moon中转服务器,生成moon配置文件

进入文件夹:cd /var/lib/zerotier-one/

生成moon.json:zerotier-idtool initmoon identity.public > moon.json

4.5修改配置文件moon.json

(主要是添加公网IP,公网IP是服务器的IP,9993是zerotier的默认端口,你服务器防火墙上需要开放UDP:9993,否则是连接不上Moon的)使用vi编辑

vi编辑:执行命令:vi moon.json

出现如图,没有,接按界面提示按enter键继续
在这里插入图片描述
进入文件后,按 i 键修改stableEndpoints,如图
此处的111.67.123.456就是公网IP,三丰云上Linux云服务器的公网IP地址
在这里插入图片描述
按esc键 退出编辑
VIM命令参考

按i键 在当前位置生前插入
按ESC键 跳到命令模式
:wq 保存文件并退出vim

4.6 生成签名文件

执行命令:zerotier-idtool genmoon moon.json
在这里插入图片描述
执行之后会生产一个000000xxxx.moon的文件,将这个文件通过宝塔面板下载本地,xxxx是随机的如图,记住这个后面要用

4.7 将moon节点加入网络

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

建立文件夹:mkdir moons.d
移入文件:mv 000000xxxx.moon moons.d/

在这里插入图片描述
在这里插入图片描述
此处的mv 000000xxxx.moon 是上一步生成的文件名,请改成你自己本人的。

4.8.重启中转服务器的 zerotier-one

执行命令:

systemctl restart zerotier-one
service zerotier-one restart 
/etc/init.d/zerotier-one restart
service zerotier-one start 
zerotier-one -d 
#随便选一个,根据系统版本不同有些会无效


4.9 将moos.d文件夹中的000xxxx.moon文件下载到本地

(1)切换到moos.d文件夹

cd moons.d

在这里插入图片描述
(2)下载
Xshell下载三丰云Linux云服务器上的文件:Xshell下载、上传文件

sz 000000xxxxxxxxxx.moon

注意:如果执行yum install lrzsz -y不成功,可以执行如下命令安装lrzsz

sudo apt-get install lrzsz

5、测试

对客户端安装zerotier后,将配置好的moon文件配置到客户端,并重启zerotier完成与moon的连接。
配置客户端:

1、Linux:

使用之前步骤中 moon.json 文件中的 id 值 (10 位的字符串,就是xxxxxxxxxx),不知道的话在服务器上执行如下命令可以得到id。

执行命令:grep id /var/lib/zerotier-one/moon.json | head -n 1

然后在客户端机器里执行命令:

执行命令:zerotier-cli orbit b66b85a05b b66b85a05b

此处的b66b85a05b刚刚在服务器得到的ID值

2、Windows:

打开服务程序services.msc, 找到服务"ZeroTier One", 并且在属性内找到该服务可执行文件路径,并且在其下建立moons.d文件夹,然后将moon服务器下生成的000xxxx.moon文件,拷贝到此文件夹内…再重启该服务即可(计算机右键管理-找到服务双击打开-找到zerotier one右键重新启动即可)

路径一般是Windows: C:\ProgramData\ZeroTier\One

测试是否成功(客户端cmd运行)若有出现你的服务器IP地址,即可证明moon连接成功
注: 下图Moon服务器那行不能出现-1,-1表示Moon中转节点连接不成功。如果出现-1,参考FAQ中问题2解决
执行命令:zerotier-cli listpeers
在这里插入图片描述

参考博客:
https://zhuanlan.zhihu.com/p/405979685
https://www.bilibili.com/read/cv5438022/

FAQ

1、中途遇到一个报错
报错如下:
zerotier-one_x64.exe: authtoken.secret not found or readable in C:\ProgramData\ZeroTier\One (try again as root)在这里插入图片描述
最后找到问题是authtoken.secret文件权限的问题
解决方法:https://blog.csdn.net/qq_39518314/article/details/119979511

可以用cmd命令 ping 查看Zerotier中两个内网之间的延迟,如果是国内的Moon中转节点,延迟应该很低,不会超过100ms。如果Zerotier没有走Moon中转节点,延迟就会很高,几百ms。
2、如果连接不上Moon服务器,参考博客

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐