为了模拟远程站点上VPN的情况,我需要模拟一个低带宽、高延迟的连接到服务器。希望能够调整带宽和延迟,以便找到最佳组合来运行我们的软件包。
对于 macOS ,有一个名为 Network Link Conditioner 的工具,可以模拟可配置的带宽、延迟和数据包丢失。它包含在Additional Tools for Xcode软件包中。
有一个很好的指南介绍如何设置FreeBSD机器来完成这个任务 - 拿起你标准的旧桌面电脑,加上一张额外的网卡,然后进行构建。
该指南可以在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。我曾经通过将网络流量路由到Airport和以太网之间并进行设置,使得任何从Airport过来的东西都具有我试图模拟的相同特征。你可以直接从终端调用ipfw命令,达到相同的效果。
我发现了一个名为clumsy的Windows小程序,它处于alpha状态,但对我来说似乎工作得很好,并且它是开源的。
编辑:其他人已经注意到你无法使用clumsy限制带宽,这是真的。您只能添加延迟和几个其他与网络相关的错误。这将使此答案无效,但由于在我想模拟糟糕的网络时我有很好的用处,因此只要它具有> 0票或类似票数,我就会将其保留在此处。
我发现了一款名为Charles的网络调试代理应用程序,使用它可以成功模拟网络延迟。它适用于Windows、Mac和Linux。
带宽限制/带宽模拟器
Charles可用于调整互联网连接的带宽和延迟,从而使您能够利用高速连接来模拟调制解调器条件。
带宽可以被限制到任意字节每秒。这使得任何连接速度都可以被模拟。
延迟也可以设置为任意毫秒数。延迟模拟较慢的连接所经历的延迟,即在发出请求和接收到请求之间的延迟。
您还可以使用vmware运行BSD或Linux,并尝试此文章(DummyNet)或这篇文章。
试试WANem
WANem是一个广域网仿真器,旨在为在局域网环境中进行应用程序开发/测试时提供广域网/互联网的真实体验。
另一个仅适用于Windows的客户端程序是NetLimiter - http://www.netlimiter.com
http://seriousbit.com/netbalancer/
2017年10月7日更新: NetBalancer的最新免费版本为9.2.7。该程序有一个硬编码的到期日期。在启动NetBalancer服务之前,您需要将系统时钟调回至2016年10月18日之前。有关详细信息,请参见this article。