
Tool, das die Bandbreite von Geräten im lokalen Netzwerk ohne Administratorzugriff überwacht, analysiert und begrenzt

Dieses Projekt ist ein gepflegter Fork von bitbrute/evillimiter. Das Upstream-Repository wird nicht mehr gepflegt, daher setzt dieser Fork die Entwicklung fort – Fehlerbehebungen, neue Funktionen und Kompatibilitätsupdates. Siehe Fork-spezifische Änderungen unten.
Ein Werkzeug zur Überwachung, Analyse und Begrenzung der Bandbreite (Upload/Download) von Geräten in Ihrem lokalen Netzwerk ohne physischen oder administrativen Zugriff.
evillimiter verwendet ARP-Spoofing und Traffic Shaping, um die Bandbreite von Hosts im Netzwerk zu drosseln. In Netzwerken mit IPv6-Unterstützung wird NDP-Spoofing zusätzlich zum ARP-Spoofing eingesetzt, um auch den IPv6-Verkehr eines Hosts zu unterbrechen, der ansonsten die rein IPv4-basierte Begrenzung/Sperre umgehen würde.
Auf der Suche nach einer Windows-kompatiblen Version?
Schauen Sie sich die Open-Source-Alternative EvilLimiter für Windows an.
Führen Sie dies nur gegen ein Netzwerk aus, das Ihnen gehört oder für dessen Test Sie eine schriftliche Genehmigung haben. ARP- und NDP-Spoofing stören absichtlich den Verkehr anderer Personen, und dies in einem Netzwerk zu tun, das Sie nicht kontrollieren, ist in den meisten Ländern illegal.
Möglicherweise fehlende Python-Pakete werden während des Installationsprozesses installiert.
evillimiter findet tc, iptables und sysctl über PATH beim Start und meldet einen klaren Fehler, wenn eines fehlt. Es greift gezielt auf die iptables-Binärdatei zu – auf Distributionen, auf denen iptables ein iptables-nft-Kompatibilitäts-Shim ist, funktioniert dies in der Regel, aber eine Firewall, die ausschließlich über native nft-Regeln ohne installierten iptables-Shim verwaltet wird, wird von diesem Werkzeug nicht angesprochen.
git clone https://github.com/DavidsonRafaelK/evillimiter.git
cd evillimiter
python3 -m venv .venv
source .venv/bin/activate
pip install .
Führen Sie es mit sudo aus (Raw-Sockets, iptables/tc benötigen Root-Rechte) – es ist die Ausführung, die Root benötigt, nicht die Installation:
sudo .venv/bin/evillimiter
Hinweis: sudo python3 setup.py install (die alten Anweisungen) ist in modernen setuptools veraltet und schlägt oft direkt mit ModuleNotFoundError: No module named 'setuptools' fehl – sudo führt das System-Python aus, das normalerweise kein setuptools installiert hat, im Gegensatz zum eigenen Python der venv, das pip für Sie verwaltet. Auf Distributionen, die PEP 668 durchsetzen (Arch, Debian 12+, ...), ist die Installation außerhalb einer venv aus diesem Grund vollständig blockiert.
Alternativ können Sie eine gewünschte Version von der Release-Seite herunterladen.
Geben Sie evillimiter oder python3 bin/evillimiter ein, um das Werkzeug auszuführen.
evillimiter versucht, die benötigten Informationen (Netzwerkschnittstelle, Netzmaske, Gateway-Adresse, ...) automatisch selbst aufzulösen.
| Argument | Erklärung |
|---|---|
-h | Zeigt Hilfemeldung mit allen Befehlszeilenargumenten an |
-i [Schnittstellenname] | Gibt die Netzwerkschnittstelle an (wird aufgelöst, wenn nicht angegeben) |
-g [Gateway-IP-Adresse] | Gibt die Gateway-IP-Adresse an (wird aufgelöst, wenn nicht angegeben) |
-m [Gateway-MAC-Adresse] | Gibt die Gateway-MAC-Adresse an (wird aufgelöst, wenn nicht angegeben) |
-n [Netzmaske] | Gibt die Netzmaske an (wird aufgelöst, wenn nicht angegeben) |
-f | Leert die aktuelle iptables- und tc-Konfiguration. Stellt sicher, dass Pakete korrekt verarbeitet werden. |
--colorless | Deaktiviert farbige Ausgabe |
-l [Dateipfad], --log-file [Dateipfad] | Hängt zusätzlich jede OK-/Fehlermeldung an diese Datei an (Klartext, ohne Farbcodes). |
--version | Gibt die installierte Version aus und beendet das Programm. |
Jedes der obigen Flags (außer -f/--flush, das eine einmalige Aktion und keine dauerhafte Einstellung ist) kann einen Standardwert in einer optionalen ini-Datei unter ~/.config/evillimiter/config.ini (oder $XDG_CONFIG_HOME/evillimiter/config.ini) erhalten. Ein Befehlszeilenflag überschreibt die Konfigurationsdatei immer.
[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] legt die Anfangswerte fest, die normalerweise zur Laufzeit über watch set interval/watch set range gesetzt werden (siehe unten), sodass sie nicht bei jeder Sitzung erneut eingegeben werden müssen.
auto_scan (optional, standardmäßig deaktiviert) führt scan und dann hosts direkt nach dem Start automatisch aus, sodass Sie sie nicht bei jeder Sitzung eingeben müssen.
evillimiter-Befehle