19

我需要减慢(模拟不良)互联网连接,我发现一些文档是通过“ipfw pipe”命令实现的,问题是在最新的 MAC OS 版本中,ipfw 已被弃用(并删除)......

我想知道是否有任何替代 ipfw API 的方法?有谁知道最新的网络链接调节器是如何实现的?

原来可以减慢互联网连接速度的方式:

sudo ipfw pipe 1 config bw 56Kbit/s delay 200 plr 0.2

并清理管道:

sudo ipfw delete 1

谢谢。

4

4 回答 4

3

我对 Mac OS 了解不多(我自己使用 Linux),但我会试一试。

正如你所说,一堆ipfw似乎无法进行的挖掘工作。

我也找不到从命令行使用网络链接调节器的方法。一切都应该可以从命令行使用,所以这很愚蠢。

一种解决方法是尝试从 AppleScript 中访问 NLC。以下内容将帮助您开始切换 NLC:

property thePane : "com.apple.Network-Link-Conditioner"  
tell application "System Preferences"  
activate  
  set the current pane to pane id thePane  
--delay 2  
end tell  
---  
tell application "System Events"  
  tell application process "System Preferences"  
  try  
  click ((checkboxes of window "Network Link Conditioner") whose description is "enable switch")  
  on error  
  click ((checkboxes of window "Network Link Conditioner") whose description is "enable switch")  
  end try  
  end tell  
end tell  

我认为您可以使用osascript <SCRIPT>.

作为替代方案,Charles Proxy是一个付费使用程序,可用于执行限制,前提是您可以说服您正在测试的软件连接到代理的端口而不是直接连接到 Internet。也许某处有免费的代理解决方案?

也许 Squid 会在这方面发挥作用。SquidMan似乎是一种为 Mac 安装它的简单方法。看起来延迟池和/或客户端带宽限制可能对模拟低速连接很有用,尽管我找不到人们使用它们的证据。

于 2015-10-17T04:25:27.513 回答
2

我发现了几种可能有效的解决方案。它们来自一些旧线程,但它们可能会有所帮助:

如何在mac上模拟慢速网络连接

Apple 制作了一个非常方便的官方工具来减慢 Mac 上的网络连接以进行测试。

Network Link Conditioner 首选项可从 Xcode 中免费下载(适用于 Lion 和更高版本的操作系统)。此外,iOS 具有可从 Xcode 和 iOS 6 或更高版本中访问的类似功能。

如何在 iPad 上模拟坏的 Wi-Fi 连接?

有几种方法可以做到这一点,具体取决于您的情况:

  1. 远离路由器。虽然这看起来有点明显,但我意识到在测试/调试时并不总是可行的(例如,如果您在台式计算机上工作)。

  2. 在路由器和/或天线周围放置铝箔。这将(部分)通过创建一个临时的法拉第笼来阻挡部分或全部无线电信号。您获得的结果将取决于路由器信号的强度、与路由器的距离以及其他环境因素。

  3. 将路由器的无线信号功率设置为较低的设置。每个路由器执行此操作的方法都不同,因此您必须查看用户指南以获取有关如何执行此操作的说明。

为 iOS 模拟器减慢互联网速度

您可以通过在设备上进行测试来将网络设置为慢速特性。转到设置 -> 开发人员设置 -> 网络链接调节器 -> 启用。这适用于运行 iOS 6 的 iPhone/iPad

不知道最后一个还能不能做。

于 2015-10-13T15:28:43.190 回答
0

如果您因为正在进行测试/分析工作而希望减慢网络连接速度,则一种选择是获取可以产生网络延迟/噪音的特定设备。

例如,Apposite Tech 的 mini2 WAN 仿真器允许您更改带宽和数据包丢失的值。您也可以使用以下方式滚动您自己的设备:http ://wanem.sourceforge.net/ 。这取决于您的需求、时间和预算。

于 2015-10-20T01:44:06.877 回答
0

过去我使用过许多方法来降低网络连接速度,其中包括:

  • 执行一些大型 Linux ISO 文件的并行下载;
  • 物理拔出以太网电缆(有一次,我实际上玩弄了构建一个按钮设备的想法,该设备将位于两条 cat5 电缆之间,并且无需物理断开整个电缆即可完成此操作)。
  • 使用ifconfig eth0 down ; sleep 1 ; ifconfig eth0 up.

希望其中一种或多种方法会有所帮助。

于 2015-10-19T03:06:57.483 回答