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

Основные настройки

Большинство изменений на этой вкладке требуют перезапуска сервиса. Исключения - язык интерфейса и настройки SOCKS5-прокси, которые применяются при сохранении.

Управление

Кнопки в верхней части настроек:

  • Перезапустить сервис - перезапуск b4 (ожидаемое время простоя: 5–10 секунд)
Сброс конфигурации

При сбросе конфигурации сохраняются: домены, категории GeoSite/GeoIP и настройки тестирования. Всё остальное (сеть, обход DPI, протоколы, логирование) сбрасывается.

restart

Очередь и обработка пакетов

Настройки ядра обработки пакетов через netfilter.

nfque

ПараметрОписаниеДиапазонПо умолчанию
Начальный номер очередиНомер NFQUEUE. Изменяйте, если другие программы используют те же номера0–65535537
Метка пакетаМетка netfilter для правил iptables/nftables. b4 использует её для маркировки обработанных пакетов-32768
Рабочие потокиКоличество параллельных воркеров. Больше потоков = выше пропускная способность на многоядерных системах1–164
Лимит TCP пакетов соединенияСколько TCP-пакетов на соединение анализировать. Сеты не могут превышать это значение1–10019
Лимит UDP пакетов соединенияСколько UDP-пакетов на соединение анализировать. Сеты не могут превышать это значение1–308
Лимиты пакетов

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

Функции

Протоколы

ПараметрОписаниеПо умолчанию
Поддержка IPv4Обработка IPv4-трафикаВкл
Поддержка IPv6Обработка IPv6-трафикаВыкл

Эти переключатели говорят, на какие семейства адресов смотрит b4. Они не включают и не выключают IPv6 на роутере и не мешают сети им пользоваться.

Что означает выключенная поддержка IPv6

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

Смягчают это две вещи. b4 вырезает IPv6-адреса из DNS-ответов для доменов, совпавших с сетом, поэтому клиенты, резолвящие через роутер, остаются на IPv4-пути, который b4 защищает, а сет можно явно нацелить на IPv6. См. DNS → Откат на IPv4.

Требуется перезапуск

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

Фаервол

firewall

ПараметрОписаниеПо умолчанию
Пропустить настройку IPTables/NFTablesb4 не будет создавать правила firewall. Используйте, если настраиваете правила вручнуюВыкл
Интервал мониторинга фаерволаКак часто проверять и восстанавливать правила (сек). Если правила удаляются внешними программами, b4 восстановит их10
Движок фаерволаКакой backend использовать для правилАвтоопределение
NAT MasqueradeВключить NAT-маскарад. Нужен для контейнеров и шлюзов, где b4 перенаправляет трафикВыкл
Интерфейс MasqueradeНа каком интерфейсе применять маскарад. Появляется при включении NAT MasqueradeВсе
Интервал мониторинга

Значение 0 полностью отключает мониторинг правил. Если внешняя программа или скрипт удалит правила b4 - они не будут восстановлены.

Движок фаервола - выбор из:

ЗначениеОписание
Автоопределениеb4 сам определит доступный backend (рекомендуется)
nftablesИспользовать nftables
iptablesИспользовать iptables
iptables-legacyИспользовать iptables-legacy (для старых систем)

Сетевые интерфейсы

Выбор интерфейсов для мониторинга. Интерфейсы отображаются как кликабельные метки - нажмите, чтобы включить/выключить.

к сведению

Если не выбран ни один интерфейс - b4 слушает все доступные.

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

logs

ПараметрОписаниеПо умолчанию
Уровень логированияДетализация логовINFO
Путь к файлу ошибокЗаписывать ошибки в файл/var/log/b4/errors.log
Часовой поясЧасовой пояс для временных метокСистемный (авто)
Мгновенный сбросСбрасывать буфер после каждой записи. Может влиять на производительностьВкл
SyslogДублировать логи в системный syslogВыкл

Уровни логирования:

УровеньЧто отображается
ОшибкаТолько ошибки
ИнфоОшибки + основные события
ТрассировкаИнфо + детали обработки пакетов
ОтладкаВсё, включая отладочную информацию
Уровень Ошибка

При уровне Ошибка разделы Логи и Соединения в веб-интерфейсе не будут показывать данные - они получают информацию из потока логов, который при этом уровне практически пуст.

Файл ошибок

b4 не ведёт постоянный лог-файл - всё выводится в stdout/stderr (и перехватывается веб-интерфейсом через WebSocket). В файл errors.log записываются только критические ошибки и аварийные завершения.

подсказка

Для диагностики проблем используйте Трассировка или Отладка. Для обычной работы достаточно Инфо.

Веб-сервер

Настройки веб-интерфейса b4.

webserver

