初探:建立 zerotier 的 moon 服务器

(此小段建议不看)如果在 identity 语句下面直接加 IP 地址,经我测试,是不行的。

{
  "id": "284b515a17",
  "objtype": "world",
  "roots": [
    {
      "identity": "284b515a17:0:d0a811e14c:0:5634a0ef9680b49d7fa518b3a013ffc61315fe24c0b4750edba82ed28e7d3936634365517f1e8a94eb28eac63f8c59b4c1a8f4e908bb5f65e95e9d0793afd641",
      "stableEndpoints": [ "192.168.191.1/9993" ],
      "stableEndpoints": [ "192.168.191.2/9993" ],
      "stableEndpoints": [ "192.168.191.3/9993" ]
    }
  ],
  "signingKey": "b324d84cec708d1b51d5ac03e75afba501a12e2124705ec34a614bf8f9b2c800f44d9824ad3ab2e3da1ac52ecb39ac052ce3f54e58d8944b52632eb6d671d0e0",
  "signingKey_SECRET": "ffc5dd0b2baf1c9b220d1c9cb39633f9e2151cf350a6d0e67c913f8952bafaf3671d2226388e1406e7670dc645851bf7d3643da701fd4599fedb9914c3918db3",
  "updatesMustBeSignedBy": "b324d84cec708d1b51d5ac03e75afba501a12e2124705ec34a614bf8f9b2c800f44d9824ad3ab2e3da1ac52ecb39ac052ce3f54e58d8944b52632eb6d671d0e0",
  "worldType": "moon"
}

第三步,将刚才修改后的 moon.json 文件放入刚才的“空”文件夹下,并在该文件夹下运行下面的命令,生成类似这样的标记文件 000000284b515a17.moon,并把它拷贝到 /var/lib/zerotier-one/moons.d 目录里去(该目录不存在,需要手工建立),然后重启 moon 上的 zerotier(也可以重启机器)。

zerotier-idtool genmoon moon.json

(方法一)继续把 000000284b515a17.moon 拷贝到其他机器的同一个目录中去(windows 和 android 的未知就不进行了)。

(方法二)(此小段也建议不看)也可以在其他机器上使用下面的语句来完成(第一个字符串为 The world ID,就是 000000284b515a17,去掉前面的若干个 0,第二个字符串为任意一个 root 的地址。例如本例中的 284b515a17、42b9e61f30、a3d1bcf160,皆可),但我对它的理解也许有误,运行后只建立了一个 moons.d 目录,里面没有任何东西。所以我用的第一种方法。

zerotier-cli orbit 284b515a17 a3d1bcf160

最后,在 moon 端运行下面的语句,查看各个节点情况

zerotier-cli listpeers

得到了这样的结果(第二行里面含代码,被系统自动处理掉了)。下面长的那三行,不是我的,系统自动获得的。

root@ubuntu:~# zerotier-cli listpeers
200 listpeers
200 listpeers 3sa8ecf110 - 0 - LEAF
200 listpeers 284b515a17 - 0 - MOON
200 listpeers 42b9e61f30 - 0 - MOON
200 listpeers a3d1bcf160 - 0 - MOON
200 listpeers d51a6cf416 61.172.51.116/9993;11791;11601;1.00 164 1.2.4 LEAF
200 listpeers 8b29e613b0 - 0 - LEAF
200 listpeers 8841408a2e 45.32.198.130/9993;1752;1752;1.00 105 1.1.5 PLANET
200 listpeers 8bd5124fd6 149.202.200.39/59948;2549;2549;1.00 331 1.2.5 LEAF
200 listpeers 9d219039f3 107.170.197.14/9993;6790;6772;1.00 226 1.1.5 PLANET

注意,在其他机器上运行上面命令,也能看到同样多的 moon 字样,才算成功,否则就把其他机器(212、712)重启一下就OK了。

---------------------------------以下不需进行,此处用于对比,可以不看------------------------------

删除本文产生的所有文件(identity.public、moon.json、000000284b515a17.moon,以及 moons.d 文件夹),并重启 moon,再次运行

zerotier-cli listpeers

看到的是这样的

root@ubuntu:~# zerotier-cli listpeers
200 listpeers
200 listpeers 284b515a17 - 0 - LEAF
200 listpeers 42b9e61f30 61.172.51.116/9993;11791;11601;1.00 164 1.2.4 LEAF
200 listpeers a3d1bcf160 180.175.93.112/1050;6735;6735;1.00 164 1.2.4 LEAF
200 listpeers 8841408a2e 45.32.198.130/9993;12610;12573;1.00 146 1.1.5 PLANET
200 listpeers 8bd5124fd6 149.202.200.39/37807;2604;7449;1.00 159 1.2.5 LEAF
200 listpeers 9d219039f3 107.170.197.14/9993;2604;2587;1.00 202 1.1.5 PLANET

注意,以上删除前后,彼此都是可以 ping 通对方的。当然,这最后一步,可以在进行本文所说的建立 moon 之前进行,便于最后对比。

按照官方的说法:使用 zerotier-cli listpeers 后看到 MOON 代替了 LEAF,就算成功了。我这个算成功了吧?


19.23%(5)

80.77%(21)
上一页 1 2
发表评论?

10 条评论。

  1. 加入moon之后呢,moon服务器需不需要加入zerotier network?那内网怎么通呢 ?

  2. 此文仅作参考,大家请看续篇: http://www.lucktu.com/archives/766.html

  3. 今天又折腾了一天,按照大家的说法,全部使用 /var/lib/zerotier-one/identity.public 来编辑 moon.json,其他的照旧,然后使用 zerotier-cli listpeers 得的语句是这样的(多了一个版本号):

    200 listpeers 284b515a17 – 1.2.4 – MOON

  4. zerotier-idtool generate identity.public 这个方法生成 identity.public 是错误的!这会导致生成出其他的随机ID而不是用来加入该网络的id,应该用 /var/lib/zerotier-one/identity.public 这个来作为identity

  5. zerotier-cli orbit 284b515a17 a3d1bcf160

    第二项的地址,指的是在运行moon的服务器组上任一服务器在开始安装Zerotier程序完成时给你的Zerotier地址。

    • 实际上,这个命令应该运行在那些并不是组成moon的服务器组上,而是单个要加入moon服务器组,依靠moon服务的常规接入节点上。运行这个命令,如果这些要加入的机器,会自动下载那个合成文件。

  6. 这个步骤有问题,请检查第二部!坑死我了!

发表评论

*