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


12

我正在桥接模式下运行OpenVPN服务器,客户端可以成功连接,查看共享文件夹并玩可让您输入LAN IP地址的LAN游戏。但是我不能玩像《黑夜传说》这样的游戏,因为它发出广播数据包。游戏甚至没有出现在客户端计算机上的游戏列表中。

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

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

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


您是否可以选择游戏中使用的网络接口?听起来游戏默认为有线接口,而您需要它使用VPN接口。
Zoredache

Answers:


11

关于问题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

如果建立连接,这将优先处理OpenVPN接口。如果您似乎无法设置指标,请尝试禁用该界面的“ 自动指标”选项。

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

route add -host 255.255.255.255/32 <your_openvpn_device>

这将使像WarCraft IIIAnno 1404这样的游戏可以广播到VPN,而不是广播到本地LAN(已通过Debian OpenVPN服务器和多个Windows 7客户端成功测试)。


关于问题2:

很多 教程(也辅助脚本)如何设置以太网桥接的OpenVPN提供。

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


1
太棒了!您的答案的第一部分解决了我们所有的问题。尽管我不明白我到底在做什么。route print当您的命令将其更改为261时,给我度量286。如何与metric = 5保持一致?
AmShaegar,2014年

2
当存在相似的路由时,该度量用于对路由进行优先级排序。我不知道为什么Windows不采用该度量的给定值,但是我注意到使用低度量,例如metric=5,如果存在其他类似路由,则创建具有最低度量的路由。因此,新路由将优先用于UPD广播。
讲者2014年

netsh int ip set int MyTap metric=5对于Windows 7 32位没有任何影响。route print仍然显示旧的指标265
Alex G

@AlexG您是否尝试过设置较低的值?我还添加了有关Windows中网络接口的“ 自动度量”选项的链接,也许禁用它会有所帮助。此外,如果我们甚至无法讨论Win7 x86似乎存在的问题,我不认为您应该已经对我的回答不满意。
讲者

@speakr我尝试了所有可能的方法,包括在所有界面中禁用自动度量。
亚历克斯G

-1

有两个度量标准,即接口度量标准和网关度量标准。对于IPv4,实际指标是两者的总和。

一个或两个都可以配置为自动。如果您想要一个确切的值,则必须同时指定两者。

您可以使用鼠标来配置接口IPv4协议的高级属性。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.