Limitez la bande passante réseau par application sous Mac OS X

37

Je remarque qu'iTunes semble absorber toute ma bande passante et ne fonctionne pas bien avec d'autres applications utilisant le Web lors du téléchargement. En fait, il ne se donne même pas assez de bande passante lors de la navigation sur l'iTunes Store lors du téléchargement de fichiers volumineux (podcasts, émissions de télévision, applications volumineuses, etc.).

Je ne suis pas intéressé à obtenir tous mes téléchargements le plus rapidement possible, ils sont très peu prioritaires et je préférerais ne pas le faire pendant que je suis réveillé, mais je ne peux pas appuyer sur le bouton d'actualisation si je ' Je suis au lit et je l’oublie déjà.

Existe-t-il une application ou un outil via le terminal pour limiter la bande passante de téléchargement obtenue par iTunes sans entraver les navigateurs Web ou d’autres applications?

Le logiciel FOSS / GPL est préférable, mais un logiciel payant pourrait également être acceptable.

dotHTM
la source
1
Network Link Conditioner est très utile pour limiter la bande passante de toutes les applications apple.stackexchange.com/questions/164959/…
Khaled Annajar
Cette question a été largement rendue obsolète pour mon usage particulier. Je télécharge rarement du contenu régulièrement sur iTunes (les podcasts utilisent désormais une application tierce sur iPhone uniquement, AppleTV pour les achats vidéo iTunes et ne synchronise pas du tout les applications sur l'ordinateur).
dotHTM

Réponses:

9

GUI:

CLI (pas de filtrage spécifique au port mais peut être adapté):

Ces outils s'appuient sur les ports ou les plages de ports en tant que critère de filtrage. Si vous ne connaissez pas les ports utilisés par votre application, vous pouvez consulter sa documentation ou l'utiliser lsofpendant le fonctionnement de l'application pour afficher les numéros de ports.

sudo lsof -i -P

La plupart ou la totalité des outils utilisent ipfw, qui est officiellement déconseillé en faveur de pf . Par conséquent, vous ne pouvez pas savoir si ces solutions fonctionneront sous OS X 10.9 ou ultérieur.

Stefan Schmidt
la source
5

Vieille question, mais je viens de tomber dans le vif d'un problème similaire et j'ai donc pensé répondre.

En réalité, le problème est probablement dû à la formation de trafic chez votre FAI. Ils hiérarchisent de manière agressive le trafic vers les fournisseurs de contenu connus dans le but de fournir un meilleur service de streaming aux clients. Je dirais qu'ils sont allés un peu trop loin dans certains cas - je viens de diagnostiquer un problème similaire dans lequel un téléchargement de photo en arrière-plan par iCloud provoquait des temps de réponse dépassant 45 000 ms.

Afin de résoudre le problème, vous pouvez simplement réduire la quantité de bande passante totale que votre ordinateur utilisera afin d'empêcher la formation de trafic du fournisseur de services Internet de dérober complètement la bande passante de toutes les autres applications. Ironiquement, cela améliorera les performances de navigation sur votre propre ordinateur, en plus d’améliorer manifestement les performances des autres ordinateurs de votre réseau. Si, par exemple, vous avez un plafond en aval de 15 Mbits / s, vous pouvez limiter votre ordinateur à une utilisation de 12 Mbits / s, et l'algorithme du FAI ne verra plus la nécessité de structurer votre trafic de manière aussi agressive:

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

Dans mon cas, c'était la bande passante en amont (plafonnée à 1 Mbit / s par mon fournisseur d'accès) qui constituait le facteur limitant. J'ai donc exécuté la procédure suivante, ce qui a résolu mon problème:

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

Notez que ces commandes ne seront effectives que jusqu'au redémarrage. Toutefois, pour annuler la règle, procédez comme suit:

ipfw delete 1
John Mileham
la source
Je trouve la page de manuel FreeBSD pour ipfw, mais selon Wikipedia, ipfw était moins accentué dans OS X à partir de 10.4 à 10.5. Je ne trouve pas ipfw sur mon installation de 10.10 aujourd'hui, et Homebrew et MacPorts ne proposent aucune installation activement développée pour ipfw.
dotHTM
2
ipfwa été arrêté en os x, mais il y apf
Chris
4

Que diriez-vous du waterroof ? C'est une interface facile pour IPFW. (Et open source.)

Ben Chun
la source
4

Utiliser IceFloor sur [Mountain] Lion

GJ.
la source
Je rejoins cette réponse après avoir découvert qu'IceFloor était davantage centré sur le protocole que sur l'application. Donc, si je veux restreindre une certaine application, c'est difficile.
knocte
Voté parce que l'exploration de IceFloor m'a amené à trouver Vallum, ce qui me permet de bloquer l'accès au réseau par application.
Skplunkerin
2

