基本概念

ZeroTier is a smart Ethernet switch for planet Earth.

通俗来讲就是 Peer to Peer (P2P) ,ZeroTier 根服务器记录请求路径来做类似于DNS的解析。主要功能,就是可以把多个不同网络的设备连接在一起,用来就像在一个局域网下 如下图

ZeroTier 配置一个虚拟网段172.12.0.0/16,在家中加入这个网络中,即可访问位于公司172.12.0.1

专有名词

Zerotier 定义了几个专业名词:

PLANET 行星服务器,Zerotier 根服务器
MOON 卫星服务器,用户自建的私有根服务器,起到代理加速的作用
LEAF 网络客户端,就是每台连接到网络节点

开始使用

注册 zerotier 服务

官网: https://my.zerotier.com/

创建网络

配置网络:


注意:设置为公用任何人只要知道的网络ID就可以加入,设置为私有在有你网络ID的时候需要你在后台同意后才能加入你的私有网络

内网目标机器安装客户端

Linux:

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

其他操作系统:
下载地址:https://www.zerotier.com/download/

客户端加入创建的网络

网络ID在:
Linux:

zerotier-cli join 159924d630e1083d

windows:


然后点Join即可

zerotier 同意客户端接入

这里要注意啦!! 如果在上面网络设置为PUBLIC则无需在这里设置!
设置为PRIVATE时候 需要在后台允许一下操作方法如下:


如上图,给客户端分配 的局域网 IP, 当然网段可以通过 本页Advanced 调整。
确定网络联通(下图是moon后连接图)

建立MOON

建立中转服务器 moon Zerotier 的官方服务器在国外,国内客户端使用时延迟较大,网络高峰期时甚至各个客户端节点之间访问不了。此时 moon 中转服务器就显得非常重要,它的主要功能是通过自定义的服务器作为跳板加速内网机器之间的互相访问。

准备

搭载moon(卫星级服务器,用户自建的私有根服务器,起到中转加速的作用)

  • 机器 A(这里选用了云服务器)内网机器
  • 机器 B跟 C (两台式机)

    设置教程

1.生成及修改 moon.json
首先登陆到机器 A 上,前往路径 /var/lib/zerotier-one。运行命令

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

此命令会在当前目录下生成一个文件 moon.json,文件内容如下:

{
 "id": "89122e085c",
 "objtype": "world",
 "roots": [
  {
   "identity": "89122e085c:0:d9470e28b82a07dd0aefe9138721f8d8aa0a7d37cf58a7c3f8a676d066f97d22c78b235529c7d3e308c2f7a96bc2764e154024cf6970f345c2588f73387319b2",
   "stableEndpoints": []
  }
 ],
 "signingKey": "eda59632b50c178aee6b9d985a910b380e43769cd52016b6d24e4fc7b8902a511e94fb6f77019434ad46720c670d5def67e9984ce704ca1da5874875c746f2ff",
 "signingKey_SECRET": "77efcc9bc6bddc500a731138f758ef370453fb57dd7fa0f2c41207d5b01f6a6ddc78221ecab928f2ab2b1d5cb8a027f71a05cb66a16299ee8b2b111a11564fd6",
 "updatesMustBeSignedBy": "eda59632b50c178aee6b9d985a910b380e43769cd52016b6d24e4fc7b8902a511e94fb6f77019434ad46720c670d5def67e9984ce704ca1da5874875c746f2ff",
 "worldType": "moon"
}

其中 id 为机器 A 在 ZeroTier 中的 id,本文为 89122e085c。
修改 “stableEndpoints” 为机器 A 的公网的 ip。如:

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

若公网机器没有 IPv6 地址,则将其修改为

"stableEndpoints": [ "1.2.3.4/9993" ]

2.生成签名文件

修改完 moon.json 后,执行命令

zerotier-idtool genmoon moon.json

此命令会生成一个签名文件在当前目录下,文件名如 00000089122e085c.moon (机器 A 的 id 为 89122e085c)
3.将 moon 节点加入网络

方法一

在机器 A 中的 ZeroTier 目录中建立子文件 moons.d

不同系统下的 ZeroTier 目录位置:

 Windows: C:\ProgramData\ZeroTier\One
 Macintosh: /Library/Application Support/ZeroTier/One (在 Terminal 中应为 /Library/Application\ Support/ZeroTier/One)
 Linux: /var/lib/zerotier-one
 FreeBSD/OpenBSD: /var/db/zerotier-one

将在机器 A 生成的 00000089122e085c.moon 拷贝进 moons.d 文件夹中,并重启
ZeroTier(此步好像有些许 bug,重启电脑为佳)

方法二

在机器 B、机器 C 上执行

zerotier-cli orbit 89122e085c 89122e085c

查看是否连接

在其他机子执行以下命令将会显示该moon服务器:

zerotier-cli listpeers

如果出现下面况说明连接上

本站也提供一个国内的MOON文件(已更新,那台服务器放弃了)

请勿用于非法用途!

此处内容需要评论回复后(审核通过)方可阅读。

最后修改:2022 年 01 月 20 日
如果觉得我的文章对你有用,请随意赞赏