OpenWRT
Требования
- OpenWRT 19.07 и выше
- Внешнее хранилище (USB или extroot) - рекомендуется, так как на внутренней памяти роутера может не хватить места
На роутерах с OpenWRT внутренняя память ограничена (overlay). Если доступно менее 2 МБ, установщик предупредит об этом. Рекомендуется использовать extroot или USB-накопитель.
Инструкция по настройке extroot: https://openwrt.org/docs/guide-user/additional-software/extroot_configuration
Установка
Подключитесь к роутеру по SSH и выполните:
curl -fsSL https://raw.githubusercontent.com/DanielLavrushin/b4/main/install.sh | sh
Если curl не установлен:
opkg update && opkg install curl ca-certificates
Или через wget:
wget -qO- https://raw.githubusercontent.com/DanielLavrushin/b4/main/install.sh | sh
Стандартный wget в OpenWRT (BusyBox) не поддерживает HTTPS. Установите полную версию:
opkg update && opkg install wget-ssl ca-certificates
Модули ядра
Установщик попытается загрузить необходимые модули автоматически. Если при запуске вы видите предупреждение [WARN] No netfilter queue module available или ошибки связанные с nftables - установите модули вручную.
OpenWRT 24.x+ (apk)
apk add kmod-nft-queue kmod-nft-nat kmod-nft-compat kmod-nft-conntrack
OpenWRT 23.x и ниже (opkg)
opkg update
opkg install kmod-nft-queue kmod-nft-conntrack nftables-json coreutils-nohup
Для совсем старых версий (без nftables):
opkg install kmod-nfnetlink-queue kmod-ipt-nfqueue iptables-mod-nfqueue iptables-mod-conntrack-extra
Загрузка модулей
После установки модулей может потребоваться загрузить их вручную:
modprobe nft_queue
modprobe nft_ct
modprobe xt_connbytes
Если команда выполняется без вывода - модуль загружен успешно.
Управление сервисом
/etc/init.d/b4 enable # автозапуск при загрузке
/etc/init.d/b4 start
/etc/init.d/b4 stop
/etc/init.d/b4 restart
Сервис b4 работает как системный демон - он продолжит работать после закрытия SSH-сессии (PuTTY, терминал и т.д.). Не нужно использовать screen или nohup вручную.
Пути
При наличии /opt (extroot/USB):
| Что | Где |
|---|---|
| Бинарник | /opt/bin/b4 |
| Конфигурация | /opt/etc/b4/b4.json |
Без внешнего хранилища (fallback):
| Что | Где |
|---|---|
| Бинарник | /usr/bin/b4 |
| Конфигурация | /etc/b4/b4.json |
Веб-интерфейс
После запуска b4 доступен по адресу http://<IP роутера>:7000. Например, если IP роутера 192.168.1.1, откройте в браузере:
http://192.168.1.1:7000
LuCI-приложение
Существует сторонний пакет luci-app-b4, который добавляет управление b4 в интерфейс LuCI. Проект находится в стадии alpha и покрывает часть функций. Основной веб-интерфейс b4 (порт 7000) по-прежнему доступен.
Устранение неполадок
Service crashed / сервис не запускается
- Убедитесь что модули ядра установлены и загружены (см. раздел «Модули ядра» выше)
- Проверьте логи:
logread | grep b4
Error: Could not process rule
Если b4 вылетает с ошибкой при добавлении правил в цепочку, возможно остались «битые» таблицы от предыдущего неудачного запуска. Очистите их:
nft delete table inet b4_mangle 2>/dev/null
После этого запустите b4 заново:
/etc/init.d/b4 restart
Низкая скорость / тормозит видео
Проверьте настройку Software flow offloading в разделе Network → Firewall. Попробуйте включить или выключить её - на некоторых устройствах это влияет на производительность b4.