初探:建立 zerotier 的 moon 服务器

前阶段尝试了下建立zerotier网络,觉得还是很容易的,很快就建起来了,而且对于它的直连印象深刻,确实比较容易,但是又对它高峰时段的断网,感到很气愤!近来得到消息,可以自建服务器(实际上是中转服务器,官方的叫法是 moon),实现在官网很卡的情况下,用我们自己的服务器中转。这样即使在很繁忙的时段,也可以保证一定的内网速度。现在把我的经历写下来,供大家参考。

本篇文章仅做参考,看最新文章吧:http://www.lucktu.com/archives/766.html

关于安装及其使用方法,网上有很多文章,搜索一下很容易得到。这个软件支持的系统也很多,有windows、linux、android、苹果、群晖、qnap等等,基本上都考虑到了。我们常玩的路由器上也可以安装,例如下面两篇文章就是介绍路由器上的安装方法的,大家可以看看(注意第二教程里面有一个地方install写成intall了,少了一个s)。

http://www.right.com.cn/forum/thread-192351-1-1.html

http://www.right.com.cn/forum/thread-249712-1-1.html

下面我说说我建立 moon 的过程,给有此想法的朋友一个参考,少走一些弯路。

我计划用一台 vps 作为中转服务器,以代替官方服务器高峰时段的断网,这台机器其实按照官方的说法,要求很低即可,我的是搬瓦工vps,这台机器在下面的叙述里我就叫它 moon 吧。另外两个机器是群晖712+和212J,外加本地的 windows7 计算机,主要做调试使用。

官方关于 moon 的介绍

https://www.zerotier.com/manual.shtml#4_4

主要命令的使用方法

https://github.com/zerotier/ZeroTierOne/blob/master/doc/zerotier-idtool.1.md

主要程序的安装方法,moon上面是 ubuntu-16.04-x86_64 系统,直接运行网页(https://www.zerotier.com/download.shtml)上的那一串代码即可(见下面代码框)。群晖 712 和 212,先从官网上下载,然后在插件后台,以上传第三方插件的方式进行安装。win7从官网下载 windows 版本安装即可,不过前提是你必须先安装 .Net Framework_V4.5 。

curl -s 'https://pgp.mit.edu/pks/lookup?op=get&search=0x1657198823E52A61' | gpg --import && \
if z=$(curl -s 'https://install.zerotier.com/' | gpg); then echo "$z" | sudo bash; fi

下面的实践是根据官方教程来进行的4.4. Creating Your Own Roots (a.k.a. Moons)

第一步,要求你要有独立的IP地址,机器要稳定可靠,可以被轻松访问到,这个我的搬瓦工算是满足了。这个是做 moon 用的

第二步,准备工作,使用 zerotier-idtool,在所有机器上生成 identity.public 文件(windows 和 android 不知怎么生成,估计目前还不行,都没有这命令),并下载到本地备用。(此步大家认为有问题,请看了后面的评论再实践)

zerotier-idtool generate identity.public

在 moon 上制作一个空文件夹,将moon上的 identity.public 放入,然后在本文件夹下运行下面的命令,生成 moon.json 文件

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

得到的 moon.json 文件,其内容大致如下

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

下载到本地,使用 EditPlus 编辑 moon.json 文件,增加局域网内一些机器的信息,identity 后面的一些代码,从各个机器上的 identity.public 中读取的。

{
  "id": "284b515a17",
  "objtype": "world",
  "roots": [
    {
      "identity": "284b515a17:0:d0a811e14c:0:5634a0ef9680b49d7fa518b3a013ffc61315fe24c0b4750edba82ed28e7d3936634365517f1e8a94eb28eac63f8c59b4c1a8f4e908bb5f65e95e9d0793afd641",
      "stableEndpoints": [ "192.168.191.1/9993" ]
    },
    {
      "identity": "42b9e61f30:0:4d685b4d06f4eddf3d633f1d229735646387611f04af4168cce5746624e32255eab7465c38b250e65fdaf3b655b4634a08fcf200bfebbf0725187aa26c42c81f:7807f6600978d2de2ca6cf8401b69e153b7d2846d2581b703c56dd3acb1b7dca19289693bad1ab6ae6409567255c3c3c0de282663701c243652eb7e6a85e2c0e",
      "stableEndpoints": [ "192.168.191.2/9993" ]
    },
    {
      "identity": "a3d1bcf160:0:a9b65c8a122c713fdbc714ffbff0acbbf655c57c3c2769f54d215569816fdb3f1bf69b98659aca26fc27288082422e7228dfac3068c5581f48d1a2c27b238e92:a1180e1be97cb5231bc9c5061a420a06257a6fbbde22dd8a5d0b8c6aab398939ac9198473c168241efa6cb08085d7a97fcd4b0b22ad82a2061ff2ebc1fa34f1a",
      "stableEndpoints": [ "192.168.191.3/9993" ]
    }
  ],
  "signingKey": "b324d84cec708d1b51d5ac03e75afba501a12e2124705ec34a614bf8f9b2c800f44d9824ad3ab2e3da1ac52ecb39ac052ce3f54e58d8944b52632eb6d671d0e0",
  "signingKey_SECRET": "ffc5dd0b2baf1c9b220d1c9cb39633f9e2151cf350a6d0e67c913f8952bafaf3671d2226388e1406e7670dc645851bf7d3643da701fd4599fedb9914c3918db3",
  "updatesMustBeSignedBy": "b324d84cec708d1b51d5ac03e75afba501a12e2124705ec34a614bf8f9b2c800f44d9824ad3ab2e3da1ac52ecb39ac052ce3f54e58d8944b52632eb6d671d0e0",
  "worldType": "moon"
}

IP 就是 zerotier 局域网中的 IP,见你的 zerotier 管理页面,我没有 IPV6 ,所以把后面的删除了,官方给出的 IP 格式是这样的。

"stableEndpoints": [ "10.0.0.2/9993","2001:abcd:abcd::1/9993" ]

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. 这个步骤有问题,请检查第二部!坑死我了!

回复给 lucktu ¬
取消回复

*