¿Cómo puedo limitar el ancho de banda de descarga / carga?

Respuestas:

42

Limitar la interfaz única es fácil, pero los límites de velocidad global necesitan reglas más complejas, al igual que las reglas basadas en aplicaciones. No estoy diciendo que no se pueda hacer, pero requiere un poco de investigación interna.

He aquí una rápida Como en la creación de un límite por interfaz

Si realmente desea configurar reglas basadas en aplicaciones, debe buscar en algún marco de firewall, como shorewall , que tiene características de ayuda para configurar la configuración. Incluso con estas herramientas, se requiere un poco de previsión y pruebas para ponerlo en su lugar. Hacer algo como esto ad-hoc aún no es tan fácil.

Ressu
fuente
Wondershaper no funciona No sé por qué (incluso wondershaper eth0 1000 1000 no tiene ancho de banda de Internet. Necesito limitar todo el ancho de banda eth0 no solo aplicaciones específicas. ¿Cómo puede hacerlo?
Arash
67

Aunque esta es una vieja pregunta, me la encontré cuando buscaba una respuesta a la misma pregunta. El sistema operativo y los límites de la interfaz ya se abordaron en una respuesta anterior, por lo que aquí hay una manera de configurar límites específicos de la aplicación. Use una aplicación llamada goteo. Así que hazlo sudo apt-get install trickle. Puede limitar la carga / descarga de una aplicación específica ejecutando

trickle -u (upload limit in KB/s) -d (download limit in KB/s) application

Esto iniciará la aplicación con los límites especificados. También puede especificar el tiempo de "suavizado", para que las muestras goteen durante el período de tiempo deseado en caso de que su aplicación tenga ráfagas de consumo de ancho de banda y desee que se permitan las ráfagas siempre que el promedio esté dentro de sus especificaciones.

SMeznaric
fuente
14
¡Muchas gracias! Esta solución es perfecta para controlar el ancho de banda por aplicación. No dude en publicar una respuesta, incluso si la pregunta tiene años. Para referencia futura: es posible que se le presente un mensaje de error como trickle: Could not reach trickled, working independently: No such file or directory. Puede eliminar esta advertencia ejecutando goteo en modo independiente con trickle -s.
Glutanimate
¿Cómo elimino el límite limitado por goteo?
Ratón anónimo
2
Trickle ejecutará la aplicación por usted con los límites impuestos. Entonces, todo lo que tiene que hacer es reiniciar la aplicación sin usar el comando de goteo.
SMeznaric
1
muchas gracias por esta respuesta, era exactamente lo que estaba buscando
Ali
1
Exactamente lo que necesitaba, cuando intentaba simular una conexión de red lenta.
Ethan Kaminski
5

Si desea limitar el ancho de banda para una dirección IP específica, puede usar esto:

tc qdisc add dev eth1 root handle 1: htb default 12
tc class add dev eth1 parent 1: classid 1:10 htb rate 2500kbps
tc class add dev eth1 parent 1: classid 1:11 htb rate 2500kbps
tc class add dev eth1 parent 1: classid 1:12 htb rate 5000kbps

tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.2.105 flowid 1:10
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.2.106 flowid 1:11
billtian
fuente
44
eso fue bastante complicado. Algunos #comentarios serían de gran ayuda. Por ejemplo, puede agregar enlaces o explicaciones para qdiscs, classids, htb, etc.
oligofren
Entonces, por defecto, ¿lo anterior limita todo a 5000 kbps a menos que se filtre en alguna otra cola? ¿Qué pasa si no queremos limitar todo ?
Ken Sharp