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

Дашборд

Дашборд - страница Главная, с которой открывается веб-интерфейс. Она показывает, работает ли движок пакетов и получает ли он пакеты, сколько соединений проверяет b4 и сколько из них совпало с сетами, что каждый включённый сет делал за последний час и что требует внимания. Данные приходят по WebSocket раз в секунду.

Дашборд

Сверху вниз на странице идут строка состояния, строка о живых обновлениях, пока они прерваны, карточка движка пакетов, если движок не запустился, список Требует внимания, если в нём что-то есть, и панели:

ПанельКогда видна
АктивностьВсегда
СетыВсегда
Последние измененияВсегда
Активные эскалацииПока хотя бы один хост в эскалации
БлокировкиПока включён сет блокировки или если что-то было заблокировано после последнего сброса счётчиков
TelegramПока включён MTProto-прокси или Telegram через WebSocket

Время на дашборде показывается в часовом поясе браузера. b4 отсчитывает каждое время от собственного времени работы и переводит его в часы роутера в момент отправки, поэтому история остаётся в правильном порядке, когда роутер выставляет часы с опозданием, как роутер без часов на батарейке, который синхронизирует время по NTP после загрузки.

Строка состояния​

Строка состояния

ЯчейкаЧто показывает
СостояниеРаботает, Запускается, Останавливается или Сбой движка, пока движок пакетов не работает, см. Движок пакетов не запущен
ДвижокNFQUEUE или TUN и число рабочих потоков, например NFQUEUE x4
ФайрволИспользуемый бэкенд файрвола, например iptables или nftables, и когда монитор файрвола последний раз проверял правила b4. не отслеживаются - монитор не работает, например при Интервале мониторинга фаервола, равном 0, в режиме NFQUEUE. Настраивается вне b4 - включено Пропустить настройку IPTables/NFTables, и своих правил b4 не ставит. Строка вида восстановлены 4 раза, последний в 19:30 показывает, сколько раз с запуска b4 монитор вернул правила, которые удалило что-то другое; некоторые прошивки роутеров делают это постоянно, и ошибкой это не считается. См. Настройки, Основные, Файрвол
Время работыВремя с запуска b4. Подсказка показывает время запуска, а после сброса счётчиков и время, с которого они считают
Память b4Резидентная память b4 (RSS) и её доля от памяти роутера. Подсказка даёт пик за последние 24 часа, текущее значение и общий объём памяти роутера
CPUВремя CPU, которое b4 занял за последние 10 секунд, в доле от всех ядер роутера. Подсказка показывает самую загруженную минуту последнего часа, в том числе в доле одного ядра
Память b4 за 24 чПоявляется, когда b4 проработал час, и занимает остаток строки: линия пиков RSS за каждые десять минут, от нуля, поэтому устойчивый рост заметен, а мелкие колебания остаются ровными. Подсказка над точкой даёт её десять минут и пик

Показатели среды выполнения Go (куча Go в использовании и зарезервированная, горутины, потоки ОС, открытые файловые дескрипторы, циклы GC) находятся в разделе Процесс окна Информация о системе в разделе Настройки, Система, Сервис.

Кнопка меню справа в строке содержит Настроить и Сбросить счётчики.

Живые обновления​

Страница открывает WebSocket к /api/ws/metrics, получает полный снимок, а затем по одному обновлению в секунду. Когда обновления прекращаются, под строкой состояния появляется строка об этом, строка состояния и панели тускнеют, а на каждой панели появляется метка Не обновляется с со временем последнего обновления.

Живые обновления прерваны

СтрокаЧто значит
Ожидание первых данных от b4Снимок ещё не пришёл. Через 5 секунд строка начинает отсчитывать секунды и называет две возможные причины: сервис перезапускается или прокси между браузером и роутером блокирует WebSocket
Нет связи с b4 - последнее обновление в 21:37:50, повтор через 5 сСоединение оборвалось. Браузер повторяет попытку примерно через 1, 2, 4, 8 и 16 секунд, затем каждые 30 секунд, а также сразу, когда вкладка снова становится видимой или возвращается сеть. Повторить пробует немедленно
Живые обновления недоступны - данные обновляются раз в 5 сWebSocket не открывается, а GET /api/metrics отвечает, поэтому страница запрашивает снимок каждые 5 секунд
Сессия истекла - войдите сноваВеб-интерфейс требует входа, а сессия больше не действует. Войти открывает страницу входа

Данные считаются устаревшими, если обновление не приходило 3 секунды, а при запросах раз в 5 секунд - 8 секунд.

Движок пакетов не запущен​

