Zerotier 搭建手册(含Moon节点)


一、前言
没有申请到公网IP,内网穿透只好选用zerotier,好处就是P2P端点的带宽,不受云服务器和FRP带宽限制。

打算用zerotier组建了笔记本——NAS——手机三个端,满足NAS在IPV4大内网环境下的相互访问。

zerotier主服务器在外网会有网络波动风险,打算自行构建Moon节点缓解并提升访问速度。

二、新建网络
https://www.zerotier.com注册账号,登陆后点击Create A Network 创建一个虚拟网络,复制下NETWORK ID备用。

enter description here

点进去修改下信息,最好选择Private安全一些。
enter description here

三、window端操作

zerotier下载地址:https://www.zerotier.com/download/,选择Window下载。 

安装之后,桌面任务栏右下角选择Join New Network加入网络,粘贴之前复制的NETWORK ID。

回到zerotier网页,往下翻到 Members条目,点击Auth?给授权。


至此,Windows操作系统的笔记本已经加入该虚拟网络。
四、手机端操作
ios需要科学上网其他区的Apple ID下载zerotier App,安卓需要去应用商店下载zerotier App,安装完毕后同样选择加入新网络,填写NETWORK ID即可,记得在软件的设置中勾选使用手机流量数据(ios不用)。

五、NAS&Linux端操作
NAS中zerotier的安装可参考群晖安装docker zerotier_docker安装zerotier_xiliu542的博客-CSDN博客

采用docker的方式在黑群晖中安装zerotier,鉴于最近群晖docker套件中搜索注册表总是抽风,直接ssh安装。

ssh进入NAS,输入下面命令搜索。

1
sudo docker search zerotier-synology

输入下面命令安装。

1
sudo docker pull zerotier-synology

enter description here
安装后返回群晖docker,在映像中选择zerotier-synology并配置。
enter description here
配置内容如下:
enter description here
enter description here
enter description here

enter description here
enter description here
双击这个容器出现下图选择“终端机”,点击“新增”右边的下三角标按钮,选择”通过命令启动”。
enter description here
出现对话框后输入zerotier-cli join 粘贴之前复制的NETWORK ID。
enter description here
然后点击左侧的zerotier-cli,显示 200 join OK。
enter description here
继续去网页授权,现在这三个端可以互相访问,访问IP为Managed IPs
enter description here

五、Moon搭建和优化

zerotier默认使用全球的服务节点,高峰时刻不稳定,官方也有说明,可以搭建自己的moon服务器作为跳板,加速网络,但应注意需要公网IP,为此选择三丰云的免费云服务器(需要注册及简单的实名认证)。

我选择了以下配置,请记住公网IP:
enter description here
moon 服务器搭建较为简单,登录云服务器后,如下下载安装:

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

进入 zerotier 配置目录。

1
cd /var/lib/zerotier-one

生成 moon.json 签名文件,并编辑

1
zerotier-idtool initmoon identity.public >>moon.jsonvi moon.json

将你的公网IP添加到”stableEndpoints”: [] 中,类似 “stableEndpoints”: [ “xxx.xxx.xx.xxx/9993”] 这种。后面的端口若没有改变则默认都是9993端口, 且是UDP协议的, 此处在防火墙上需要开放UDP,否则是连接不上Moon的.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"id": "3648b35427",
"objtype": "world",
"roots": [
{
"identity": "3648b35427:0:49fbcc3fb665ac07dbbf5825a63d771d38dcc37f94393de88766d3a39a488156e02f6d816e3a3a3684af5d2385b7401944ce54651fd8de6b2a13f4d8d0ec9a5c",
"stableEndpoints": ["34.84.xxx.xxx/9993"]
}
],
"signingKey": "3475482010c71caf78bf00573552ebcd53cd83b2e09572374eaeae2383c9773d9d0c697e4ee0b3ae4a74e20abd04651c9fe6a339a1077f47bbeedce2a10d44f1",
"signingKey_SECRET": "294e4d31e71847eeea842aa60c2aba603f95666263970bb39e21eb4c349ee77c265bf903fce3b1870f9825346b87de7861b1538f24006d93e20b90f1a9bd9913",
"updatesMustBeSignedBy": "3475482010c71caf78bf00573552ebcd53cd83b2e09572374eaeae2383c9773d9d0c697e4ee0b3ae4a74e20abd04651c9fe6a339a1077f47bbeedce2a10d44f1",
"worldType": "moon"
}

生成 .moon 签名文件

1
zerotier-idtool genmoon moon.json

目录下会有一个.moon后缀文件生成,把它复制到moon.d文件夹下,重启systemctl restart zerotier-one.service,moon服务器搭建成功。

其他端接入这个moon,先复制服务器的id,通过 zerotier-cli info 查看。

windows通过管理员运行cmd,输入 zerotier-cli.bat orbit Moon服务器的id Moon服务器的id

linux直接输入 zerotier-cli orbit Moon服务器的id Moon服务器的id

最后通过 zerotier-cli listpeers 有出现MOON成功。
enter description here
六、总结
互相ping,看下延迟。

结束。