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