Zerotier 是真的香。不过目前有一个问题是我发现从我家里的网络走 Zerotier 速度不是很快,网上的说法说这是因为 Zerotier 的服务器在高峰时段不好使导致的。
Zerotier 的服务器的角色有一点类似 BT 下载中的 Tracker 服务器的作用。因此服务器本身不承担中转流量,但是需要记录路径信息。
1 创建卫星节点
下面来说一下卫星节点,也就是 moon 节点的配置方法。首先 moon 节点也要加入网络,因此我们需要安装 Zerotier
1 | curl -s https://install.zerotier.com/ | sudo bash |
我是把我的 R2S 作为卫星节点的。R2S 上 Zerotier 是通过插件安装,不过通过 ssh 连接到 R2S 终端后仍然能够访问 zerotier-cli
工具。这里说一下 moon 的作用。Zerotier 定义了几个专业名词:
- PLANET 行星服务器,Zerotier 各地的根服务器,有日本、新加坡等地
- moon 卫星级服务器,用户自建的私有根服务器,起到中转加速的作用
- LEAF 相当于各个枝叶,就是每台连接到该网络的机器节点。
我们需要在目标服务器上创建 moon 的配置信息。首先我们需要生成 moon 配置的 json 模板文件:
1 | cd /var/lib/zerotier-one |
文件生成后我们需要修改这个文件,为 stableEndpoints
添加外部入口配置。其格式如下:
1 | "stableEndpoints": [ "8.8.8.8/9993" ] |
可以看到作为 moon 的节点是需要有公网 IP 的,最好是固定 IP。目前 1.x 版本的 Zerotier 尚不支持使用域名配置,在 2.0 版本中官方可能加入这个支持。
基于这个 json 文件我们可以生成 .moon
的配置文件。运行下面的命令:
1 | zerotier-idtool genmoon moon.json |
命令执行之后会在当前目录下创建一个名为 000000xxxx.moon
,我们需要将这个文件移动到 /var/lib/zerotier-one/moons.d/
路径中(如果文件夹不存在就创建一个),然后重启 Zerotier 服务。
网上有的文章中说要重启服务器,这是不必要的。
2 客户端加入卫星网络
至此卫星节点就可用了,我们可以在客户端中执行:
1 | zerotier-cli orbit <id> <id> |
在 Windows 或者 Mac 中安装的客户端程序的 GUI 界面是没有对应的配置选项的,我们需要打开 CMD 或者 Terminal 来执行这个命令。
这里的两个 id 都是 moon 节点的 id。这个 id 可以通过 zerotier-cli info
查看,这个命令的输出形式大概是
1 | 200 info <节点的 ID> 1.4.6 ONLINE |
我们可以用 zerotier-cli listpeers
或者 zerotier-cli listmoons
来查看是否设置成功。
3 性能改善
在使用了 moon 节点以后,我的上传速度提升了大约十倍(从 200kB/s 提升到 2 MB/s)。