【问题标题】:Network tools that simulate slow network connection [closed]模拟慢速网络连接的网络工具[关闭]
【发布时间】:2010-11-08 20:21:24
【问题描述】:

我想直观地评估几种 Internet 连接类型(DSL、电缆、T1、拨号等)的网页响应时间,而我的浏览器和 Web 服务器位于同一 LAN 甚至同一台机器上。是否有任何简单的网络工具或浏览器插件可以降低网络带宽以模拟不同的现实世界连接场景。

感谢您对此的任何意见。

【问题讨论】:

标签: networking performance simulate


【解决方案1】:

在 Linux 上,请参阅netem:内核已经包含对流量整形的支持,并且可以模拟高延迟、低带宽、数据包丢失和所有其他不利条件,即使在环回设备上也是如此(所以你不要'不需要一个真实的物理网络来测试)。

【讨论】:

  • 对此+1。惊人的。只需一个命令,我就可以让“localhost”在咖啡店 wifi 上表现得像公共互联网服务:sudo tc qdisc add dev lo root netem delay 500ms
  • 超级酷。只想添加如何再次删除仿真。添加:sudo tc qdisc add dev lo root netem delay 100ms 删除:sudo tc qdisc del dev lo root netem delay 100ms
  • 您可以使用单个命令 sudo tc qdisc del dev lo root 完全重置环回的所有 tc 规则 - 如果您使用有线连接等,请将 lo 更改为 eth0
  • 最新版本的 netem 也支持使用速率选项限制带宽:tc qdisc add dev lo root handle 1:0 netem delay 10ms rate 1mbit limit 1000。请注意,对于某些设备,例如环回设备,您还需要将其设置为具有非零队列长度才能使速率选项起作用:ifconfig lo txqueuelen 1000。见serverfault.com/a/394949/76090
【解决方案2】:

我正在复活这个帖子,因为我最近有同样的需求。 令人惊讶的是,我发现 Fiddler 可以通过自定义规则并在 OnBeforeResponse 部分添加这一行 oSession["response-trickle-delay"] = "150"; 来实现这一点。

提琴手真的很棒。

【讨论】:

  • 在最近的Fiddler版本中,只需要在Rules -> Performance下启用Simulate Modem Speeds即可。
  • +1 Fiddler 是一个特殊的工具,可能只是为了这个而过大,但绝对值得拥有。您可以通过使用进程过滤器轻松让 Fiddler 只使用一个程序,无需在您的程序中设置代理!
  • 我已经是 Fiddler 的爱好者了,但现在我不能没有它。我不知道我需要的工具每天都在我身边:)
  • 请注意,这是一个仅限 Windows 的解决方案,除非您愿意摆弄黑客和变通方法。
【解决方案3】:

试试Traffic Shaper XP 您可以使用此应用程序及其免费软件轻松限制 IE 或其他浏览器的速度

【讨论】:

  • 卡巴斯基报告从该站点下载的内容包含木马下载程序。
  • 似乎不适用于 Windows 7。
  • 我无法让它工作。是否支持到 localhost 或 127.0.0.1 地址的流量?
  • @Anderson,可能不会。据我记得,Windows 没有像 *nix 通常有的用于本地连接的内部网络堆栈。
  • 我自己使用 Clumsy (jagt.github.io/clumsy/index.html)。
【解决方案4】:

试试微软的 NEWT,它非常适合我。它提供定制的延迟、丢包技术等:)

http://blog.mrpol.nl/2010/01/14/network-emulator-toolkit/

更新 1:

这是一个很好的 NEWT 视频教程 - Network Emulator For Windows Toolkit Tutorial(感谢 Jimmery)

【讨论】:

  • 是的,我认为它在驱动程序级别工作。
  • 我试过了,但我想不通——哪里有帮助文件?
  • 我知道基本的网络概念 - 但无法让它做任何事情。
  • 使用跟踪按钮(看起来像一个黄色的脚)来查看您的过滤器是否与任何网络数据包相关。尝试简单的事情,例如丢弃端口 80 (HTTP) 的每个数据包。
  • 我没有了解你们的网络知识,但是在观看了这个 youtube 视频后我让 NEWT 开始工作:youtube.com/watch?v=s5o_GnYOloA - 我希望这会有所帮助
【解决方案5】:

我的作品使用了这个工具,看起来还不错: http://www.dallaway.com/sloppy/

祝你好运。

【讨论】:

  • +1 基于 Java,因此它在 OSX 上运行良好(尚未在 Windows 或 Linux 上尝试过)- 易于安装和运行,工作透明,之后不会留下混乱!
  • 是的,优秀的工具,基于 Web 的 jnlp(无需安装,只需启动它)它在 localhost 上创建代理,端口可配置,速度可动态更改 +32 ;)
  • 我以前用过sloppy,很喜欢,可惜不支持https:groups.google.com/forum/#!topic/sloppy-discuss/tOyCx7igfkw
  • 虽然没有模拟烂网络的丢包。
【解决方案6】:

我已成功使用TMnetSim(页面底部,在“其他工具”下 - 链接显示类似“ZIP:TMnetSim Network Simulator version 2.4 32-bit (600KB)”

这不仅适用于网站 - 您可以减慢与任何 TCP 端口的连接速度。我用它来模拟一个慢速 SQL Server(端口 1433)。

【讨论】:

  • 您使用的是什么操作系统?我根本无法让它在 32 位 Windows 7 下工作...
  • @GuyBehindtheGuy:你有什么运气吗?我有同样的需求和操作系统...
  • 我最终使用了 DummyNet。这里有一个 Windows 版本:info.iet.unipi.it/~luigi/dummynet
  • +1 这个完全完成了我需要的最少的模糊测试。感谢您的提示!
  • 当前版本在 64 位 Windows 8.1 上运行正常。
【解决方案7】:

我喜欢Charles

免费版对我来说很好用。

限制、重写、断点都是很棒的功能。

【讨论】:

  • 是的,它可以正常工作 30 天... :-/
  • 对我来说,它在 30 天后也可以正常工作,您只需等待一段时间,它会在 30 分钟后重新启动。但是你总是可以获得许可证。
  • 版本 3.7?该网站似乎暗示您必须在 30 天后购买才能继续使用它。
  • 你的假设是错误的。在前 30 天内,您可以毫无延迟地使用它。之后会有一些小延迟,并在 30 分钟后重新启动。
  • 来自他们的网站:After 30 days if you decide to continue using Charles you must purchase a license
【解决方案8】:

对于 Linux 或 OSX,您可以使用 ipfw

来自 Quora (http://www.quora.com/What-is-the-best-tool-to-simulate-a-slow-internet-connection-on-a-Mac)

基本上使用防火墙来限制所有网络数据:

定义使用管道重新路由来自任何来源的所有流量的规则 地址到任何目标地址,执行以下命令(如 root,或使用 sudo):

$ ipfw add pipe 1 all from any to any

配置此规则以将带宽限制为 300Kbit/s 并施加 单程 200 毫秒的延迟:

$ ipfw pipe 1 config bw 300Kbit/s delay 200ms

要删除所有规则并恢复您的原始网络连接:

$ ipfw flush

【讨论】:

    【解决方案9】:

    DummyNet

    试试这个基于 FreeBSD 的 VMWare 映像。它还具有出色的操作指南,完全免费,20 分钟即可完成。

    更新:DummyNet 现在还支持 Linux、OSX 和 Windows

    【讨论】:

    • 感谢您的提示。原来现在有一个可用的原生 Windows 版本,我成功使用了。
    • 我走这条路。但是配置花了我大约 4 个小时。我应该知道替换“192.168.0”。到“192.168.196”。 (子网)通过 all rc.conf 和 rc.firewall。
    【解决方案10】:

    如果你使用 Apache,你可以使用 mod_bandwith。

    有关配置参数,请参阅here

    【讨论】:

      【解决方案11】:

      【讨论】:

        【解决方案12】:

        如果您想要硬件解决方案,Netgear 有一系列廉价(约 50 美元)的交换机可以限制带宽。 Netgear Prosafe GS105E 和类似的交换机值得研究。

        【讨论】:

          【解决方案13】:

          您也可以尝试WANem,它是一个开源广域网模拟器。您可以下载映像(ISO、Knoppix live CD)或 VMWare 虚拟设备。

          【讨论】:

            【解决方案14】:

            一个简单的mac GUI程序是

            https://www.macupdate.com/app/mac/28072/entonnoir/可以限速

            【讨论】:

              【解决方案15】:

              你当然可以使用 dummynet,dummynet 有一个扩展名为KauNet。这可以提供对网络状况的更精确控制。它可以丢弃/延迟/重新排序特定的数据包(这样您就可以对丢弃关键数据包进行更深入的分析,例如 TCP 握手,以查看您的网页如何消化它)。它也适用于时域。通常大多数模拟器都被调整为在数据域中工作。在时域中,您可以指定从什么时间到什么时间可以更改网络条件。

              【讨论】:

                【解决方案16】:

                如果您在为 Windows Phone 开发时需要模拟网络连接质量,您可以尝试一个名为 Simulation Dashboard 的 Visual Studio 内置工具(更多详细信息请点击此处http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206952(v=vs.105).aspx):

                您可以使用 Visual Studio 中的模拟仪表板来测试您的应用 对于这些连接问题,并帮助防止用户 遇到如下场景:

                • 高分辨率音乐或视频在流式传输时卡顿或冻结,或者通过低带宽连接需要很长时间才能下载。
                • 对 Web 服务的调用因超时而失败。
                • 应用程序在没有可用网络时崩溃。
                • 当网络连接丢失然后恢复时,数据传输不会恢复。
                • 用户的电池因使用网络效率低下的流媒体应用而耗尽。
                • 在导航应用程序中映射用户路线被中断。

                ...

                在 Visual Studio 的 工具 菜单上,打开 Simulation Dashboard。找 仪表板的网络模拟部分并选中启用 网络模拟复选框

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2011-07-15
                  • 2011-02-27
                  • 2012-04-09
                  • 1970-01-01
                  • 2011-04-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多