Если движок пакетов не запустился, под строкой состояния появляется карточка с причиной и с тем, что b4 сделает дальше, а Состояние показывает Сбой движка. Само это состояние описано в разделе Если движок не запустился.

20260928134207

Карточка показывает ошибку, остановившую движок, в том виде, в каком она записана в лог, и время следующей автоматической попытки с числом оставшихся попыток или сообщение, что попыток больше нет.

КнопкаДействие
Переключить на TUN / Переключить на NFQUEUEСохраняет другой режим движка и открывает окно перезапуска
Перезапустить b4Открывает окно перезапуска без изменения настроек, например после загрузки недостающего модуля ядра
Настройки движкаОткрывает Настройки, Основные, Движок пакетов

Требует внимания​

Требует внимания

Список под строкой состояния собирает то, что требует действий: сначала ошибки, затем предупреждения, по одной строке на пункт и со ссылкой туда, где это исправляется. Пока список пуст, его нет на странице; показываются шесть пунктов, остальные - под Показать ещё N.

ПунктКогда появляетсяСсылка
Сет X: прокси хост:порт недоступенUpstream proxy-сета не ответил на последние попытки подключения. Ошибка, если трафик сета не проходит, и предупреждение, если Прямое подключение при недоступности upstream отправляет его напрямую. В строке - число сбоев подряд и время последнего, в подробностях - ошибкаМаршрутизация - вкладка DNS & Маршрутизация сета
Мост Telegram: ...Включён Telegram через WebSocket, и не запустился его слушатель, не установлено его правило файрвола (предупреждение, если настройка файрвола в b4 выключена), его соединения перехватывает правило другой программы, в ядре нет поддержки TPROXY, не скачался список адресов Telegram (предупреждение) или устройства находятся за сетевым мостом с включённым bridge netfilter (предупреждение). Каждый случай разобран в разделе Устранение неполадокНастройки Telegram
Проверки мониторинга не проходят для сета X, Мониторинг ищет рабочую стратегию для сета X, Мониторинг не может проверить сет XОтслеживаемый сет в статусе Проблема или Пауза, ждёт восстановления или восстанавливается, либо его нельзя проверить, см. Статусы. В подробностях - причинаОткрыть сет - вкладка Дискавери сета
Мониторинг прекратил поиск для сета X, его сайты могут не открываться (ошибка)Три восстановления отслеживаемого сета подряд не удалисьОткрыть сет
Мониторинг выключен, хотя его запрашивают N сетовУ сетов включено Поддерживать работу сета с помощью мониторинга, а сам мониторинг выключенМониторинг
За последние N мин в b4 не пришло ни одного пакета; если устройствами пользуются, их трафик не доходит до b4Движок пакетов работает, но 15 минут или дольше не получал ни одного пакета. В строке - время последнего пакета, а если пакетов не было с запуска, то время запуска b4, и строка начинается со слов С запуска b4Настройки, Основные, Движок пакетов
Ошибки запускаНе запустился SOCKS5-сервер, MTProto-прокси или веб-сервер, сертификат и ключ TLS веб-сервера оказались непригодны и вместо HTTPS работает обычный HTTP, или не загрузилась часть целей сетов. В строке - время, в подробностях - ошибкаНастройки: Основные, SOCKS5 для SOCKS5-сервера и Система, Веб-сервер для веб-сервера; Настройки Telegram для MTProto-прокси; Сеты для целей
b4 обновлён на диске, перезапустите сервис, чтобы работала новая версияФайл, из которого запущен b4, изменился; проверяется каждые 10 секундПерезапустить открывает окно перезапуска
ПерегрузкаЗа последние 10 минут b4 пропускал обход для пакетов, потому что одновременно выполнялось уже 512 инъекций, не смог отправить сформированные им пакеты, или его очередь пакетов переполнялась и ядро отбрасывало пакеты, предназначенные ему. Каждый случай - со своим числомНастройки, Основные, Движок пакетов
Таблица соединений роутера заполнена на N %, новые соединения могут не устанавливатьсяnf_conntrack_count достиг 90 % от nf_conntrack_max; значения читаются каждые 10 секунд. В подробностях - оба числа-
b4 держит N потоков ОС, а среда выполнения Go останавливает b4 на 4 000b4 держит 2 000 потоков ОС или больше. В этот момент b4 также записывает дамп горутин goroutines.txt в каталог логов, если запись логов в файл включенаЛоги
Трафик IPv6 обходит все сеты: у роутера есть IPv6, а IPv6 в b4 выключенУ роутера есть глобальный IPv6-адрес, а Поддержка IPv6 в разделе Настройки, Основные, Движок пакетов выключена. В режиме TUN вместо неё показывается Режим TUN не обрабатывает IPv6, поэтому трафик IPv6 идёт мимо b4Настройки, Основные, Движок пакетов

