基本概念

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官方服务器主要是在国外,在国内高峰时期经常会出现连接不上官方服务器的情况。

现阶段zerotier在国内可能会有假墙,因此建议在国外搭建moon服务器

因此需要在国内服务器搭建一个moon服务器
Zerotier 定义了几个专业名词:

PLANET 行星服务器,Zerotier 各地的根服务器,有日本、新加坡等地
moon 卫星级服务器,用户自建的私有根服务器,起到中转加速的作用
LEAF 相当于各个枝叶,就是每台连接到该网络的机器节点。

内网目标机器安装客户端

Linux:

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

配置开机启动

systemctl enable zerotier-one

加入zerotier网络

zerotier-cli join 159924d630e1083c

生成moon.json模板

cd /var/lib/zerotier-one
zerotier-idtool initmoon identity.public > moon.json 

修改moon.json模板

vi 编辑 moon.json,修改 “stableEndpoints” 为 VPS 的公网的 IP,以 IPv4 为例,记得带引号:

"stableEndpoints": [ "8.8.8.8/9993" ]

生成签名文件

用到上一步中的 moon.json, 执行

zerotier-idtool genmoon moon.json

将 moon 节点加入网络

在 VPS 的 Zerotier 安装目录下(/var/lib/zerotier-one)建立文件夹 moons.d,将生成的 .moon文件拷贝进去。
重启 zerotier,重启电脑。至此,VPS 上(moon 服务器)配置完成。

不同系统下的 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

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