Limite el ancho de banda saliente en una interfaz específica

32

Me gustaría saber la forma más fácil de limitar el ancho de banda saliente para una interfaz. Quiero limitar la velocidad del puerto de salida para que las transferencias de archivos entre mis servidores no fallen durante las horas ocupadas.

¿Cuál es la solución más fácil? Sé que podría usar, iptablespero estoy buscando una instalación / configuración simple.

Gabe
fuente
HTB funciona muy bien. Limitación de velocidad muy flexible. sourceforge.net/projects/htbinit

Respuestas:

37

ethtool

Puede cambiar la velocidad agregada del puerto NIC usando ethtool.

$ sudo ethtool -s eth0 speed 10

Esto establecerá el puerto a 10 MB, por ejemplo.

Wondershaper

También puedes usar la herramienta wondershaperpara hacerlo. NOTA: La velocidad debe estar en kilobits por segundo.

$ sudo wondershaper eth1 downspeed upspeed

Por ejemplo:

$ sudo wondershaper eth0 10000 280

chorrito

Una tercera opción es Trickle . Trickle puede ser utilizado por programa por los usuarios o como un demonio que estrangula la NIC por completo.

Modo de usuario: página de manual de goteo

$ sudo trickle -d 20 -u 20 wget http://www.google.com/bigfile

Acelerará 20K / s para tráfico ascendente y descendente solo por esto wget, todo lo demás no estará limitado.

Modo demonio - página man manchada

En el modo demonio, trickledpuede limitar un grupo de programas a un límite fijo de ancho de banda. Para iniciar el demonio, ejecute el comando filtrado:

$ sudo trickled -d 20 -u 20

pyshaper

Una cuarta opción es pyshaper . Es una opción única entre las opciones, ya que incluye GUI y monitorea y establece dinámicamente el ancho de banda a lo largo del tiempo. Puede consultar la página de manual de pyshaper para obtener más detalles.

                                            pyshaper gui

Referencias

slm
fuente
Limitar el uso de ancho de banda de las aplicaciones problemáticas a través de cgroups probablemente también valdría la pena si su núcleo lo admite.
Bratchley
wondershaper no funciona No sé por qué (incluso `wondershaper eth0 1000 1000` no tiene ancho de banda de internet igual que` sudo goteado -d 20 -u 20`.) Necesito limitar una interfaz de red. ancho de banda no solo aplicaciones específicas. ¿Cómo puede hacer eso?
Arash
goteo no funcionó para mí, pero Wondershaper hizo el truco!
peschü
1

Wondershaper fue editado por última vez en 2002, pero todavía funciona en Fedora 21 hoy. Pero tenga en cuenta que solo hay un par de opciones disponibles como argumentos y no puede especificar la velocidad de carga / descarga en la línea de comando como se especifica aquí, al menos, no en la versión de descarga 1.1a, lanzada el 16 de abril de 2002. Debe editar el archivo, y es un script de shell. No es difícil para aquellos que conocen un pequeño caparazón.

El uso es:

wondershaper (este establecerá su ancho de banda de acuerdo con los valores en el archivo)

wondershaper status
wondershaper stop

Puede usarlo mientras el enlace está activo, lo cual es bueno.

Mike S
fuente
1

Otra opción es ' iproute2 ', que parece ser una herramienta de enrutamiento / configuración de tráfico madura y ampliamente disponible. Lo encontré como un RPM (probablemente también muchos otros paquetes, no busqué). Al momento de escribir este artículo, la versión más reciente era 4.4.0, construida el 25 de enero de 2016.

Al revisar la sintaxis de configuración, parece ser relativamente simple (aunque no tan simple como ifconfigo route).

Verde
fuente
66
Su respuesta no aborda cómo se usaría iproute2 para limitar el ancho de banda saliente. ¿Puedes elaborar por favor?
Michael