如何增加 Windows 上的 ping 时间/网络连接延迟?

rzb*_*rzb 7 networking windows-7 ping gaming

我需要在大约 100 毫秒内永久增加网络延迟,而不会丢失数据包。

原因:在某个服务器和网络游戏上,我的ping比其他人玩的要低得多。我有 15 毫秒,平均为 150 毫秒,这给了我骗子般的优势。

因此,出于好奇,我正在寻找在保持连接稳定的同时增加 ping 的方法。如果有的话,我有哪些选择?

我考虑过 VPN 服务,但由于游戏使用 UDP,这似乎是一个糟糕的选择?

是否有任何路由器/软件可以帮助我解决这个问题?

我在窗户上。

Bob*_*Bob 7

你可以给dummynet一个机会:

添加延迟

我们可以通过添加匹配特定数据包数据的规则来控制流量,然后通过添加延迟或数据包丢失的 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
Run Code Online (Sandbox Code Playgroud)

这里的第一个命令配置一个 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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

在大多数情况下,我们希望通过为来自远程主机的数据包添加相应的规则来模拟全双工连接,以便在两个方向上应用延迟。当我们玩完新规则后,我们可以删除它和管道,如下所示。

$ sudo ipfw delete 100
$ sudo ipfw pipe 1 delete
Run Code Online (Sandbox Code Playgroud)

来源


看起来 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
Run Code Online (Sandbox Code Playgroud)


rzb*_*rzb 1

我最终使用了openvpn。使用起来很简单,而且效果非常好。Ping 稳定,无丢包。未来唯一的问题是 100mb 的流量限制。我不确定仅仅通过玩游戏我能多快达到这个目标。

  • 我在回答中建议的(dummynet)与 VPN 无关。它实际上是一个网络过滤器,在此配置中,可以根据条件将请求保留指定的时间。它“完全”是本地的,并且在您的计算机上运行。它也可以在某些路由器上运行,但这当然不是必需的。该示例为从您的计算机到 xkcd 的任何请求添加 100 毫秒的延迟。您可以对从您的计算机到游戏服务器,然后从游戏服务器到您的计算机的请求执行同样的操作。 (2认同)