
EvilLimiter Next Generation: мониторинг, анализ и ограничение пропускной способности

Инструмент для мониторинга, анализа и ограничения пропускной способности (загрузка/отдача) устройств в вашей локальной сети без физического или административного доступа.
evillimiter-ng использует ARP-спуфинг и формирование трафика для ограничения пропускной способности хостов в сети.
Новое в версии 3.0: используйте код как библиотеку вместо CLI
Возможно отсутствующие пакеты Python будут установлены в процессе установки.
pip install evillimiter-ng
Используя AUR, пакет можно установить вручную:
git clone https://aur.archlinux.org/evillimiter-ng.git
cd evillimiter-ng
makepkg -si
Или с помощью AUR-хелперов:
# Используя KPA (https://github.com/KevinCrrl/kpa)
kpa Ins evillimiter-ng
# Или используя yay (https://github.com/Jguer/yay)
yay -S evillimiter-ng
Узнайте, как использовать Library API в своих проектах, писать меньше кода, воспользоваться преимуществами архитектуры, основанной на списках IP-адресов с назначенными идентификаторами, и найти больше применений коду помимо терминальной программы: Документация библиотеки
После установки вы можете начать использовать инструмент, следуя этому базовому рабочему процессу.
evillimiter-ng -i wlan0
scan
limit 3 200kbit
# Просканировать сеть, вывести список хостов, заблокировать всех на 20 секунд, а затем восстановить соединение.
echo "scan && hosts && block all && sleep 20 && free all && exit" | evillimiter-ng
# Просканировать сеть и сохранить результаты в JSON-файл, закодированный в base64
scan && export-json my_network.json
С его помощью вы можете восстановить эти результаты без нового сканирования в будущей сессии:
import-json my_network.json
🛑 КРИТИЧЕСКОЕ ПРЕДУПРЕЖДЕНИЕ О БЕЗОПАСНОСТИ
Base64 — это НЕ шифрование (как PGP). Он лишь обфусцирует конфиденциальные данные (локальные IP-адреса, MAC-адреса), чтобы они не были видны невооружённым глазом. Любой пользователь или программа может легко декодировать этот файл.
- Права доступа: Файл защищён от чтения и записи (только root) для предотвращения повреждения.
- Риск: Даже если злоумышленник получит root-доступ, он не сможет расшифровать то, что никогда не было зашифровано, но он может прочитать, повредить или уничтожить информацию. Не полагайтесь на этот файл для обеспечения конфиденциальности.
evillimiter-ngВы можете использовать команду -h, чтобы увидеть общее меню справки; также у каждой команды есть подменю, сгенерированное argparse, справку по которому можно посмотреть, введя:
>>> <COMMAND_NAME> -h
Например:
>>> scan -h
usage: scan [-h] [-r RANGE] [-i INTENSITY]
options:
-h, --help show this help message and exit
-r, --range RANGE
-i, --intensity INTENSITY
# Другой пример:
>>> watch --help
usage: watch [-h] {add,remove,set} ...
positional arguments:
{add,remove,set}
add Adds host to the reconnection watchlist. e.g.: watch add 3,4
remove Removes host from the reconnection watchlist. e.g.: watch remove all
set Changes reconnect watch settings. e.g.: watch set interval 120 watch set intensity 1
options:
-h, --help show this help message and exit
В этой таблице показаны все доступные команды:
Пожалуйста, ознакомьтесь с полной правовой оговоркой здесь:
Copyright (c) 2026 by KevinCrrl.
Лицензировано под GPL-2.0-only License.
Подробный список оригинальных авторов, зависимостей и их соответствующих лицензий см. в файле CREDITS.
| Аргумент | Пояснение |
|---|
-h | Отображает справочное сообщение со списком всех аргументов командной строки |
-s | Включает режим оболочки для ввода команд и скрывает баннеры и броские элементы |
-i [Interface Name] | Указывает сетевой интерфейс (определяется автоматически, если не указан) |
-g [Gateway IP Address] | Указывает IP-адрес шлюза (определяется автоматически, если не указан) |
-m [Gateway MAC Address] | Указывает MAC-адрес шлюза (определяется автоматически, если не указан) |
-n [Netmask Address] | Указывает маску подсети (определяется автоматически, если не указана) |
| Команда | Пояснение |
|---|
scan (--range [IP Range]) (--intensity [(1,2,3)]) | Сканирует вашу сеть на наличие онлайн-хостов. Одно из первых действий после запуска.--range позволяет указать собственный диапазон IP-адресов.--intensity позволяет указать интенсивность/скорость сканирования (1 = быстро, 2 = нормально (стандартно), 3 = интенсивно).Пример: scan --range 192.168.178.1-192.168.178.40 --intensity 1 или просто scan. |
hosts | Отображает все просканированные хосты и базовую информацию. |
limit [ID1,ID2,...] [Rate] (--upload) (--download) | Ограничивает пропускную способность хоста(ов), связанных с указанным ID. |
block [ID1,ID2,...] (--upload) (--download) | Блокирует интернет-соединение хоста(ов). |
free [ID1,ID2,...] | Снимает ограничения пропускной способности. |
add [IP] (--mac [MAC]) | Добавляет пользовательский хост вручную. |
monitor (--with-id [ID1,ID2,...]) (--interval [time in ms]) | Отслеживает использование пропускной способности хоста(ов). |
analyze [ID1,ID2,...] (--duration [time in s]) | Анализирует использование трафика. |
watch | Показывает текущий статус отслеживания. |
watch add [ID1,ID2,...] | Добавляет хост(ы) в список отслеживания. |
watch remove [ID1,ID2,...] | Удаляет хост(ы) из списка отслеживания. |
watch set [Attribute] [Value] | Изменяет настройки отслеживания. |
clear | Очищает окно терминала. |
exit | Завершает работу приложения. |
sleep | Ожидает секунд. |
-h, --help | Отображает справку по команде. |
import-json, export-json [JSON_FILE_PATH] | Импорт/экспорт JSON-файла, содержащего IP-адреса и MAC-адреса, закодированные в base64. |