目前 ZeroTier 的 TCP 中继服务器端需要自行编译使用。好在客户端已经带有使用 TCP 中继的功能,只要配置 forceTcpRelay
和 tcpFallbackRelay
参数即可
编译安装
目前 TCP 中继程序位于代码库的 tcp-proxy
文件夹中,只需要执行 make
指令即可生成可执行文件。
如果要安装为 systemd unit,官方也提供了一个示例 unit 文件。这个文件无法直接在 ubuntu 系统上使用,需要注释掉 Group=zerotier-one
和 User=zerotier-one
两行,随后将此文件链接到 /usr/lib/systemd/system/
文件夹下即可,指令 ln -s PATH_TO_UNIT_FILE /usr/lib/systemd/system/
。
所有端增加自建中继的配置
自建 TCP 中继需要在使用 TCP 中继的端中配置。不清楚是否所有端都需要配置,我的情况是在 moon 和本地均配置了中继后才能使用。请参考 官方文档 编写配置文件。以下是一个配置及其配置说明:
//local.conf
{
"settings": {
"allowTcpFallbackRelay": true, //允许本端使用TCP中继
"tcpFallbackRelay": "xx.xx.xx.xx/443", //设置自建TCP中继的IP与端口,默认端口是443
"forceTcpRelay": true //强制本端使用TCP中继
}
}
可以在配置后使用指令 zerotier-cli info -j
查看是否已经启用设置
验证是否使用TCP中继
最简单的方式是指令 zerotier-cli peers
,如果输出中存在这样一句话,则说明当前正在使用 TCP 中继,可以看到所有节点都是中继状态
另外,在前面指令 zerotier-cli info -j
输出的最后,存在一项 tcpFallbackActive
,如果这一项的值为 true
则也说明正在使用 TCP 中继