ПараметрОписаниеПо умолчанию
Адрес привязкиIP для прослушивания. 0.0.0.0 = все интерфейсы, 127.0.0.1 = только localhost, :: = все IPv60.0.0.0
ПортПорт веб-интерфейса7000
TLS СертификатПуть к файлу сертификата .crt или .pem (пусто = HTTP)-
TLS КлючПуть к файлу ключа .key или .pem (пусто = HTTP)-
ЯзыкЯзык интерфейса: English / РусскийEnglish

Авторизация

ПараметрОписаниеПо умолчанию
Имя пользователяЛогин для входа в веб-интерфейс-
ПарольПароль для входа-
Частичная авторизация

Авторизация работает только когда заполнены оба поля. Если указано только имя пользователя или только пароль - авторизация не включится.

HTTP + авторизация

Если авторизация включена, но TLS не настроен - логин и пароль передаются по незашифрованному HTTP. Настройте TLS-сертификаты для безопасной передачи. Подробнее - в разделе Безопасность.

SOCKS5 Прокси

Встроенный SOCKS5-прокси. Приложения могут направлять через него трафик - он будет обработан b4 с применением настроенных сетов.

sock5

ПараметрОписаниеПо умолчанию
ВключитьЗапустить SOCKS5-серверВыкл
Адрес привязкиIP для прослушивания. 0.0.0.0 = все, 127.0.0.1 = только localhost0.0.0.0
ПортПорт прокси1080
Имя пользователяЛогин для SOCKS5-авторизации (пусто = без авторизации)-
ПарольПароль для SOCKS5-авторизации (пусто = без авторизации)-
Разрешённые источникиIP-адреса и CIDR-диапазоны, которым разрешено открывать соединение (пусто = без ограничения)-

Все поля кроме «Включить» становятся доступны только после включения прокси.

Заполнено только одно поле учётных данных

Имя пользователя и пароль работают только в паре. Если заполнено ровно одно из двух полей, прокси отказывает всем клиентам, а не работает без авторизации. Оба поля пусты - авторизации нет, оба заполнены - авторизация обязательна. Конфигурация, в которой задано только одно из них, отклоняется при сохранении.

к сведению

Ни одно поле SOCKS5 не требует перезапуска сервиса. Учётные данные и список источников применяются к работающему прокси, а изменение полей Включить, Адрес привязки и Порт перепривязывает слушающий сокет при сохранении.

Разрешённые источники

system.socks5.allowed_sources перечисляет адреса клиентов, которым разрешено открывать соединение с прокси. Пустой список означает отсутствие ограничения - это значение по умолчанию и поведение прежних версий. Если список не пуст, у клиента, адрес которого не попадает ни в одну запись, TCP-соединение закрывается на этапе accept: до обмена первым байтом SOCKS5 и до того, как соединение займёт слот.

Запись - это либо отдельный IP-адрес, v4 или v6, который читается как /32 и /128, либо CIDR-диапазон. Хостовая часть обнуляется, поэтому 192.168.1.7/24 сохраняется как 192.168.1.0/24.

Список из 192.168.1.0/24 и 127.0.0.1/32 принимает клиентов из этой подсети LAN и с самого роутера, а соединения из любых других источников закрывает.

Сетевое ограничение, а не фактор авторизации

Список источников - это контроль того же рода, что и правило файрвола: он определяет, какие адреса доходят до прокси, и ничего больше. Личность клиента он не устанавливает. Адрес источника можно подделать, DHCP-аренда переходит от одного устройства к другому, а запись для хоста, который сам является роутером, представляет все хосты за этим роутером. Клиента идентифицируют учётные данные.

Chrome и Chromium

Chrome и Chromium не поддерживают SOCKS5-авторизацию по имени пользователя и паролю (crbug 40323993), поэтому подключиться к прокси с авторизацией они не могут вообще. Список источников - способ обслуживать эти браузеры без учётных данных и при этом не отвечать произвольным клиентам.

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

Loopback не разрешается неявно. Клиенту, работающему на самом роутере, нужна явная запись 127.0.0.1/32, или ::1/128 для IPv6, иначе он получит отказ, как любой другой источник вне списка.

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

Порт остаётся доступным

Отказ в соединении не равен отсутствию прослушивания. Слушатель принимает соединение и затем закрывает его, поэтому порт по-прежнему отвечает на сканирование, и b4 не добавляет для него правил файрвола. С адресом привязки 0.0.0.0 по умолчанию прокси доступен из WAN независимо от содержимого списка источников. Чтобы убрать прокси из WAN, его по-прежнему нужно привязывать к адресу LAN.

0.0.0.0/0 и ::/0 отклоняются при сохранении конфигурации: запись, подходящая любому адресу, отключает ограничение, оставляя его на вид включённым. Запись, которая не является ни IP-адресом, ни CIDR-диапазоном, отклоняется так же.

MTProto Прокси

