环境
- Ubuntu 18.04.3 LTS
- ZeroTier 1.4.6(最新稳定包)
- Wine 4.17(最新开发包)
我正在尝试在我的系统上托管红色警戒 3 LAN 会话(使用 wine),并且由于我支持 CGNAT 设置,因此我想使用 zerotier。
Zerotier 在与同一 (zerotier) 网络上的其他系统连接时运行良好。但我无法在网络大厅中看到其他玩家。使用 wireshark 我发现 RA3 正常工作所需的 udp 数据包仅在 LAN 接口上传输,根本没有转发到 zerotier 网络接口。
我的下一次尝试是使用一个工具强制 wine 使用 zerotier 界面。
- 您可以使用 LD_PRELOAD 加载的 C 语言小型绑定程序
- 使用脚本创建命名空间并将接口绑定到它
-
导致这些操作按相同顺序失败的原因如下:
因为它不支持 udp
- 这种方法最初是有效的。但它并不稳定,也不一致。有时,其他玩家会在大厅里看到我,但我却看不到他们。有时情况恰恰相反。此外,我必须以 root 身份运行它,这在使用 wine 时不是一件好事。所以这个选项没有帮助,但它帮助我理解了一些事情。
- 它能够绑定到该接口,但不幸的是我无法使用相同的 IP(它会在同一个子网上生成另一个 IP),而且我没有像使用选项 2 时那样获得输出。我甚至尝试从
my.zerotier.com
UI 将 IP 地址添加到 zerotier 网络接口。但这没有帮助。
除此之外,我尝试了很多 iptables 配置,但都没有用。我也通过 sysctl 启用了 ipv4 转发。我仍然认为这可以通过 iptables 解决。这是我迄今为止的最新尝试(以 bash 脚本的形式)