У ошибки запуска и у пункта про IPv6 есть крестик, который скрывает их в этом браузере. Ошибка запуска скрывается только для этого случая, поэтому та же ошибка после следующего запуска появится снова. Скрытый пункт про IPv6 скрывает и предупреждение об IPv6 в разделе Настройки, Основные.

Что учитывается в числе соединений​

Активность, числа на панели Сеты и общие счётчики соединений считают соединения, каждое один раз. Соединение - это одно TCP-соединение или один поток UDP, различаемые по адресам и портам. В b4 попадают только первые пакеты соединения, столько, сколько допускают Лимит TCP пакетов соединения и Лимит UDP пакетов соединения в разделе Настройки, Основные (по умолчанию 19 и 8), поэтому соединение учитывается в момент начала, и ничто на дашборде не говорит, сколько оно длилось и сколько данных передало.

Учитываются:

  • соединения на порты захвата: TCP и UDP 443, порты из фильтров портов сетов и TCP 80, пока в каком-либо сете включена Пустая строка перед методом HTTP;
  • соединения устройств в сети и соединения, которые открывает сам роутер, включая соединения самого b4, например проверки обновлений и проверки мониторинга;
  • каждое соединение или UDP-сессия, которые proxy-сет пересылает через свой upstream, и каждая сессия SOCKS5-сервера b4, которая уходит через upstream сета.

Не учитываются:

  • соединения на другие порты, кроме тех, что пересылает proxy-сет, DNS-запросы и UDP на частные адреса;
  • проверочные соединения Дискавери;
  • соединения устройств, которые фильтрация устройств не пускает в очередь пакетов;
  • соединения, которые файрвол отбрасывает раньше, чем их увидит b4, см. Блокировки.

Соединение относится к первому сету, с которым оно совпало. Соединение, которое совпадает с сетом только на одном из следующих пакетов, обычно на TLS ClientHello после SYN, переходит из вне сетов в в ваших сетах, пока его минута ещё не закончилась. Эскалация, которая переводит хост в другой сет, его соединения повторно не учитывает.

Активность​

Активность

График показывает соединения, которые проверил b4, по минутам, в двух частях:

ЧастьЧто значит
в ваших сетахСоединение совпало с включённым сетом
вне сетовНи один включённый сет с ним не совпал

Строка над графиком суммирует обе части за выбранный период. Числа больше 999 сокращаются, например 3,6 тыс., а подсказка над суммой показывает её полностью.

ЭлементДействие
1 чСтолбец на каждую минуту последнего часа
24 чСтолбец на каждые десять минут последних 24 часов. Высота столбца - среднее за минуту, поэтому у обоих периодов общий масштаб; подсказка даёт сумму за десять минут и среднее в минуту
ТаблицаТе же интервалы строками: время, по столбцу на каждую часть и итог
Живой трафикОткрывает страницу Трафик
Домены вне сетовОткрывает страницу Трафик с включённым Только без правил

Выбранный период запоминается браузером. Крайний правый столбец с пунктирной рамкой - текущая минута или текущие десять минут, и его подсказка говорит, сколько времени прошло. Подсказку со временем интервала, каждой частью и итогом показывает наведение на столбец, касание столбца на сенсорном экране или переход к нему стрелками, когда график в фокусе. Home и End переходят к первому и последнему столбцу, Escape закрывает подсказку. На узком экране два интервала делят один столбец, и подсказка об этом сообщает.

Если b4 запустился внутри выбранного периода, линия отмечает b4 запущен в с временем, и до неё ничего не рисуется: b4 тогда не работал, поэтому этих минут нет, а не ноль. Период без единого соединения подписан За последний час b4 не проверил ни одного соединения или За последние 24 часа b4 не проверил ни одного соединения.

Если после последнего сброса счётчиков защита от RST-инъекций что-то отбросила, строка под графиком показывает, сколько.

История хранится в памяти b4, 60 минут и 24 часа, поэтому после перезапуска b4 она начинается заново. Сброс счётчиков её не трогает.

Сеты​

Сеты

По строке на каждый включённый сет, в порядке списка сетов.

