
Strumento che monitora, analizza e limita la larghezza di banda dei dispositivi sulla rete locale senza accesso amministrativo

Questo progetto è un fork mantenuto di bitbrute/evillimiter. Il repository upstream non è più mantenuto, quindi questo fork ne prosegue lo sviluppo - correzioni di bug, nuove funzionalità e aggiornamenti di compatibilità. Vedi Modifiche specifiche del fork qui sotto.
Uno strumento per monitorare, analizzare e limitare la larghezza di banda (upload/download) dei dispositivi sulla tua rete locale senza accesso fisico o amministrativo.
evillimiter utilizza lo spoofing ARP e il traffic shaping per limitare la larghezza di banda degli host sulla rete. Sulle reti con IPv6 abilitato, lo spoofing NDP viene utilizzato insieme allo spoofing ARP per interrompere anche il traffico IPv6 di un host, che altrimenti aggirerebbe il limite/blocco limitato al solo IPv4.
Cerchi una versione compatibile con Windows?
Dai un'occhiata all'alternativa open-source EvilLimiter per Windows.
Esegui questo strumento solo su una rete di tua proprietà o per la quale hai ricevuto autorizzazione scritta per i test. Lo spoofing ARP e NDP interrompe di proposito il traffico di altre persone, e farlo su una rete che non controlli è illegale nella maggior parte dei luoghi.
I pacchetti Python eventualmente mancanti verranno installati durante il processo di installazione.
evillimiter individua tc, iptables e sysctl tramite PATH all'avvio e segnala chiaramente un errore se uno di essi manca. Esegue specificamente il binario iptables - sulle distribuzioni dove iptables è uno shim di compatibilità iptables-nft questo generalmente funziona, ma un firewall gestito esclusivamente tramite regole nft native senza shim iptables installato non è qualcosa con cui questo strumento interagisce.
git clone https://github.com/DavidsonRafaelK/evillimiter.git
cd evillimiter
python3 -m venv .venv
source .venv/bin/activate
pip install .
Eseguilo con sudo (i raw socket, iptables/tc richiedono i privilegi di root) - è l'esecuzione che richiede root, non l'installazione:
sudo .venv/bin/evillimiter
Nota: sudo python3 setup.py install (le vecchie istruzioni) è deprecato nei setuptools moderni e spesso fallisce direttamente con ModuleNotFoundError: No module named 'setuptools' - sudo esegue il Python di sistema, che di solito non ha setuptools installato, a differenza del Python del venv che pip gestisce per te. Sulle distribuzioni che applicano il PEP 668 (Arch, Debian 12+, ...), l'installazione al di fuori di un venv è completamente bloccata per questo motivo.
In alternativa, puoi scaricare una versione desiderata dalla pagina delle Release.
Digita evillimiter o python3 bin/evillimiter per eseguire lo strumento.
evillimiter tenterà di risolvere automaticamente le informazioni richieste (interfaccia di rete, netmask, indirizzo del gateway, ...).
| Argomento | Spiegazione |
|---|---|
-h | Mostra il messaggio di aiuto con tutti gli argomenti da riga di comando |
-i [Nome Interfaccia] | Specifica l'interfaccia di rete (risolta se non specificata) |
-g [Indirizzo IP Gateway] | Specifica l'indirizzo IP del gateway (risolto se non specificato) |
-m [Indirizzo MAC Gateway] | Specifica l'indirizzo MAC del gateway (risolto se non specificato) |
-n [Indirizzo Netmask] | Specifica la netmask (risolta se non specificata) |
-f | Svuota la configurazione corrente di iptables e tc. Garantisce che i pacchetti vengano gestiti correttamente. |
--colorless | Disabilita l'output colorato |
-l [Percorso File], --log-file [Percorso File] | Aggiunge anche ogni messaggio ok/errore a questo file (testo semplice, senza codici colore). |
--version | Stampa la versione installata ed esce. |
A qualsiasi dei flag sopra (eccetto -f/--flush, che è un'azione singola, non una preferenza persistente) può essere assegnato un valore predefinito in un file ini opzionale in ~/.config/evillimiter/config.ini (o $XDG_CONFIG_HOME/evillimiter/config.ini). Un flag da riga di comando ha sempre la precedenza sul file di configurazione.
[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] imposta i valori iniziali normalmente configurati a runtime tramite watch set interval/watch set range (vedi sotto), così non devono essere reinseriti a ogni sessione.
auto_scan (opt-in, disattivato di default) esegue scan e poi hosts automaticamente subito dopo l'avvio, così non devi digitarli a ogni sessione.
evillimiter