Встроенный Telegram MTProto-прокси с fake-TLS обфускацией. Трафик Telegram оборачивается в TLS-соединение, маскируясь под обычный HTTPS-трафик. Подробное руководство по настройке - в разделе MTProto Прокси.

mtproto

ПараметрОписаниеПо умолчанию
ВключитьЗапустить MTProto-серверВыкл
Адрес привязкиIP для прослушивания0.0.0.0
ПортПорт прокси3128
Домен для Fake SNIДомен, который будет виден в TLS-рукопожатии. DPI увидит этот домен вместо Telegramstorage.googleapis.com
DC RelayАдрес внешнего relay-сервера (host:port) для доступа к Telegram DC, если они заблокированы по IP-
SecretСекрет для подключения клиента Telegram. Вставьте его в настройках прокси в Telegram-

Кнопка Сгенерировать Secret создаёт секрет на основе текущего домена Fake SNI.

DC Relay

DC Relay нужен, когда b4 установлен на роутере внутри страны с блокировкой, а IP-адреса серверов Telegram заблокированы. В этом случае нужен VPS за пределами блокировки, который будет relay-сервером.

к сведению

Изменения настроек MTProto требуют перезапуска сервиса.

Глобальный MSS Clamping

Ограничение TCP Maximum Segment Size на SYN/SYN-ACK пакетах для трафика на порт 443. Уменьшает размер сегментов, что приводит к естественной фрагментации - DPI не может собрать фрагментированный ClientHello.

mss

ПараметрОписаниеДиапазонПо умолчанию
ВключитьАктивировать глобальный MSS Clamping-Выкл
Размер MSSРазмер MSS в байтах. Меньше значение = больше фрагментация10–146088
Где можно задать MSS

Мест три, от самого широкого к самому узкому:

  • Глобально, здесь - применяется ко всему трафику на порт 443.
  • Для устройства, в столбце MSS в таблице устройств ниже - например, для телевизора с YouTube. Работает независимо от глобального.
  • Для сета, на вкладке TCP → Общее - для адресов или устройств, на которые нацелен сет. Для покрываемых им соединений имеет приоритет над обеими настройками выше.

DNS

Здесь собрано то, что действует на DNS во всех сетах: перехватывается ли DNS поверх TCP, на какой порт он заворачивается, таймауты и откат на IPv4. Сам резолвер выбирается в сете. См. DNS.

В этой же группе находится Форсировать IPv4 для совпавших доменов. Пока поддержка IPv6 выключена, эта настройка вырезает IPv6-адреса из DNS-ответов для доменов, совпавших с сетом, чтобы такие клиенты оставались на IPv4-пути, который защищает b4, и не трогает все остальные имена. По умолчанию включена, а при включённой поддержке IPv6 неактивна. См. Откат на IPv4.

Фильтрация устройств

Ограничение работы b4 трафиком от конкретных устройств в сети. Полезно, если обход нужен не для всех устройств.

Устройства, найденные в таблице ARP, сопоставляются по MAC-адресу. У устройств, добавленных вручную, MAC-адреса в сети нет, поэтому они сопоставляются по введённому для них IP-адресу - и когда сет ограничен исходными устройствами, и для индивидуального MSS clamping. Задайте такому устройству фиксированный или зарезервированный адрес; если промежуточный роутер подменяет адрес источника его трафика до того, как трафик доходит до b4, сопоставить устройство не получится.

Список разрешённых и запрещённых устройств ниже отбирает трафик для обхода DPI только по MAC-адресу, поэтому список, состоящий из одних добавленных вручную устройств, оставляет обход DPI работающим для всех устройств.

devices

ПараметрОписаниеПо умолчанию
ВключитьАктивировать фильтрацию по устройствамВыкл
Определение производителяСкачать базу vendor для определения производителя по MAC (~6 МБ)Выкл
Инвертировать выборПереключение между белым и чёрным спискомВыкл
Режимы фильтрации
  • Белый список (по умолчанию) - обход DPI работает только для выбранных устройств
  • Чёрный список (инвертировать выбор) - выбранные устройства исключаются из обхода DPI

Таблица устройств

При включении фильтрации появляется таблица обнаруженных устройств:

СтолбецОписание
ВыборЧекбокс для включения/исключения устройства
MACMAC-адрес или по IP для устройства, добавленного вручную
IPТекущий IP-адрес
ИмяПсевдоним устройства (можно задать через иконку редактирования) или vendor
MSSИндивидуальный MSS Clamping для этого устройства (10–1460, пусто = выключен)

Кнопка Обновить перезагружает список устройств из ARP-таблицы.

Индивидуальный MSS

MSS Clamping можно настроить для каждого устройства отдельно - например, уменьшить MSS только для телевизора с YouTube, не затрагивая остальные устройства.