ЭлементЧто показывает
ИмяИмя сета, ссылка на его редактор
ТипОбход - маршрутизация в сете выключена, он применяет свои стратегии обхода DPI. Маршрут - сет направляет свой трафик через интерфейс. Прокси - сет пересылает трафик через вышестоящий SOCKS5-прокси или в режиме «Telegram через WebSocket». Блокировка - сет блокирует свои цели. См. Маршрутизация и Блокировка
N за последний часСоединения, совпавшие с сетом за последние 60 минут, включая текущую, каждое учтено один раз, см. Что учитывается в числе соединений. У отслеживаемого сета сюда входят и проверки самого мониторинга: они идут через рабочий движок, как любые другие соединения
совпадениеКогда сет последний раз совпал с новым соединением, или совпадений с запуска b4 не было
открыто сейчас: NProxy-сеты: соединения, открытые через слушатель сета в данный момент
прокси недоступенProxy-сеты, чей upstream не ответил на последние попытки подключения. Подсказка называет upstream, число сбоев подряд, время последнего и ошибку и говорит, проходит ли трафик сета или идёт напрямую
N DNS-запросов заблокированоСеты блокировки: DNS-запросы, заблокированные сетом после последнего сброса счётчиков
Метка мониторингаОтслеживаемые сеты: состояние сета в мониторинге

Метка коротко передаёт статус сета в мониторинге, а подсказка над ней даёт полный статус с причиной:

МеткаСтатус мониторинга
РаботаетРаботает
СбойПроблема или Пауза
Подбор стратегииПоиск в очереди или Идёт поиск
Поиск прекращёнПоиск прекращён
Нельзя проверитьНельзя проверить
Ещё не проверенВ очереди или ещё ни одной проверки
Мониторинг выкл.Сет запрашивает мониторинг, но сам мониторинг выключен

Метка открывает вкладку Дискавери сета, а пока мониторинг выключен - страницу мониторинга.

Под строками N отключённых сетов открывает список сетов. Пока ни один сет не отслеживается и включён хотя бы один сет обхода, строка b4 не проверяет, открываются ли эти сайты - настройте мониторинг ведёт на страницу мониторинга. Без сетов панель показывает Сетов пока нет: b4 ничего не меняет, пока сет не нацелен на сайты со ссылками на создание сета и на Дискавери, а если все сеты отключены - Ни один сет не включён: b4 ничего не меняет, пока сет не включён.

Последние изменения​

Последние изменения

Что происходило с b4 с момента запуска, сначала новое: восемь записей, затем Показать ещё N. У каждой записи - давность с точным временем в подсказке и ссылка, где она уместна. Предупреждения и ошибки помечены уровнем.

ЗаписьКогда пишетсяСсылка
b4 1.84.1 запущен (NFQUEUE, 4 потока)b4 закончил запуск-
Движок NFQUEUE не запустился (ошибка)Движок пакетов не запустился; в подробностях - ошибкаОткрыть логи
Настройки применены: N сетов, N доменов, N IP-адресовПрименено сохранение настроекОткрыть сеты
Часть целей сетов не загрузилась, SOCKS5-сервер не запустился, MTProto-сервер не запустился, Ошибка веб-сервера, TLS веб-сервера не работает, вместо него используется обычный HTTP (ошибки)Эта часть не запустилась при старте, или веб-сервер отказал позже; в подробностях - ошибкаОткрыть логи
Правила файрвола восстановленыМонитор файрвола вернул правила b4. Восстановления в пределах одного часа по часам объединяются в одну запись: Правила файрвола восстановлены N раз с ЧЧ:ММ-
Мониторинг переключил X на YВосстановление мониторинга записало в сет новую стратегиюОткрыть сет
Мониторинг прекратил поиск для X (предупреждение)Мониторинг прекратил поиск для сета; в подробностях - причинаОткрыть сет - вкладка Дискавери сета
ИИ-агент изменил настройкуИИ-клиент изменил настройку или отменил изменение через MCP. В подробностях - путь настройки, значение не показывается никогдаНастройки MCP

Список хранится в памяти b4, не больше 50 записей, поэтому после перезапуска b4 он начинается заново. Сброс счётчиков его не трогает.

Активные эскалации​

Активные эскалации

Панель видна, пока хотя бы один хост в эскалации, то есть переведён в резервный сет, потому что его сет раз за разом не справлялся. В каждой строке - хост, сет, в который он переведён, число эскалаций подряд, если их больше одной, и время до возврата в исходный сет; подсказка над временем показывает его по часам. В заголовке - число эскалаций после последнего сброса счётчиков.

Очистить после подтверждения с числом хостов разом возвращает все хосты в эскалации в их исходные сеты. Заодно b4 забывает сбои RST и DNS, накопленные для эскалации, у всех хостов, поэтому хост снова уйдёт в эскалацию только после новых сбоев. Сброс счётчиков не делает ни того, ни другого.

Блокировки​

Блокировки

