¿Cómo limitar el ancho de banda de la red?

74

Estamos alojando una aplicación en un servidor remoto. Necesitamos probarlo con un ancho de banda de red limitado (para usuarios con mal acceso a Internet).

¿Puedo limitar mi ancho de banda de internet? Por ejemplo: 128 KB por segundo.

ficción
fuente

Respuestas:

68

Puede limitar el ancho de banda de la red en la interfaz utilizando el comando denominado tcpágina Man disponible en http://linux.die.net/man/8/tc

Para un guión simple, prueba wondershaper .

Un ejemplo del uso de tc: tc qdisc add dev eth0 root tbf rate 1024kbit latency 50ms burst 1540

Nikhil Mulley
fuente
66
Enlace a la solicitud de atmail.com para la autorización de nombre de usuario / contraseña para mí ... :(
Ash
1
Puede acceder al contenido de atmail aquí: web.archive.org/web/20130719031908/http://atmail.com/kb/2009/…
Tom Saleeba
mejor tarde que nunca si vas a usar un enrutador busybox, un método mejor es el tccomando, puedes consultar la publicación de mark aquí mark.koli.ch/… el wiki de openvz tiene más ejemplos openvz.org/Traffic_shaping_with_tc
nwgat
parece que también es posible limitar el ancho de banda con iptables (puede editar la respuesta si es necesario): serverfault.com/questions/52027/…
baptx
62

Como se señaló en la respuesta anterior, Wondershaper hace el trabajo fácilmente. Incluyo la información del enlace de arriba por Jwalanta Shrestha

apt-get install wondershaper

wondershaper : una herramienta fácil para limitar el ancho de banda de una interfaz en particular.

$ sudo wondershaper {interface} {down} {up}

{down} y {up} son ancho de banda en kpbs

Entonces, por ejemplo, si desea limitar el ancho de banda de la interfaz eth1 a un enlace descendente de 256 kbps y un enlace ascendente de 128 kbps,

$ sudo wondershaper eth1 256 128

Para borrar el límite,

$ sudo wondershaper clear eth1 
Edén
fuente
2
Idealmente, debería haber editado la respuesta original en lugar de agregar una nueva. Esta es la política estándar. De todos modos, +1 para su respuesta, ya que agrega información a las respuestas.
Shivams
2
Esto es muy útil si está conectando datos móviles y tiene un límite de uso justo (y tiene que comprar nuevos paquetes después, el caso de Lycamobile). En sitios web de transmisión de videos como YouTube, todo el video se carga directamente si tiene suficiente ancho de banda. Si limita el ancho de banda, el video cambiará automáticamente a una resolución baja y descargará solo lo que está viendo, lo que ahorra datos si no desea verlo todo.
baptx
2
Útil también para cargar archivos grandes, ya que no solo limita el ancho de banda, sino que también prioriza el tráfico. De modo que al cargar un archivo de 10 gb todavía puede usar SSH.
PeterM
55
Wondershaper está muy anticuado: Wondershaper Must Die (Bufferbloat.net)
Niklas Holm
10

Limitar los recursos de la red en función de algunos criterios es el tema de QoS . Hay varias formas diferentes de controlar el tráfico de usuarios en sistemas Linux.

Hay un buen tutorial sobre técnicas avanzadas de enrutamiento y control de tráfico en Linux por Bert Hubert.

Emre Yazici
fuente
2
¿Te referías a una sección en particular?
rogerdpack
1
Si no desea cambiar la configuración del sistema, simplemente instale el proxy squid3 y luego configure su aplicación "limitada" a través del proxy. Para las aplicaciones cli, puede configurar torsocks o proxychains, y para aplicaciones GUI pesadas también puede instalar Fiddler mono, así que sí ... hay algunas formas de controlar todo :)
erm3nda
(esta es una respuesta de solo enlace)
Konrad Gajewski
7

Si ya tiene una configuración de Apache en algún lugar, puede usarla mod_bw, que también funciona en conexiones proxy (es decir, Apache simplemente reenvía todo al servidor adecuado, pero ralentiza las respuestas).

Ulrich Schwarz
fuente
6

Dummynet hace lo que quiere y más, incluso puede controlar la latencia, la pérdida aleatoria de paquetes y mucho más.

Ammar Alammar
fuente
6

También puede usar el módulo hashlimit de iptables. Aquí hay un ejemplo simple:

iptables -A FORWARD -m hashlimit --hashlimit-above 512kb / sec --hashlimit-burst 1mb --hashlimit-mode srcip, dstip --hashlimit-name bwlimit -j DROP

Esa regla limita el tráfico que pasa a través de la cadena FORWARD como 512 kb / s con una ráfaga de 1 mb para cada par de origen y destino.

Consulte la sección de hashlimit del manual de iptables para obtener más información.

http://ipset.netfilter.org/iptables-extensions.man.html

ibrahim
fuente