我需要永久增加网络延迟在 100 毫秒左右,并且不丢失数据包。
原因:在某个服务器和网络游戏中,我的 ping 值比其他玩家低太多。我的 ping 值为 15ms,而平均 ping 值为 150ms,这给了我像作弊者一样的优势。
因此,出于好奇,我也在寻找在保持连接稳定的情况下提高 ping 值的方法。我有什么选择吗?
我考虑过 VPN 服务,但由于游戏使用 UDP,这似乎是一个糟糕的选择?
是否有任何路由器/软件可以帮助我解决这个问题?
我在窗户上。
答案1
你可以给虚拟网络一枪:
增加延迟
我们可以通过添加与特定数据包数据匹配的规则来控制流量,然后通过 Dummynet 管道发送数据包并增加延迟或数据包丢失。例如,我们可以为所有前往 xkcd.com 的流量添加 100 毫秒的延迟,如下所示:
$ sudo ipfw pipe 1 config delay 100ms $ sudo ipfw add 100 pipe 1 ip from any to xkcd.com 00100 pipe 1 ip from any to any dst-ip 107.6.106.82
这里的第一个命令配置了一个 ID 为 1 的 Dummynet 管道,如果管道尚不存在,则创建它。第二个命令创建了一个编号为 100 的规则,该规则将数据包与所需的目标地址进行匹配,并通过管道路由数据包。请注意,任何试图通过不存在的管道传递数据包的规则都会阻止流量并引发错误,因此在使用管道之前不要忘记配置管道。再次使用 list 可以让我们查看更新后的规则集。
$ sudo ipfw list 00100 pipe 1 ip from any to 107.6.106.82 65535 allow ip from any to any
Ping xkcd.com 应该显示往返时间为 100 毫秒,加上整个连接的实际当前延迟。
$ ping xkcd.com PING xkcd.com (107.6.106.82): 56 data bytes 64 bytes from 107.6.106.82: icmp_seq=0 ttl=55 time=117.092 ms 64 bytes from 107.6.106.82: icmp_seq=1 ttl=55 time=124.583 ms 64 bytes from 107.6.106.82: icmp_seq=2 ttl=55 time=117.916 ms 64 bytes from 107.6.106.82: icmp_seq=3 ttl=55 time=121.067 ms
在大多数情况下,我们希望通过为来自远程主机的数据包添加相应的规则来模拟全双工连接,以便在两个方向上应用延迟。当我们完成新规则的使用后,我们可以删除它和管道,如下所示。
$ sudo ipfw delete 100 $ sudo ipfw pipe 1 delete
看起来 dummynet 项目包含适用于 Windows 的二进制文件。要调整命令,只需从提升的命令提示符运行命令即可ipfw
。例如:
ipfw pipe 1 config delay 100ms
ipfw add 100 pipe 1 ip from any to server-ip
ipfw add 101 pipe 1 ip from server-ip to any
答案2
我最终使用了开放VPN。使用起来很轻松,而且效果很好。Pings 很稳定,没有丢包。未来唯一的问题是 100mb 的流量限制。我不确定仅通过玩游戏就能达到这个速度。