Restringir ancho de banda de una interfaz de red

En determinadas ocasiones necesitamos restringir el ancho de banda, la velocidad de download y upload que un ordenador tendrá en una interfaz de red.

Supongamos que tenemos un servidor cuya interfaz principal (eth0 por ejemplo) necesitamos que tenga una velocidad limitada, ¿por qué? … pues por lo que sea, nunca subestimemos lo que un Boss puede pensar y pedirle al equipo de IT jeje.

En este caso podemos usar varias aplicaciones para esto, hoy les hablaré de: wondershaper

fist-full-of-bandwidth-4f9f00c-intro

Instalación de WonderShaper

En distros como Debian, Ubuntu o derivados, basta con:

sudo apt-get install wondershaper

En ArchLinux necesitamos sacarlo de AUR:

yaourt -S wondershaper-git

En ArchLinux es importante instalar la de git y no el normal, pues el normal no me funcionó

Usando WonderShaper

Para hacer que funcione es simple, debemos pasarle como primer parámetro la interfaz de red que deseamos sea limitada, luego le pasamos la velocidad máxima de descarga y de tercero (y último) la de subida.

La sintaxis es:

sudo wondershaper <interfaz> <download> <upload>

Más o menos así:

sudo wondershaper eth0 1000 200

Esto significa que tendré un ancho de banda de 1000kb para descarga, y solo 200kb para subida.

En ArchLinux es importante tener en cuenta que esta línea, no funcionará, pues en ArchLinux debimos instalar otro paquete. Aquí sería:

sudo wondershaper -a <interfaz> -d <download> -u <upload>

O sea, un ejemplo es:

sudo wondershaper -a enp9s0 -d 1000 -u 200

¿Cómo revierto los cambios y recupero mi ancho de banda original?

Para revertir los cambios, o sea limpiar lo que hicimos, basta con:

sudo wondershaper clear <interfaz>

Por ejemplo:

sudo wondershaper clear eth0

Mientras que en ArchLinux sería:

sudo wondershaper -c -a <interfaz>

Fin!

Bueno no hay mucho más que agregar. Pueden leer el manual de la aplicación mediante:

man wondershaper

Espero les resulte interesante 😉


24 comentarios, deja el tuyo

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   Federico dijo

    Consulta, siempre he tenido la misma confusion. 200kb y 1000kb seria 100k de descarga y 20k de upload no?

    1.    franzua dijo

      ¿A qué te referís con ‘k’?
      1000kb de descarga equivaldrían a 1mb, mientras que los 200kb equivaldrían a 200kb de subida.

    2.    msx dijo

      Federico:
      La velocidad de transferencia no se mide en kilo/megabytes sino ‘kilo/megabits’.

      Google tiene una calculadora práctica para esas conversiones que en Chrome funciona desde la misma Omnibar, por ejemplo: 10 megabytes to kilobytes.

      La relación es 1kb = 8000 bits
      Wikipedia: http://en.wikipedia.org/wiki/Kilobit

  2.   roberth dijo

    Esta muy bueno ese tip, como hago cuando por ejemplo en la universidad hay más de 500 alumnos conectados a WiFi sin contar moviles y tablets, wondershaper tendrá soporte o tendré que usar algun hardware?

    1.    KZKG^Gaara dijo

      Pero qué es necesitas hacer en realidad, porque no te entendí.

      1.    lastnewbie dijo

        Creo que se refiere a limitar a los estudiantes conectados, pero el programa indicado sólo limita la interfaz del equipo en concreto, la velocidad del internet seguirá siendo la misma para los demás.

      2.    KZKG^Gaara dijo

        Bueno para eso con Squid y Delay Pools bastaría no?

      3.    Swicher dijo

        KZKG^Gaara, ¿te refieres a este post (este mismo articulo me hizo recordarlo mientras lo leía)?

    2.    Antonio dijo

      Lo que necesitas para hacer eso son equipos Mikrotik

  3.   Brian dijo

    A mi nunca me ha funcionado 🙁
    O talvez no entendí bien.
    El hacer esto: sudo wondershaper eth0 1000 200
    ¿Se traduce como limitar la velocidad de internet por cable de red a 1000 kb/s (kilobyte por segundo) de bajada y 200 kb/s (kilobyte por segundo) de subida?
    ¿O sería 1000 kilobits de bajada y 200 kilobits de subida?

  4.   Jose dijo

    Me ha sido muy útil. Muchas gracias.

    1.    KZKG^Gaara dijo

      Gracias a tí por comentar 😉

      1.    msx dijo

        Que dice Sr.!
        Trickle parece funcionar, inclusive después de abortar el proceso la descarga de prueba nunca superó el límite configurado; a wondershaper no lo probé.

        Entorno de prueba:
        OS: Fedora 21 al día
        Trickle: version 1.07
        Chrome: Version 40.0.2214.115 unknown (64-bit)
        Nombre de los procesos (top): chrome
        Comando CLI: # trickle -d 200 /opt/google/chrome/chrome

        Les dejo una comparación interesante: http://www.ubuntugeek.com/use-bandwidth-shapers-wondershaper-or-trickle-to-limit-internet-connection-speed.html

        Saludos!

  5.   msx dijo

    Yo uso ‘trickle’, cuando tenga un rato pruebo wondershaper para compararlos 🙂

    1.    msx dijo

      Una distinción rápida que se me pasó comentar es que trickle puede correr en primer plano por lo que para parar el shaping de la red basta con C-c

    2.    KZKG^Gaara dijo

      De ese pienso hablar en estos días, ¿haz logrado que funcione con Chromium o Firefox?

  6.   Edduardo dijo

    una pregunta, sirve también para limitar interfaces de red virtuales por separado como :
    wlan0:0
    wlan0:1

    1.    KZKG^Gaara dijo

      No he probado con eso.

  7.   Juan CP Quintana dijo

    Excelente herramienta!

  8.   Birkhoff dijo

    Muy interesante!!
    Cómo puedo hacer para limitar el ancho de banda no solo al este equipo, sino a los equipos que se conectan a Internet a traves de el? Me gustaría hacerlo asignando ancho de banda por IP. ES posible??

    1.    KZKG^Gaara dijo

      Se puede hacer con Squid, el servidor proxy por excelencia. Veo que eres de mi mismo país, en GUTL tenemos lista de correo y foro, pregunta por allá si tienes problemas con internet. Con Squid y Delay Pools se hace.

      1.    Birkhoff dijo

        Si, la uso, pero no he recibido respuesta de como hacerlo. tengo algo ehcjo con TC y HTB, pero uso las 2 interfaces de red y quiero usar solo la que tengo de cara a Internet. Gracias!!

  9.   Jonathan Diaz dijo

    Genial !!Buscaba desde hace mucho tiempo una solucion rapida y facil por que solo lo quiero para el hogar ,y el squid se me hace demasiado para solo dos o tres host!

  10.   Bender Doblador Rodriguez dijo

    Súper, justo lo que estaba buscando, mil gracias