使用ZeroTier设备在加入网络与网络中其它设备通讯时需要先通过ZeroTier服务器建立连接,但如果设备访问ZeroTier服务器网络不佳的话建立连接就会很慢甚至失败。我们可以搭建自己的服务器(ZeroTier中这个被称为moon)来改善这个情况。
需要声明的一点是moon并非只能在公网的设备中建立,你可以将它部署在内网的设备上,但这样的话只有这个内网以及其下面子网中的设备可以享受这个加速效果。所以通常来说moon最好部署在公网服务器上。
租用云服务器
基本上组个最低性能的就行,系统使用Ubuntu、Debian、CentOS这些都行
云服务器记得在安全组里授权相关规则,默认情况下zerotier会用到9993端口号进行UDP通讯
- 系统的防火墙可能也需要设置,比如ubuntu中使用
ufw allow 9993/udp
来开放端口 - 安装客户端软件
从这里开始的所有操作都用root账户进行,非root账户记得命令前加sudo
curl -s https://install.zerotier.com | sudo bash
这里安装成功才能进行下面步骤 - 生成moon.json文件模板
cd /var/lib/zerotier-one/
进入软件目录
zerotier-idtool initmoon identity.public >>moon.json
- 修改moon.json文件
使用编辑器打开上面的moon.json文件(比如nano moon.json
)大概是下面这个样子的: -
{ "id": "##########", "objtype": "world", "roots": [ { "identity": "..." "stableEndpoints": [] } ], "signingKey": "..." "signingKey_SECRET": "..." "updatesMustBeSignedBy": "..." "worldType": "moon" }
- 记住最上面的id,这个后面会用到
将其中的stableEndpoints修改为如下内容:
"stableEndpoints": ["10.0.0.2/9993"]
方括号中是你的真实IP地址和ZeroTier默认使用的UDP端口号,如果你有IPv6地址也可以使用下面方式:
"stableEndpoints": ["10.0.0.2/9993","2001:abcd:abcd::1/9993"]
修改完成后保存退出 - 使用moon.json文件生成.moon文件
zerotier-idtool genmoon moon.json
使用上面命令后会生成一个类似 000000##########.moon 这样名称的文件 - 使moon节点生效
mkdir moons.d
创建文件夹
mv 000000##########.moon moons.d/
将.moon文件移动到moons.d文件夹中
/etc/init.d/zerotier-one restart
重启服务,如果这样重启不行的话试试重启服务器
- 记住最上面的id,这个后面会用到
客户端使用moon节点
客户端使用moon节点很简单,只要知道前面moon.json文件中的id即可,然后使用下面指令加入moon节点:
zerotier-cli orbit ########## ##########
##########为前面的id,重复两遍,中间用空格隔开
添加成功后稍等一会儿后可以使用 zerotier-cli listpeers
查看节点状况,使用 zerotier-cli listmoons
查看moon信息
在linux中命令前面可能需要加sudo:
在window中需要使用管理员方式运行命令窗口再执行命令:
ZeroTier整体使用还是很简单的,稍稍还有一些地方不怎么好用,比如私有网络中客户端第一次接入时需要管理员在网页认证,如果这时候网页上不去就没法了。再比如移动端目前没有方便的使用moon节点的方法。不过总体来说ZeroTier使用起来还是挺不错的,可多内容可以参考下面文档:
https://www.zerotier.com/manual/
评论