Проект представляет собой реализацию простого web-интерфейса (GUI) для удобного управления утилитой netem (эмулятор трафика) на устройствах с OpenWRT.
Целью является упрощение отладки сетевых приложений и устройств. Можно эмулировать 2G, 3G, ADSL, да что угодно и в каких угодно условиях.
Вдохновлен проектами: trafficcop и openwrt-traffic-emulator.
-
Установить пакет
kmod-netemи его зависимости (tc,kmod-sched) через web-интерфейс или командойopkg install tc kmod-netem kmod-sched. -
Проверить интерфейсы в начале файла
ne:#interfaces ifi='br-lan' #incoming ifo='wlan0' #outgoingЕсли есть отличия, то нужно исправить на ваши. Я подключаюсь к интернету через
wifi, потому для меняifo='wlan0', у вас это может бытьeth1при проводном подключении, тогда будет так:ifo='eth1'. -
Скопировать файл
neв/www/cgi-bin/ -
Выдать файлу
neправа на запуск (chmod 775 /www/cgi-bin/ne)
Перейдите на http://<router_ip>/cgi-bin/ne, где <router_ip> - ip вашего устройства с OpenWRT.
Там вас встретит интерфейс:

Введите необходимые вам настройки для эмулирования сети и выберите для какого интерфейса применить правило. Для установки выбранных настроек нажмите на кнопку Apply.
Для сброса правил на обоих интерфейсах нажмите кнопку Reset.
Кстати! После применения и обновления страницы значения в полях не отображают текущих настроек правил. Они показывают только последние введенные значения в эти поля.
Код не имеет средств авторизации, GUI доступно по прямому адресу.
Кроме того хак получения параметров из QUERY_STRING с использованием eval может привести к выполнению кода с уровнем прав root, переданного в GET-запросе.
В зависимости от выбранного интерфейса, параметров правил и того, через какой интерфейс управляете вы, можно затруднить себе управление или вовсе его потерять. Но правила сбрасываются после перезагрузки, потому в худшем случае вам придется дойти до устройста и перезагрузить его.
Вы должны осознавать все это, используя данный код.
Проверено на DIR-615 E4 с предварительно увеличенной ПЗУ с 4 до 16 МБ, а так же ОЗУ с 32 до 64 МБ, ОС OpenWrt 19.07.10.
