在GCP上安装Zerotier的Moon服务器

原本速度虽然不快,但是好歹也有1M左右的传输速度,但是架不住时常抽风,今天开始又完全不通了。

title

而之前是这样的

title

查阅文档后发现,moon的搭建是为了补充根节点在国外,速度慢,且不稳定的一个补充方案,以便使zerotier能在各种情况都能稳定运行的一种保障.

GCP有公网地址,直接就它了。

1. 在GCP上安装Zerotier

用官网上提供的命令行:

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

开始安装:
title

安装完成:
title

2. 加入网络

title

3. 获取网络情况

title

4. 生成moon.json
进入 /var/lib/zerotier-one 文件夹
title

运行下面的语句

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

会在当前目录下产生一个新文件 moon.js

直接运行vi moon.js

title

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

5. 需要修改stableEndpoints

增加做moon机器的IP地址信息如下:

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","192.168.191.1/9993"]
}
],
"signingKey": "3475482010c71caf78bf00573552ebcd53cd83b2e09572374eaeae2383c9773d9d0c697e4ee0b3ae4a74e20abd04651c9fe6a339a1077f47bbeedce2a10d44f1",
"signingKey_SECRET": "294e4d31e71847eeea842aa60c2aba603f95666263970bb39e21eb4c349ee77c265bf903fce3b1870f9825346b87de7861b1538f24006d93e20b90f1a9bd9913",
"updatesMustBeSignedBy": "3475482010c71caf78bf00573552ebcd53cd83b2e09572374eaeae2383c9773d9d0c697e4ee0b3ae4a74e20abd04651c9fe6a339a1077f47bbeedce2a10d44f1",
"worldType": "moon"
}

其中
34.84.xxx.xxx 为公网地址
192.168.191.1 为zerotier分配的地址,后台设置时已经取消了自动分配;

6. 建立私有网络的zerotier标志性文件

1
zerotier-idtool genmoon moon.json

运行上面的命令以后,就会在该文件夹下生成类似这样的一个新文件:0000003648b35427.moon。然后把他们拷贝到做 moon 机器的 /var/lib/zerotier-one/moons.d 目录里去(这个目录是拷贝之前手工建立的),然后重启 zerotier-one。

7. 重启服务

网上的命令是这样的

1
2
killall -9 zerotier-one
zerotier-one -d

但是我执行后遇到错误,所以最简单的办法是直接reboot

8. 客户端配置

  • 在没有加入moon时,运行zerotier-cli listpeers查看客户端的连接情况

title

可以看到都是planet和leaf,没有moon;

  • 不管Windows还是Mac OS,都需要以管理员身份运行:
    zerotier-cli orbit 3648b35427 3648b35427

  • 再次用 zerotier-cli listpeers 查看客户端的连接情况

title

  • 注意红色的部分,看到了moon有木有?

title

参考文档:

ZeroTier-One配置moon心得
ZeroTier-One搭建moon完整过程
建立自定义 ZeroTier Moons 服务器
ZeroTier moon 设置教程
初探:建立 zerotier 的 moon 服务器
再探:创建 zerotier moon 其实很简单