Reduzca el ancho de banda de red por aplicación en Mac OS X

37

Noté que iTunes parece absorber todo mi ancho de banda y no funciona bien con otras aplicaciones que usan la web cuando se está descargando. De hecho, ni siquiera tiene suficiente ancho de banda cuando navega por iTunes Store mientras descarga archivos grandes o muchos (podcasts, programas de TV, aplicaciones grandes, etc.).

No estoy preocupado por obtener todas mis descargas lo antes posible, son realmente de baja prioridad y prefiero no tener que hacer esto mientras estoy despierto, pero no puedo presionar el botón de actualización si ' Estoy en la cama y ya lo olvidé.

¿Existe una aplicación o herramienta a través de la Terminal para limitar el ancho de banda de descarga que obtiene iTunes sin obstaculizar también los navegadores web u otras aplicaciones?

El software FOSS / GPL es preferible, pero el software de pago también puede ser aceptable.

dotHTM
fuente
1
Network Link Conditioner es muy bueno para limitar el ancho de banda para todas las aplicaciones apple.stackexchange.com/questions/164959/…
Khaled Annajar
Esta pregunta se ha vuelto obsoleta en gran medida para mi uso particular. Raramente descargo contenido en iTunes de forma regular (los podcasts ahora usan una aplicación de terceros solo en iPhone, AppleTV para compras de video de iTunes y no sincronizan aplicaciones en absoluto a la computadora).
dotHTM

Respuestas:

9

GUI

CLI (sin filtrado de puerto específico pero se puede adaptar):

Estas herramientas se basan en puertos o rangos de puertos como criterio de filtro. Si no sabe qué puertos usa su aplicación, puede verificar su documentación o usarla lsofmientras se ejecuta la aplicación para revelar los números de puertos.

sudo lsof -i -P

La mayoría o todas las herramientas usan ipfw, que está oficialmente en desuso a favor de pf , por lo que no estoy seguro de si estas soluciones funcionarán en OS X 10.9 y posteriores.

Stefan Schmidt
fuente
5

Antigua pregunta, pero acabo de encontrarme con un problema similar, así que pensé en responder.

El problema probablemente se deba a la conformación del tráfico en su ISP. Priorizan agresivamente el tráfico a proveedores de contenido conocidos en un esfuerzo por proporcionar un mejor servicio de transmisión a los clientes. Yo diría que en algunos casos han ido demasiado lejos: acabo de diagnosticar un problema similar en el que una carga de fotos de iCloud en segundo plano estaba causando tiempos de ping superiores a 45000 ms.

Para resolver el problema, simplemente puede reducir la cantidad de ancho de banda total que usará su computadora para evitar que la configuración del tráfico del ISP robe por completo el ancho de banda de todas las demás aplicaciones. Irónicamente, esto mejorará el rendimiento de navegación en su propia computadora, además de obviamente mejorar el rendimiento de otras computadoras en su red. Si, por ejemplo, tiene un límite de flujo descendente de 15Mbps, puede limitar su computadora a solo usar 12Mbps, y el algoritmo ISP ya no verá la necesidad de configurar su tráfico de manera agresiva:

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

En mi caso, fue el ancho de banda ascendente (limitado a 1Mbps por mi ISP) el factor limitante, por lo que ejecuté lo siguiente, que resolvió mi problema:

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

Tenga en cuenta que estos comandos solo serán efectivos hasta que se reinicie, pero para cancelar la regla, solo haga lo siguiente:

ipfw delete 1
John Mileham
fuente
Encuentro la página de manual de FreeBSD para ipfw, pero de acuerdo con Wikipedia, ipfw fue desestimado en OS X a partir de 10.4 a 10.5. No encuentro ipfw en mi instalación de 10.10 hoy, y tanto Homebrew como MacPorts no tienen instalaciones desarrolladas activamente para ipfw.
dotHTM
2
ipfwfue descontinuado en os x, pero haypf
Chris
4

¿Qué tal el techo corredizo ? Es un front-end fácil para IPFW. (Y de código abierto).

Ben Chun
fuente
4

Usa IceFloor en [Mountain] Lion

GJ
fuente
Estoy rechazando esta respuesta después de descubrir que IceFloor está más centrado en el protocolo que en la aplicación. Entonces, si quiero restringir solo una determinada aplicación, es difícil.
Knocte
Elegido porque explorar IceFloor me llevó a encontrar Vallum, lo que me permite bloquear el acceso a la red por aplicación.
skplunkerin
2

