Перейти к основному содержимому

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

Стандартный 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
Работа через SSH

Сервис 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 / сервис не запускается

  1. Убедитесь что модули ядра установлены и загружены (см. раздел «Модули ядра» выше)
  2. Проверьте логи: 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.