Mac OS X中每个应用程序的节流网络带宽


37

我注意到iTunes似乎占用了我的所有带宽,并且在下载时与使用Web的其他应用程序不能很好地配合使用。实际上,在下载大型文件或许多文件(播客,电视节目,大型应用程序等)时浏览iTunes Store时,它甚至没有给自己足够的带宽。

我不必担心尽快下载所有文件,它们的优先级确实很低,我宁愿在清醒时也不必这样做,但是如果我无法下载刷新,我躺在床上,已经忘了它。

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

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


1
网络链接调理是非常好的限制所有的应用程序的带宽apple.stackexchange.com/questions/164959/...
哈立德Annajar

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

Answers:


9

界面:

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

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

sudo lsof -i -P

大多数或所有工具都使用ipfw,而正式推荐使用ipfw而不是pf,因此不确定这些解决方案是否可以在OS X 10.9及更高版本上使用。


5

老问题了,但是我遇到了一个类似的问题,所以我以为我会回答。

问题可能实际上是由于您的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

我找到了ipfw的FreeBSD手册页,但是据Wikipedia称,ipfw在OS X中从10.4到10.5开始不再强调。我今天在10.10的安装中找不到ipfw,而且Homebrew和MacPorts都没有为ipfw积极开发安装程序。
dotHTM

2
ipfw已在OS X中停产,但有pf
克里斯(Chris


4

在[Mountain] Lion上使用IceFloor


在发现IceFloor更以协议为中心而不是以应用程序为中心之后,我对此回答不满。因此,如果我只想限制某个应用程序,那就很难了。
knocte

由于浏览IceFloor致使我找到了Vallum,因此获得投票支持,这使我可以阻止每个应用程序的网络访问。
skplunkerin

2

这确实是一个错误的想法,但是您可以使用Mac OS X的内置ipfw和dummynet编写规则来做到这一点。有关这些工具,请参见手册页。


有人在OSX上执行此操作的视频:youtube.com/watch?
Falken教授

2

关于的当前开发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/

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


1
我可以使用以下说明成功配置Murus以在OS X 10.14 Mojave上限制Skype 8:murusfirewall.com/forum/viewtopic.php?t=428
Jon Schneider

1

细流是你所追求的。

唯一的问题是它不支持利用kqueue的可执行文件,并且不支持静态链接的可执行文件。iTunes应该没问题。


1
我无法建立细流1.0.6或1.0.7。运行./configure后,我收到一条错误消息,提示找不到libevent。我通过MacPorts安装了libevent,再次尝试时出现了相同的错误。
dotHTM 2010年

由于调用时出现问题,无法构建@Kio版本> 1.06的版本poll()。较旧的应该可以。
约翰T

4
我下载了细流1.0.5,然后运行“ $ sudo ./configure”,并像以前一样收到以下错误:“ configure:错误:未找到libevent”。我检查了一下,MacPorts安装了libevent。此外,我不喜欢多年未更新的软件。
dotHTM


0

我最近发现(并且仍在试用中)Vallum可以控制我的应用程序:

这是一个macOS应用防火墙,可让您限制哪些应用可以使用互联网。到目前为止,它确实很不错,我创建了一个Default Profile(默认配置文件),该配置文件允许我想要访问的所有内容,以及一个Mobile Hotspot Profile(移动热点配置文件),该文件可在旅途中限制更多应用程序。


更新:我无法使用Vallum “限制”应用程序的带宽,只能设置不同的配置文件来限制更多/更少的应用程序。


3
似乎根本不允许节流
GJ。

@GJ。是的,我也没有看到这种功能……到目前为止,我只能让一个应用程序具有网络访问权限。为了解决此问题,我一直在将其他配置文件设置为“油门”。
skplunkerin

0

在MacOS上限制带宽的最佳方法是使用Dummynet,它是内置在macOS内核中并与pf数据包过滤器一起使用的。在我看来,按进程有效调整带宽的唯一方法是确定进程绑定了哪些本地端口,然后创建相应的pf虚拟网规则。据我所知,唯一提供此选项的macOS应用程序是Scudo(我是Scudo,Vallum和Murus的开发人员)。Scudo 1.0 beta 3当前免费提供,有关Scudo每进程带宽调整的更多信息,请参见:http : //www.murusfirewall.com/forum/viewtopic.php? f=2&t=1919&p=3281#p3281


我尝试了这个,它似乎起作用了。现在是beta 6(beta 3将不再起作用)-murusfirewall.com/forum/viewtopic.php?f=2&t=1949我喜欢网络监视器,该监视器允许您添加到防火墙并进行带宽调节。
f01
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.