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

dot*_*HTM 47 mac itunes throttling macos

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

我不关心尽快获得我所有的下载,它们的优先级真的很低,我宁愿在我醒着的时候不必这样做,但如果我不能点击刷新按钮'我在床上,已经忘记了。

是否有通过终端的应用程序或工具来限制 iTunes 获得的下载带宽,而不会妨碍网络浏览器或其他应用程序?

FOSS/GPL 软件更可取,但付费软件也可以接受。

Ste*_*idt 14

图形用户界面:

  • 网络链接调节器(首选项窗格,Apple 开发人员工具的一部分)
  • Entonnoir(窗口,捐赠软件)- 已弃用,现代 MacOS 不再支持
  • speedlimit(首选项窗格,像啤酒一样免费)
  • slowyapp(菜单项,付费软件)

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

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

sudo lsof -i -P
Run Code Online (Sandbox Code Playgroud)

大多数或所有工具都使用ipfw,它被正式弃用而支持pf,因此不确定这些解决方案是否适用于 OS X 10.9 及更高版本。


小智 7

老问题,但我刚刚遇到了类似的问题,所以我想我会回答。

问题实际上可能是由于您的 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
Run Code Online (Sandbox Code Playgroud)

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

sudo ipfw pipe 1 config bw 768Kbits/s
sudo ipfw add 1 pipe 1 tcp from me to any
Run Code Online (Sandbox Code Playgroud)

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

ipfw delete 1
Run Code Online (Sandbox Code Playgroud)

  • `ipfw` 在 os x 中已停止使用,但有 `pf` (2认同)

dot*_*HTM -1

这个问题对于我的特殊用途来说基本上已经过时了。我很少定期在 iTunes 中下载内容(播客现在仅在 iPhone 上使用第三方应用程序,AppleTV 用于 iTunes 视频购买,并且根本不将应用程序同步到计算机)。