
Herramienta que monitorea, analiza y limita el ancho de banda de los dispositivos en la red local sin acceso administrativo.

Este proyecto es un fork mantenido de bitbrute/evillimiter. El repositorio original ya no se mantiene, por lo que este fork continúa su desarrollo: corrección de errores, nuevas funciones y actualizaciones de compatibilidad. Consulta Cambios específicos del fork más abajo.
Una herramienta para monitorear, analizar y limitar el ancho de banda (subida/descarga) de los dispositivos de tu red local sin acceso físico ni administrativo.
evillimiter emplea suplantación ARP y modelado de tráfico para limitar el ancho de banda de los hosts de la red. En redes con IPv6 habilitado, se utiliza la suplantación NDP junto con la suplantación ARP para cortar también el tráfico IPv6 de un host, que de otro modo eludiría el límite/bloqueo solo-IPv4.
¿Buscas una versión compatible con Windows?
Consulta la alternativa de código abierto EvilLimiter para Windows.
Ejecuta esto únicamente contra una red que sea tuya o sobre la que tengas permiso por escrito para realizar pruebas. La suplantación ARP y NDP interrumpe el tráfico de otras personas por diseño, y hacerlo en una red que no controlas es ilegal en la mayoría de los lugares.
Los paquetes de Python que posiblemente falten se instalarán durante el proceso de instalación.
evillimiter localiza tc, iptables y sysctl mediante PATH al iniciar y muestra errores claros si falta alguno. Ejecuta específicamente el binario iptables; en distribuciones donde iptables es un shim de compatibilidad iptables-nft esto generalmente funciona, pero un firewall gestionado puramente mediante reglas nft nativas sin shim iptables instalado no es algo con lo que esta herramienta interactúe.
git clone https://github.com/DavidsonRafaelK/evillimiter.git
cd evillimiter
python3 -m venv .venv
source .venv/bin/activate
pip install .
Ejecútalo con sudo (los sockets crudos, iptables/tc requieren root): es la ejecución la que necesita root, no la instalación:
sudo .venv/bin/evillimiter
Nota: sudo python3 setup.py install (las instrucciones antiguas) está obsoleto en setuptools modernos y a menudo falla directamente con ModuleNotFoundError: No module named 'setuptools': sudo ejecuta el Python del sistema, que normalmente no tiene setuptools instalado, a diferencia del Python propio del venv que pip gestiona por ti. En distribuciones que aplican PEP 668 (Arch, Debian 12+, ...), instalar fuera de un venv está bloqueado por completo por esta razón.
Alternativamente, puedes descargar una versión deseada desde la página de Releases.
Escribe evillimiter o python3 bin/evillimiter para ejecutar la herramienta.
evillimiter intentará resolver automáticamente la información requerida (interfaz de red, máscara de red, dirección de puerta de enlace, ...) por sí mismo.
| Argumento | Explicación |
|---|---|
-h | Muestra el mensaje de ayuda con todos los argumentos de línea de comandos |
-i [Nombre de interfaz] | Especifica la interfaz de red (se resuelve si no se especifica) |
-g [Dirección IP de puerta de enlace] | Especifica la dirección IP de la puerta de enlace (se resuelve si no se especifica) |
-m [Dirección MAC de puerta de enlace] | Especifica la dirección MAC de la puerta de enlace (se resuelve si no se especifica) |
-n [Dirección de máscara de red] | Especifica la máscara de red (se resuelve si no se especifica) |
-f | Vacía la configuración actual de iptables y tc. Garantiza que los paquetes se gestionen correctamente. |
--colorless | Desactiva la salida con colores |
-l [Ruta de archivo], --log-file [Ruta de archivo] | También añade cada mensaje ok/error a este archivo (texto plano, sin códigos de color). |
--version | Imprime la versión instalada y sale. |
Cualquiera de las opciones anteriores (excepto -f/--flush, que es una acción de una sola ejecución, no una preferencia persistente) puede tener un valor predeterminado en un archivo ini opcional en ~/.config/evillimiter/config.ini (o $XDG_CONFIG_HOME/evillimiter/config.ini). Una opción de línea de comandos siempre tiene prioridad sobre el archivo de configuración.
[general]
interface = wlan0
colorless = true
auto_scan = true
log_file = /var/log/evillimiter.log
[watch]
interval = 30
range = 192.168.1.1-192.168.1.50
[watch] establece los valores iniciales que normalmente se configuran en tiempo de ejecución mediante watch set interval/watch set range (ver más abajo), para que no sea necesario volver a introducirlos en cada sesión.
auto_scan (opt-in, desactivado por defecto) ejecuta scan y luego hosts automáticamente justo después del inicio, para que no tengas que escribirlos en cada sesión.
evillimiter