WonderShaper: una herramienta para limitar el ancho de banda de la red en Linux


Wondershaper es un pequeño script bash que le permite limitar el ancho de banda de la red en Linux. Emplea el programa de línea de comandos tc como backend para configurar el control de tráfico. Es una herramienta útil para controlar el ancho de banda en un servidor Linux.

Le permite establecer la velocidad máxima de descarga y/o la velocidad máxima de carga. Además, también le permite borrar los límites que ha establecido y puede mostrar el estado actual de una interfaz desde la línea de comandos. En lugar de utilizar las opciones de CLI, puede ejecutarlo de forma persistente como un servicio en systemd.

En este artículo, mostraremos cómo instalar y usar wondershaper para limitar el ancho de banda de la red en sistemas Linux.

Cómo instalar Wondershaper en sistemas Linux

Primero, comience instalando wondershaper usando su administrador de paquetes de distribución de Linux de los repertorios predeterminados como se muestra.

$ sudo apt install wondershaper  [On Debian/Ubuntu]
$ sudo yum install wondershaper  [On CentOS/RHEL]
$ sudo dnf install wondershaper  [On Fedora 22+]

Alternativamente, para extraer e instalar las últimas actualizaciones, debe clonar el repositorio de GitHub de wondershaper en su sistema, pasar al repositorio local e instalarlo usando los siguientes comandos. Tenga en cuenta que debe tener instalada la herramienta de línea de comandos git:

$ cd bin
$ git clone https://github.com/magnific0/wondershaper.git
$ cd wondershaper
$ sudo make install

Antes de comenzar a usar wondershaper, primero debe verificar todas las interfaces de red conectadas a su máquina usando el comando ip.

Esto le ayudará a conocer la interfaz en la que desea configurar el uso del ancho de banda, por ejemplo, la interfaz inalámbrica wlp1s0 que está activa.

$ ifconfig 
OR
$ ip addr

Cómo usar Wondershaper para limitar el ancho de banda de la red en Linux

Para definir la tasa de descarga máxima en Kbps para una interfaz, ejecute el siguiente comando usando la opción -a (define la interfaz) y -d (define Kbps), es decir, la tasa de descarga se establecerá en 4 Mbps.

$ wondershaper -a wlp1s0 -d 4048

Para establecer la velocidad de carga máxima en Kbps para una interfaz, use la opción -u de la siguiente manera.

$ wondershaper -a wlp1s0 -u 1048

También puede configurar la descarga y la carga a la vez con un solo comando, por ejemplo.

$ wondershaper -a wlp1s0 -d 4048 -u 1048

La opción -s le permite ver el estado actual de una interfaz.

$ wondershaper -sa wlp1s0 

También puede utilizar iPerf, una herramienta de rendimiento de red para probar la reducción del ancho de banda mediante wondershaper, por ejemplo.

Puede borrar los límites de carga o descarga que ha establecido para una interfaz utilizando el indicador -c .

$ wondershaper -ca wlp1s0

También es posible ejecutar wondershaper como un servicio, donde se definen los parámetros para dar forma al ancho de banda en un archivo de configuración. Esto permite que wondershaper se inicie en el momento del arranque y limite el uso del ancho de banda en todo momento, cuando el sistema está encendido, como se explica en la siguiente sección.

Cómo ejecutar Wondershaper de forma persistente en Systemd

En este modo, debe configurar la interfaz, las tasas de carga y descarga en el archivo de configuración de wondershaper ubicado en /etc/conf.d/wondershaper. Puede abrir este archivo para editarlo usando su editor CLI favorito como se muestra.

$ sudo vim /etc/conf.d/wondershaper 

Defina los parámetros necesarios de la siguiente manera.

[wondershaper]
# Adapter
IFACE="wlp1s0"

# Download rate in Kbps
DSPEED="4048"

# Upload rate in Kbps
USPEED="512"

Guarde el archivo y ciérrelo.

A continuación, inicie el servicio wondershaper por el momento, habilítelo para que se inicie automáticamente al arrancar el sistema y vea su estado, usando el comando systemctl.

$ sudo systemctl start wondershaper
$ sudo systemctl enable wondershaper
$ sudo systemctl status wondershaper

En caso de que modifique los valores de los parámetros en el archivo de configuración, debe reiniciar el servicio wonderservice para que se efectúen los cambios.

$ sudo systemctl restart wondershaper

Para detener el servicio wondershaper, use el siguiente comando.

$ sudo systemctl stop wondershaper

Para obtener más ayuda, consulte el repositorio Wondershaper Github: https://github.com/magnific0/wondershaper

Wondershaper es un modelador de tráfico para limitar el ancho de banda de la red en sistemas Linux. Pruébelo y comparta sus pensamientos con nosotros a través del formulario de comentarios a continuación. Si conoce alguna herramienta similar, también puede mencionarnos en los comentarios; se lo agradeceremos.