在 Mac OS X 中限制每个应用程序的网络带宽

在 Mac OS X 中限制每个应用程序的网络带宽

我注意到 iTunes 似乎占用了我所有的带宽,并且无法与其他使用网络下载的应用程序很好地配合使用。事实上,在下载大型或大量文件(播客、电视节目、大型应用程序等)的同时浏览 iTunes Store 时,它​​甚至无法为自己提供足够的带宽。

我并不关心尽快完成所有的下载,它们的优先级真的很低,而且我不想在醒着的时候做这些事情,但如果我在床上并且已经忘记了,我就无法点击刷新按钮。

是否有一个应用程序或工具可以通过终端来限制 iTunes 的下载带宽,同时又不妨碍网络浏览器或其他应用程序?

最好使用 FOSS/GPL 软件,但付费软件也可以接受。

答案1

图形用户界面(GUI):

CLI(没有特定于端口的过滤但可以调整):

这些工具依靠端口或端口范围作为过滤标准。如果您不知道应用程序使用哪些端口,您可以查看其文档或lsof在应用程序运行时使用它来显示端口号。

sudo lsof -i -P

大多数或所有工具都使用防火墙官方已弃用该功能,改为普法,因此不确定这些解决方案是否适用于 OS X 10.9 及更高版本。

答案2

这是一个老问题,但我刚刚遇到了类似的问题,所以我想回答一下。

问题可能实际上是由于您的 ISP 的流量整形造成的。他们积极地将流量优先分配给知名内容提供商,以便为客户提供更好的流媒体服务。我认为在某些情况下他们做得太过了——我刚刚诊断出一个类似的问题,其中后台 iCloud 照片上传导致 ping 时间超过 45000 毫秒。

为了解决这个问题,您只需减少计算机使用的总带宽量,以防止 ISP 的流量整形完全抢占所有其他应用程序的带宽。具有讽刺意味的是,这将提高您自己计算机的浏览性能,此外还明显提高网络上其他计算机的性能。例如,如果您的下行带宽上限为 15Mbps,您可以将计算机限制为仅使用其中的 12Mbps,ISP 算法将不再认为需要积极地整形您的流量:

sudo ipfw pipe 1 config bw 12Mbits/s
sudo ipfw add 1 pipe 1 tcp from any to me

就我而言,上行带宽(我的 ISP 限制为 1Mbps)是限制因素,因此我运行了以下命令,解决了我的问题:

sudo ipfw pipe 1 config bw 768Kbits/s
sudo ipfw add 1 pipe 1 tcp from me to any

请注意,这些命令只有在重新启动后才会有效,但要取消规则,只需执行以下操作:

ipfw delete 1

答案3

怎么样防水屋顶? 它是 IPFW 的简单前端。(而且是开源的。)

答案4

就 的当前开发而言OS X 10.10ipfw通常提到的可执行文件已不再可用。但是,有一个pf可执行文件可以处理类似的防火墙配置。

有一个名为“Murus”的GUI界面(http://www.murusfirewall.com),您可以使用它来配置pf。据我所知,它还主动支持带宽限制(从 UI)。

[编辑]

如果有人不能没有ipfw,你可以尝试自己编译它。源代码(来自 FreeBSD)可在此处获得: http://www.freebsd.org/cgi/cvsweb.cgi/src/sbin/ipfw/

Apple 还发布了其使用的开源项目的源代码 (d)。ipfw可以在这里找到:http://www.opensource.apple.com/source/network_cmds/network_cmds-329.2.2/

相关内容