使用使用广播数据包的 OpenVPN 玩游戏时出现问题。其他游戏正常,主机可以互相ping通

Cod*_*der 14 vpn lan openvpn broadcast

我在桥接模式下运行 OpenVPN 服务器,客户端可以成功连接,查看共享文件夹并玩局域网游戏,让您输入局域网 IP 地址。但是,我无法玩像 Sacred Underworld 这样的游戏,因为它会发送广播数据包。该游戏甚至不会出现在客户端计算机上的游戏列表中。

我是 OpenVPN 的新手,但我认为这可能与以下两个问题之一有关:

  1. 我可能需要某种路由来正确处理广播数据包(尽管我不确定如何设置)

  2. 我的 VPN 运行在与我的路由器不同的子网上。即我的家庭网络192.168.1.xx和我的 VPN 使用类似10.0.0.xx. 我是否可能需要让我的 VPN 与我的实际网络(即192.168.1.xx)共享相同的子网?如果是这样,我该如何设置?

spe*_*akr 15

关于问题1:

使用 (UDP) 广播的 LAN 游戏通常选择使用最低度量的网络接口作为其广播路由(即 ip 255.255.255.255)。很可能您的默认网络接口(例如您的 NIC)具有最低的指标,因此游戏在您的192.168.1.0/24LAN 而不是 VPN上播放。您可以route -vn在 Linux 或route printWindows上检查您的路由表。

要在您的 VPN 上获得广播,请在所有 OpenVPN 客户端(而不是服务器上)上执行以下操作:

255.255.255.255/32在您的 OpenVPN 接口上添加一个新的广播路由 ( ),其指标低于默认网络接口使用的指标。如果您的 OpenVPN 接口上已经存在这样的路由,那么只需将度量更改为最低的度量。

在 Windows 中,广播路由已经存在,因此您可以像这样更改全局接口指标:

netsh int ip set int <name_of_your_openvpn_connection> metric=5
Run Code Online (Sandbox Code Playgroud)

如果建立连接,这将优先考虑 OpenVPN 接口。如果您似乎在设置指标时遇到问题,请尝试禁用界面的自动指标选项。

在 Linux 中,您可能只需要添加相应的路由(如有必要,添加一个指标):

route add -host 255.255.255.255/32 <your_openvpn_device>
Run Code Online (Sandbox Code Playgroud)

这将使诸如WarCraft IIIAnno 1404 之类的游戏广播到 VPN 而不是本地 LAN(使用 Debian OpenVPN 服务器和几个 Windows 7 客户端成功测试)。


关于问题2:

很多 关于如何在 OpenVPN 中设置以太网桥接 教程(还有帮助脚本)。

请注意,如果您只想通过 OpenVPN 玩局域网游戏,则根本不需要任何以太网桥接。将 OpenVPN 与 Tap 设备一起使用就足够了,例如还可以处理旧游戏所需的广播或 IPX 等协议。

  • 当存在类似路由​​时,该度量用于对路由进行优先级排序。我不知道为什么 Windows 不采用给定的度量值,但我注意到,如果存在其他类似的路由,使用像 `metric=5` 这样的低度量会创建一个具有最低度量的路由。因此,新路由将优先用于 UPD 广播。 (2认同)