ZeroTier可以构建网状结构的虚拟局域网,方便我们将不同的设备连入这个虚拟的网络,实现内网通信的需求。然而在中国如果要用好ZeroTier,则需要搭建几个MOON转发服务器。
名词解释:
- PLANET 行星服务器,ZeroTier 各地的根服务器,有美国、德国、日本、新加坡等地
- MOON 卫星级服务器,ZeroTier允许用户在靠近Leaf的位置建立的带公网IP的转发服务器,可以帮助信令的中转加速
- LEAF 枝叶节点,即你连上这个网络时,你就是这个网状结构中的一个枝叶末端节点
ZeroTier有各个平台的客户端软件,这里不赘述了。所谓MOON卫星级服务器,其实就是将一台带公网IP地址的枝叶节点转换为MOON,实操如下:
1. 首先在阿里云香港购买1个ECS,然后安装ZeroTier:
curl -s https://install.zerotier.com/ | sudo bash
2. 然后加入到你创建好的网络
zerotier-cli join <network id>
3. 生成MOON模板
cd /var/lib/zerotier-one
zerotier-idtool initmoon identity.public > moon.json
4. 修改模板,编辑器打开moon.json,把公网IP地址填到里面去,端口保持默认即可
“stableEndpoints”: [ “8.8.8.8/9993” ] #8.8.8.8 改为你的公网IP
5. 生成MOON签名
zerotier-idtool genmoon moon.json
这一步会生成一个类似000000xxxxx.moon的文件,.moon前面的即这台MOON的ID,后续使用时需要,注意保存
6. 把MOON加入网络中
在 Zerotier 安装目录下(/var/lib/zerotier-one)建立文件夹 moons.d,将刚刚生成的 .moon 文件拷贝进去。
cd /var/lib/zerotier-one
mkdir moons.d
cp 000000xxxxx.moon moons.d
7. 重启 ZeroTier之后,MOON即可在该网段可用。
8. 在你的LEAF节点,执行命令
zerotier-cli orbit 000000xxxxx 000000xxxxx #没错,这个值要输入两遍
之后,你的信令就会经过这台中转服务器进行转发,查看是否存在MOON服务器,可以执行命令进行查看
zerotier-cli listpeers|grep MOON