Articles

magnific0 / wondershaper

Copyright

Copyright (c) 2002-2020 Bert Hubert [email protected], Jacco Geul [email protected], Simon Séhier [email protected], [email protected]

Vea el ChangeLog para información sobre las contribuciones individuales de los autores.

Acerca de

Wonder Shaper es un script que permite al usuario limitar el ancho de banda de uno o más adaptadores de red. Lo hace utilizando el comando tc de iproute, pero simplificando mucho su funcionamiento. Wonder Shaper fue lanzado por primera vez por Bert Hubert en 2002, pero la versión original carecía de una interfaz de línea de comandos, a partir de la versión 1.2 se añadió esta característica. A partir de la versión 1.3, se utiliza la cola HTB en lugar de CBQ, lo que permite una mejor gestión del ancho de banda en los enlaces de alta velocidad (por encima de diez megabits). En la versión 1.4 se implementó un método mejorado de conformación de entrada y la posibilidad de limitar tanto hacia abajo como hacia arriba (ambas cosas también son posibles). El README original es un documento bastante largo y está guardado en README.old, para aquellos que quieran más información de fondo. Excepto las notas sobre el funcionamiento, este documento se considera actualizado.

Instalación

Obtención de wondershaper

Se recomienda clonar el repositorio de GitHub de wondershaper para poder tirar de nuevas actualizaciones en cualquier momento (si están disponibles). Abra una nueva terminal y clone el repositorio usando

git clone https://github.com/magnific0/wondershaper.git

Esto clonará wondershaper en su carpeta actual en una nueva carpeta llamada wondershaper. Ahora entra en la carpeta usando

cd wondershaper

Usando wondershaper

Puedes ejecutar wondershaper (como cualquier usuario con permisos suficientes) sin instalación y dejar de seguir las instrucciones en este punto. Muestra las instrucciones de uso de wondershaper escribiendo

./wondershaper -h

El programa detalla todas las opciones disponibles sobre cómo utilizar wondershaper. Lo siguiente es elegir una interfaz a la que quieras dar forma. Puede ver todas las interfaces disponibles escribiendo

ip addr show

Tenga en cuenta que en los sistemas más antiguos este comando puede no estar disponible. En este caso debe ejecutar ifconfig en su lugar.

Identifique la interfaz de red a la que desea dar forma. Los nombres difieren según el sistema.

En el siguiente ejemplo una interfaz inalámbrica está limitada a una subida de 4Mbps y a una bajada de 8Mbps.

./wondershaper -a wlp4s0 -u 4096 -d 8192

Si recibe mensajes indicándole que RTNETLINK answers: Operation not permitted su cuenta de usuario no tiene suficientes privilegios. En ese caso intente:

sudo ./wondershaper -a wlp4s0 -u 4096 -d 8192

Instalación del sistema (opcional)

Se proporciona un archivo makefile para facilitar la instalación. La ubicación por defecto de wondershaper es en /usr/bin. Si quieres instalarlo en tu sistema puedes ejecutar:

sudo make install

Puedes verificar que wondershaper se ha instalado correctamente introduciendo:

which wondershaper

Esto debería devolver /usr/bin/wondershaper. Puede seguir las mismas instrucciones que se explican en la sección «Uso de wondershaper», pero en lugar de ejecutar la versión local del programa ahora ejecuta la versión del sistema eliminando el ./ del principio de cada comando. Por ejemplo, para mostrar de nuevo las instrucciones de ayuda ejecute:

wondershaper -h

Uso persistente de wondershaper (opcional)

En lugar de utilizar las opciones de la línea de comandos para establecer las tasas y la interfaz como se ha mostrado anteriormente, es necesario establecer estos parámetros en el archivo de configuración wondershaper.conf. Puede editar este archivo utilizando su editor de texto favorito (vim en el ejemplo de abajo) como tal:

sudo vim /etc/systemd/wondershaper.conf

Para asegurarse de que wondershaper se reactiva en el reinicio se proporciona un archivo de servicio systemd. Primero habilite wondershaper como un servicio systemd usando:

sudo systemctl enable --now wondershaper.service

De esta manera wondershaper se activa con su configuración al reiniciar.

Uso

 wondershaper 

Se permiten las siguientes opciones de línea de comandos:

  • -h Mostrar la ayuda

  • -a <adapter> Configurar el adaptador

  • -d <rate> Configurar la velocidad máxima de descarga (en Kbps) y/o

  • -u <rate> Configurar la velocidad máxima de subida (en Kbps)

  • -p Utilizar los preajustes en /etc/systemd/wondershaper.conf

  • -c Borrar los límites del adaptador

  • -s Mostrar el estado actual del adaptador

Los diferentes modos son:

 wondershaper -a <adapter> -d <rate> -u <rate> wondershaper -c -a <adapter> wondershaper -s -a <adapter>

Algunos ejemplos:

 wondershaper -a eth0 -d 1024 -u 512 wondershaper -a eth1 -d 94000 -u 94000 # could be used on a 100Mbps link wondershaper -a eth1 -u 94000 # only limit upload wondershaper -c -a eth0