Панель видна, пока включён сет блокировки или если что-то было заблокировано после последнего сброса счётчиков. Первая строка показывает, что b4 заблокировал за это время: DNS-запросы, на которые он ответил или которые отбросил за сет блокировки, и заблокированные им соединения, каждое один раз.

Домены перечисляют заблокированные имена, а для соединения без имени - адрес, Устройства - устройства, чьи запросы и соединения были заблокированы; сначала новые, у каждой записи число блокировок и время последней. В списках хранятся 100 доменов и 50 устройств, замеченных последними. Устройство открывает страницу Трафик с отбором по нему.

Числа отражают то, что b4 заблокировал сам. Когда адреса заблокированного сайта уже известны сету, файрвол отбрасывает следующие соединения с ними раньше, чем их увидит b4, так же как соединения с адресными целями сета, и такие отбрасывания не учитываются.

Telegram​

Telegram

Панель видна, пока включён MTProto-прокси или Telegram через WebSocket. Настройки Telegram открывают раздел Настройки, Telegram.

Для MTProto-прокси первая строка даёт его порт, число сетей клиентов, которые пользуются им сейчас, открытые подключения и объём отправленного и полученного. Строка на каждый секрет повторяет эти числа для него, а подсказка над числом сетей перечисляет адреса. Устройства с одним подключением к интернету считаются одной сетью. Данные сессии добавляются, когда сессия заканчивается, поэтому долгая сессия показывает свой трафик только после закрытия. Числа хранятся в памяти с запуска прокси, и сброс счётчиков их не трогает.

Для Telegram через WebSocket одна строка даёт число переправленных сессий, время последней и число неудачных подключений к дата-центрам Telegram, а за ними не работает, пока у моста нет правила или слушателя, его соединения перехватывает правило другой программы или в ядре нет поддержки TPROXY. Это состояние страница запрашивает раз в минуту. Те же числа есть на карточке моста в разделе Настройки, Telegram, а объяснены они в разделе Устранение неполадок.

Настройка главной страницы​

Настройка главной страницы

Настроить в меню строки состояния переводит панели в режим правки, Готово выходит из него.

ДействиеКак
Переместить панельПеретащить за ручку в заголовке, или поставить фокус на ручку, нажать пробел или Enter, передвинуть стрелками и снова нажать пробел или Enter. Escape отменяет
Изменить ширинуКнопки минус и плюс меняют её на одну колонку из двенадцати, от 3 до 12. Перетаскивание правого края делает то же
СкрытьКнопка с глазом. Скрытые панели перечислены в полосе правки, щелчок по панели возвращает её; панель, которой сейчас нечего показать, помечена нет данных
Начать зановоСбросить раскладку, появляется, когда раскладка отличается от исходной

По умолчанию Активность занимает всю ширину, Сеты (8 колонок) стоят рядом с Последними изменениями (4), Активные эскалации и Блокировки занимают по 6 колонок, а Telegram - всю ширину. Ширина действует, пока область панелей не уже 960 пикселей; на более узкой панели идут друг под другом в своём порядке. Панель, которой нечего показать, не оставляет пустого места.

Раскладка сохраняется в конфигурации b4, в ui.dashboard, поэтому все браузеры, открывающие веб-интерфейс, получают одну и ту же. Браузер хранит копию и пользуется ею, пока b4 недоступен.

Сброс счётчиков​

Сброс счётчиков

Сбросить счётчики в меню строки состояния после подтверждения со списком того, что сбрасывается и что сохраняется, запускает счётчики ниже заново с этого момента. Подсказка Время работы после этого показывает время, с которого они считают.

Сбрасываются:

  • заблокированные DNS-запросы и соединения, списки заблокированных доменов и устройств и число DNS-запросов заблокировано у сетов блокировки;
  • пакеты RST, отброшенные защитой от RST-инъекций;
  • число эскалаций в заголовке Активные эскалации;
  • общие счётчики соединений, те, что отдают b4_status, b4_metrics и /api/metrics/summary.

Сохраняются:

  • история Активности, а вместе с ней числа на панели Сеты;
  • время работы;
  • Последние изменения;
  • хосты, которые сейчас в эскалации: их возвращает Очистить на панели Активные эскалации;
  • числа Telegram.

До версии 1.84.0 включительно кнопка называлась Сброс статистики и заодно возвращала все хосты в эскалации в их исходные сеты.

Через API и MCP

GET /api/metrics отдаёт снимок, который страница первым получает через /api/ws/metrics, а GET /api/metrics/summary - его краткую сводку. POST /api/metrics/reset и POST /api/escalations/clear - это Сбросить счётчики и Очистить. Через MCP те же счётчики отдают b4_status и b4_metrics.