本文转载自:www.swagger.vip,作者:nick,原文地址:https://www.swagger.vip/software/cbdc036291984bb88e53ff8a76ba13dd.html
名词解释
Earth
根据其介绍,将地球上的所有设备连起来。那这里的 Earth 指的就是整体的一个服务。
Network
每一个 Network 包含的所有设备都在同一个网络里。每个网络有一个 Network ID。各客户端通过这个 ID 连接到此网络。当然,一个账号是可以创建多个网络的。
网络氛围 Public 和 Private。一般我们自己组网是要用 Private,需要在页面授权设备才可以进行访问。Public 权限好像不太有人会需要吧
以下介绍的所有概念都是属于 Network 下的。
Planet
星球嘛。指的是官方提供的服务器节点。各客户端都是通过这些服务来互相寻址的。相当于 zookeeper 的不同节点。
Moon
自定义的 Planet。由于 Zerotier 没有国内节点,在两个设备刚开始互连的时候有可能需要通过国外的节点寻址(不过我没发现有什么慢的)导致创建连接的速度偏慢。在自己的网络里搭建 Moon 可以使连接提速。
Leaf
客户端。就是连接到网络上的每一个设备。其实经过测试,Moon 也是客户端的一种。这里特指没有额外功能,单纯用于连接的客户端。
配置(此处以linux设备为例,防火墙需要打开9993端口)
1、重点需要一个有外网ip的设备,没有就不用看下去了
2、安装zerotier
curl -s https://install.zerotier.com/ | sudo bash
3、生成moon.json
cd /var/lib/zerotier-one sudo zerotier-idtool initmoon identity.public > moon.json
4、修改moon.json
修改stableEndpoints的ip为当前设备的公网ip
格式"IPv4地址/9993",“IPv6地址/9993”;没有ipv6地址就不用配置(吐糟:现在服务器的ipv6流量单独算流量费用,坑!!!)
id需要记住,这个就是添加这个moon节点的id
{ "id": "XXXXX", "objtype": "world", "roots": [ { "identity": "XXXXX", "stableEndpoints": ["192.168.0.1/9993"] } ], "signingKey": "XXXXX", "signingKey_SECRET": "XXXXX", "updatesMustBeSignedBy": "XXXXX", "worldType": "moon" }
5、生成 .moon加密签名文件
sudo zerotier-idtool genmoon moon.json
6、创建moon文件夹
mkdir /var/lib/zerotier-one/moods.d
7、将签名文件复制到 moods.d 文件夹中
cp XXXXXX.moon moons.d/
8、重启zerotier服务
service zerotier-one restart
其他设置添加Moon
#离开moon zerotier-cli deorbit XXXXXXXX #添加moon zerotier-cli orbit XXXXXXXX XXXXXXXX #查看moon是否生效,列表中role有moon代表已经生效 zerotier-cli listpeers
windows需要用管理员模式,XXXXXXXX是moon.json中的id
安卓添加moon节点需要用到第三方apk
ZerotierFix 链接:https://github.com/kaaass/ZerotierFix/releases
右上角选择入轨-导入moon结点