Este es un pensamiento realmente perverso, pero es posible que pueda usar ipfw y dummynet incorporadas de Mac OS X para escribir reglas para hacer esto. Vea las páginas del manual para esas herramientas.

Spiff
fuente
Un video de alguien haciendo exactamente eso en OSX: youtube.com/watch?v=VgwR230coOw
Prof. Falken apoya a Monica el
2

En relación con los desarrollos actuales OS X 10.10, el ipfwejecutable comúnmente mencionado ya no está disponible. Sin embargo, hay un pfejecutable, que puede manejar configuraciones de firewall similares.

Hay una interfaz GUI llamada "Murus" ( http://www.murusfirewall.com ), que puede usar para configurarpf . Por lo que entiendo, también admite activamente la limitación de ancho de banda (desde la interfaz de usuario).

[EDITAR]

En caso de que alguien no pueda irse ipfw, puede intentar compilarlo usted mismo. El código fuente (de FreeBSD) está disponible aquí: http://www.freebsd.org/cgi/cvsweb.cgi/src/sbin/ipfw/

Apple también publica el código fuente de los proyectos de código abierto que utiliza (d). ipfwse puede encontrar aquí: http://www.opensource.apple.com/source/network_cmds/network_cmds-329.2.2/

Chris
fuente
1
Pude configurar con éxito Murus para acelerar Skype 8 en OS X 10.14 Mojave usando las instrucciones aquí: murusfirewall.com/forum/viewtopic.php?t=428
Jon Schneider
1

goteo es lo que buscas.

Los únicos problemas son que no admite ejecutables que utilizan kqueue, y no admite ejecutables vinculados estáticamente. iTunes debería estar bien.

John T
fuente
1
No pude obtener 1.0.6 o 1.0.7 para construir. Después de ejecutar ./configure me sale un error que dice que libevent no se puede encontrar. Instalé libevent a través de MacPorts y obtuve el mismo error cuando lo intenté nuevamente.
dotHTM
Las versiones de @Kio> 1.06 no se compilan debido a problemas con la llamada a poll(). Sin embargo, los mayores deberían funcionar.
John T
44
Descargué Trickle 1.0.5, ejecuté "$ sudo ./configure" y obtuve el siguiente error como antes: "configure: error: libevent not found". Lo comprobé y MacPorts ha instalado libevent. Además, no soy tan aficionado al software que no se ha actualizado en años.
dotHTM
0

Recientemente descubrí (y aún estoy probando) que Vallum tiene control sobre mis aplicaciones:

Es un firewall de aplicaciones macOS que le permite restringir qué aplicaciones pueden usar Internet. Hasta ahora es muy hábil, acabo de crear un Perfil predeterminado que permite todo lo que quiero tener acceso, y un Perfil de punto de acceso móvil que restringe más aplicaciones cuando estoy en movimiento.


Actualización: no he podido "limitar" el ancho de banda para aplicaciones que usan Vallum , solo configuro diferentes perfiles donde restrinjo más / menos aplicaciones.

skplunkerin
fuente
3
no parece permitir la aceleración en absoluto
GJ.
@GJ. Es cierto, tampoco he podido ver esa capacidad ... hasta ahora solo puedo permitir que una aplicación tenga acceso a la red, o no. He estado configurando diferentes perfiles como "aceleradores" para mi solución a esto.
skplunkerin
0

La mejor manera de reducir el ancho de banda en macOS es usar Dummynet, que está integrado en el núcleo de macOS y funciona con el filtro de paquetes pf. En mi opinión, la única forma de ajustar efectivamente el ancho de banda por proceso es identificar qué puertos locales están vinculados por el proceso y luego crear las reglas correspondientes de dfnet df. Hasta donde sé, la única aplicación de macOS que ofrece esta opción es Scudo (soy el desarrollador de Scudo, Vallum y Murus). Scudo 1.0 beta 3 está actualmente disponible de forma gratuita, puede encontrar más información sobre el ajuste de ancho de banda por proceso de Scudo aquí: http://www.murusfirewall.com/forum/viewtopic.php?f=2&t=1919&p=3281#p3281

Hany El Imam
fuente
Intenté esto y parece funcionar. Esto ahora está en beta 6 (beta 3 ya no funcionará) - murusfirewall.com/forum/viewtopic.php?f=2&t=1949 Me gusta el Monitor de red que le permite agregar al firewall y acelerar el ancho de banda.
f01