我需要模拟与服务器的低带宽,高延迟连接,以便模拟远程站点上VPN的条件。带宽和延迟应该是可调整的,因此我可以发现最佳组合以运行我们的软件包。
对于macOS,网络链路调节器可模拟可配置的带宽,延迟和数据包丢失。它包含在Hardware IO Tools for Xcode中。
我在Windows机器上使用NetBalancer。
http://seriousbit.com/netbalancer/
2017-10-07更新:NetBalancer的最后一个免费版本是9.2.7。该程序具有硬编码的到期日期。在启动NetBalancer服务之前,您需要在2016-10-18之前关闭系统时钟。有关详细信息,请参阅this article。
使用Fiddler(免费解决方案)http://www.logic-worx.com/index.php/tools-and-apps/fiddler-connection-simulator/为Windows找到了这个
我想tc
可以在基于UNIX的平台上完成这项工作。
tc
用于在Linux内核中配置流量控制
http://lartc.org/manpages/tc.txt
要模拟用于测试网站的低带宽连接,请使用Google Chrome,您可以转到F12工具中的网络选项卡,然后选择带宽级别来模拟或创建自定义带宽进行模拟。
如果你在Linux上,我发现Traffic Control程序对这类事情有很大的帮助。
http://www.shunra.com的产品名为VE Desktop,可用于模拟不同的网络条件。它允许您通过简单的UI调整延迟,带宽和数据包丢失。唯一需要注意的是,它不是免费的。希望这可以帮助。
我一直在为这种类型的测试寻找一种易于使用的工具。前几天我才碰到这个:Network Delay Simulator
如果您正在运行Windows,则应该检查它。设置和开始非常容易,而且似乎工作得非常好。它允许您定义每个方向的带宽,延迟和数据包丢失。另一个非常好的事情是你可以定义“流量匹配条件”,这样它只会影响你想要的流量。哦是的,它是免费的。
我想我找到了我需要的东西。也许你可以使用charles proxy或slowy。希望能帮助到你。
看看NE-ONE网络仿真器,它允许您配置带宽,延迟,数据包丢失,数据包重新排序,数据包重复,数据包碎片,网络拥塞和更多损伤,以便您可以在实验室中创建真实的网络条件。可以为上行和下行配置不同的损伤,因此您可以拥有非常好的上行链路但是非常糟糕的下行链路体验,非常适合查看应用程序如何处理TCP排队,因为ack不会及时返回并且总体延迟因此增加!
这里有一个概述视频http://www.youtube.com/watch?v=DwtqlE7LcrQ专门针对游戏开发者,但它显示了它的内容。 NE-ONE使用网络浏览器进行配置,因此安装和配置非常简单 - 您不需要成为网络大师:-)
有一个硬件版本 - http://www.itrinegy.com/index.php/products/network-emulators/ne-one - 或者您可以下载在VMware ESXi Server下运行的虚拟设备(软件)版本。可以从VMware的Solution Exchange下载虚拟设备 - solutionexchange.vmware.com/store/products/ne-one-flex-network-emulator
设置一个FreeBSD机器就可以做到这一点 - 使用标准的旧桌面,投入额外的NIC并进行构建。
该文章可在http://www.freebsd.org/doc/en/articles/filtering-bridges/article.html获得。
在上述说明的第5步中,您将启用防火墙。要仅模拟不同的IP连接,您可以(例如)执行以下操作:
创建一个包含以下内容的文件/etc/rc.firewall.56k
:
ipfw add pipe 1 ip from any to any out
ipfw add pipe 2 ip from any to any in
ipfw pipe 1 config bw 56Kbit/s
ipfw pipe 2 config bw 56Kbit/s
并改变/etc/rc.conf
...替换线
firewall_type="open"
同
firewall_type="/etc/rc.firewall.56k"
重启,你有一个56K桥!
如果您碰巧在Macintosh上工作,那么该操作系统默认内置了ipfw。我通过在机场和以太网上路由网络流量做了同样的事情,设置它以便机场上的任何东西都具有与我想要模仿的任何东西相同的特征。您可以直接从终端调用ipfw命令并获得相同的效果。
我们在虚拟机内部使用此软件进行一些带宽比例测试:
http://www.softinengines.com/index.php?section=download&langu=en
它不是免费的,但确实有30天的试用期。
LANforge ICE是一个network emulator,重点是虚拟路由,抖动,损坏和延迟。项目使用它来模拟卫星链路,电缆和调制解调器连接以及高速(10Gbit)环仿真。您可以使用Java GUI构建虚拟网络并生成非常详细的流量报告。 LANforge产品还提供流量生成功能:帧,以太网,第3层和有状态流量(NFS,http)。 LANforge的最新版本也具有先进的WiFi测试功能。
你可以试试这个:CovenantSQL/GNTE就像这样写YAML:
group:
-
name: china
nodes:
-
ip: 10.250.1.2
cmd: "cd /scripts && ./YourBin args"
-
ip: 10.250.1.3
cmd: "cd /scripts && ./YourBin args"
delay: "100ms 10ms 30%"
loss: "1% 10%"
-
name: us
nodes:
-
ip: 10.250.2.2
cmd: "cd /scripts && ./YourBin args"
-
ip: 10.250.2.3
cmd: "cd /scripts && ./YourBin args"
delay: "1000ms 10ms 30%"
loss: "1% 10%"
network:
-
groups:
- china
- us
delay: "200ms 10ms 1%"
corrupt: "0.2%"
rate: "10mbit"
运行./generate scripts/your.yaml
过去,我使用Linux Netem(网络仿真)功能使用了一个桥。它具有高度可配置性 - 允许引入延迟(第一个示例适用于WAN),数据包丢失,损坏等。
编辑:还有MasterShaper Web界面来控制设置。
我注意到Netem在我的应用程序中工作得非常好,但我最终也使用了几次WANem。提供的可引导ISO(和虚拟设备映像)使其非常方便。
我遇到了Charles Web调试代理应用程序,并在模拟网络延迟方面取得了巨大成功。它适用于Windows,Mac和Linux。
Bandwidth throttle / Bandwidth simulator
Charles可用于调整Internet连接的带宽和延迟。这使您可以使用高速连接模拟调制解调器条件。
带宽可以被限制为每秒任意字节。这样可以模拟任何连接速度。
延迟也可以设置为任意数毫秒。延迟延迟模拟在较慢连接上经历的延迟,即在发出请求和在另一端接收请求之间的延迟。
您也可以使用vmware运行BSD或Linux并尝试this article (DummyNet)或this one.
我发现了一个名为clumsy的Windows小巧程序。它具有alpha状态,但它似乎对我来说很好,而且它是开源的。
编辑:其他人已经注意到你不能用笨拙来限制带宽,这是真的。您只能添加延迟和其他一些与网络相关的错误。这将取消这个答案作为问题的有效答案,但是因为当我想模拟一个糟糕的网络时我很好地使用它,所以只要它有> 0票或类似的话,我就把它留在这里。
试试WANem
WANem是一种广域网仿真器,旨在通过LAN环境进行应用程序开发/测试时提供广域网/ Internet的真实体验。
对于Windows,您可以使用此应用程序:http://www.softperfect.com/products/connectionemulator/
用于Windows 2000,XP,2003,Vista,Seven和2008的WAN连接仿真器。
也许是Windows唯一可用的。
我会尝试在linux上使用netem。有了它,您可以模拟额外的延迟,损坏,丢包和重复。它甚至适用于环回设备。
另一个客户端程序(仅限Windows)是NetLimiter - http://www.netlimiter.com