C'est une pensée très perverse, mais vous pourrez peut-être utiliser les fonctions ipfw et dummynet intégrées de Mac OS X pour écrire des règles à cette fin. Voir les pages de manuel pour ces outils.

Spiff
la source
Une vidéo de quelqu'un qui fait juste que sur Mac OS X: youtube.com/watch?v=VgwR230coOw
Prof. Falken soutient Monica
2

En ce qui concerne les développements en cours pour OS X 10.10, l' ipfwexécutable communément appelé n'est plus disponible. Cependant, il existe un pfexécutable capable de gérer des configurations de pare-feu similaires.

Il existe une interface graphique appelée "Murus" ( http://www.murusfirewall.com ), que vous pouvez utiliser pour la configuration pf. Autant que je sache, il prend également activement en charge la limitation de bande passante (à partir de l'interface utilisateur).

[MODIFIER]

Au cas où quelqu'un ne pourrait pas s'en passer ipfw, vous pourriez essayer de le compiler vous-même. Le code source (à partir de FreeBSD) est disponible ici: http://www.freebsd.org/cgi/cvsweb.cgi/src/sbin/ipfw/

Apple publie également le code source des projets open source qu’il utilise (d). ipfwpeut être trouvé ici: http://www.opensource.apple.com/source/network_cmds/network_cmds-329.2.2/

Chris
la source
1
J'ai réussi à configurer Murus pour limiter Skype 8 sur OS X 10.14 Mojave en suivant les instructions ci-dessous: murusfirewall.com/forum/viewtopic.php?t=428
Jon Schneider
1

le filet est ce que vous recherchez.

Les seuls problèmes sont qu’il ne prend pas en charge les exécutables utilisant kqueue et les exécutables liés statiquement. iTunes devrait aller bien.

John T
la source
1
Je ne pouvais pas obtenir de filet 1.0.6 ou 1.0.7 à construire. Après avoir exécuté ./configure, un message d'erreur indiquant que libevent est introuvable s'affiche. J'ai installé libevent via MacPorts et la même erreur s'est produite lorsque j'ai réessayé.
dotHTM le
Les versions @Kio> 1.06 ne sont pas générées en raison de problèmes liés à l'appel à poll(). Les plus âgés devraient toutefois fonctionner.
John T
4
J'ai téléchargé le filet 1.0.5, lancé "$ sudo ./configure" et j'ai obtenu l'erreur suivante comme avant: "configure: error: libevent not found". J'ai vérifié, et MacPorts a libevent installé. En outre, je ne suis pas aussi friands de logiciels qui n'ont pas été mis à jour depuis des années.
dotHTM
1

http://github.com/zquestz/throttled c'est peut-être ce que vous cherchez si vous ne l'avez pas encore trouvé.

Robbie
la source
Ceci est obsolète maintenant et utilise ipfw, qui n'est plus disponible.
Chris
0

J'ai récemment découvert (et j'essaie encore) que Vallum contrôle mes applications:

C'est un pare-feu applicatif macOS qui vous permet de limiter les applications pouvant utiliser Internet. Jusqu'à présent, c'est très simple, je viens de créer un profil par défaut qui permet d'accéder à tout ce que je veux, et un profil de point d' accès mobile qui restreint davantage d'applications lorsque je suis en déplacement.


Mise à jour: je n'ai pas été en mesure de "limiter" la bande passante pour les applications utilisant Vallum , mais seulement de configurer différents profils pour lesquels je restreins davantage / moins d'applications.

skplunkerin
la source
3
ne semble pas permettre la limitation du tout
GJ.
@GJ. vrai, je n'ai pas été capable de voir cette capacité non plus ... jusqu'à présent, je ne peux laisser qu'une application avoir un accès réseau, ou pas. J'ai mis en place différents profils comme "accélérateurs" pour ma solution de contournement.
skplunkerin
0

Le meilleur moyen de limiter la bande passante sur macOS est d'utiliser Dummynet, qui est intégré au noyau macOS et fonctionne avec le filtre de paquets pf. À mon avis, le seul moyen de régler efficacement la bande passante processus par processus consiste à identifier les ports locaux liés par le processus, puis à créer les règles pf dummynet correspondantes. Pour autant que je sache, la seule application macOS proposant cette option est Scudo (je suis le développeur de Scudo, Vallum et Murus). Scudo 1.0 beta 3 est actuellement disponible gratuitement. Vous trouverez plus d'informations sur le réglage de la bande passante Scudo par processus à l' adresse suivante : http://www.murusfirewall.com/forum/viewtopic.php?f=2&t=1919&p=3281#p3281

Hany El Imam
la source
J'ai essayé cela et cela semble fonctionner. Ceci est maintenant en version 6 (la version 3 ne fonctionnera plus) - murusfirewall.com/forum/viewtopic.php?f=2&t=1949 J'aime le Moniteur réseau qui vous permet d’ajouter au pare-feu et de limiter la bande passante.
f01