在我的办公室里我有一个具有不错的游戏 GPU 的 Ubuntu 工作站。在家里,我只有一个13 英寸MacBook Pro这并不是一台游戏机。
幸运的是,Steam 有一个很棒的功能,叫做在家庭流媒体中,您可以将游戏从一台机器流式传输到另一台机器。但不幸的是,两者都必须在同一网络中。
由于我办公室的游戏机落后防火墙并且确实没有公共IP(我可以得到一个,但出于安全原因我不想),我们有一个VPN安装在网关上以使用以下方式访问我们的业务网络网络火警。由于我们不需要 VPN 上的第 2 层信息,因此我们没有桥接 tap
设备但是一个tun
设备,它仅第3层路由。
现在,互联网已满有关如何通过 VPN 连接使用 Steam In Home 流式传输的教程。但是由于Steam 使用 UDP 广播用于服务发现和我们的VPN和办公网络是不同的子网,由于我们的 VPN 设置,这显然不起作用。
此时我决定使用零层,可以配置为二层VPN(ZeroTier 术语中的虚拟层 1)。
现在奇怪的事情开始了:
Linux 工作站和 MacBook Pro确实见到对方通过 ZeroTier 网络和我可以互相 ping 通。但他们在 Steam 上看不到对方。同事告诉我,他明白了使用 Windows 工作机器。所以我借了一台 Windows 设备,安装了 Steam 和 ZeroTier,然后有效。我可以看到 Linux 工作站和 MacBook。
所以,这是我的猜测:macOS 和 Linux 的发现过程已损坏。在里面蒸汽日志我可以看到他们正在收听0.0.0.0
,但我看不到哪个接口他们正在发送广播数据包。我假设他们正在发送数据包在默认界面上,这不是zt0
ZeroTier设置的接口。但在 Windows 上它似乎可以工作,并且在 *nix 机器看到 Windows 计算机后,他们能够在它们之间建立连接。
我现在的问题是如果你有什么想法我该如何解决这个问题。我的想法有点用完了。我将不胜感激任何帮助。
PS:如果这是错误的 stackexchange 站点,请告诉我。然后我将在适当的页面上重新发布这个问题。
更新:
我的假设是正确的。我查看了 Wireshark,可以清楚地看到,Steam使用第一个非环回接口。我猜一个Steam 端口重定向可以解决问题。你怎么认为?