B4 — DPI bypass для Linux устройств с веб-интерфейсом и автоподбором настроек

Пилил для себя инструмент обхода DPI, в итоге вырос в отдельный проект. Уже какое-то время тестирую в небольшом комьюнити — работает, люди пользуются.
Решил выложить сюда, может кому ещё пригодится.

Что это: Пакетный процессор на базе netfilter queue. Работает на Linux — десктоп, сервер, роутер (OpenWRT, Entware, Keenetic, Merlin).

В чем прикол:

  • Discovery — автоматический подбор рабочей конфигурации. Вводите домен, жмете кнопку, B4 сам перебирает (ну, как сможет) стратегии и находит что работает у вашего провайдера. Не нужно гадать какие параметры ставить.

  • Веб-морда — всё настраивается через браузер. Сеты конфигураций, мониторинг соединений в реальном времени, добавление доменов прямо из потока трафика. Применение настроек без перезапусков, вот это вот все.

  • Мониторинг - так как веб-морда, выше сказано, б4 отслеживает и позволяет в UI показывать сопутствующие соединения к сервисам. О чень удобно для дебага в моменте отлова DPI.

  • Много стратегий фрагментации — TCP, IP, TLS Record Split, OOB, Disorder, Overlap, Combo и т.д. Можно комбинировать с фейкингом, desync-атаками, манипуляцией TCP window.

  • GeoSite/GeoIP — поддержка v2ray-формата, включая RUNETFREEDOM. Одной категорией youtube или ru-blocked покрывается тысячи доменов и айпи адресов.

  • DNS Redirect — перенаправление DNS-запросов на альтернативные серверы для обхода DNS poisoning.

  • Ну и все такое остальное вкусное из DPI.


Установка

Одна команда:

wget -O ~/b4install.sh https://raw.githubusercontent.com/DanielLavrushin/b4/main/install.sh && chmod +x ~/b4install.sh && ~/b4install.sh

После установки веб-интерфейс доступен на http://ip-устройства:7000


Быстрый старт: базовая настройка для РФ

Для тех кто хочет быстро проверить — вот минимальный рабочий конфиг:

1. Качаем геоданные

Идём в Settings → Geodat Settings, выбираем источник RUNET Freedom (рекомендуется для РФ, там актуальные списки блокировок), жмём Download Files.

2. Создаём сет

Settings → Sets → Create New Set

  • Название: например “RU Blocked”
  • Вкладка Targets:
    • Bypass GeoSite Categories: добавляем ru-blocked
    • Bypass GeoIP Categories: тоже ru-blocked
  • Вкладка Fragmentation:
    • Strategy: выбираем Combo

Сохраняем.

3. Проверяем

Открываем какой-нибудь заблокированный сайт. Если не работает — пробуем Discovery для конкретного домена, он подберёт оптимальные параметры под вашего провайдера.


Мониторинг

В разделе Domains видно все соединения в реальном времени. Если домен попал под правила сета — рядом будет бейдж с названием. Можно кликнуть на любой домен или IP и добавить его в нужный сет прямо из потока.


Ссылки


Написан на Go, собирается под кучу архитектур (amd64, arm64, armv7, mips и т.д.).

Буду рад фидбеку, багрепортам, идеям. Если что-то не работает или нужна помощь с настройкой — пишите сюда или в телегу, разберёмся.

PS
важно отметить возможны конфликты с предустановленными другими подобными шаталками типа youtubeUnblock - для полноценного теста мой совет - остановите остальные dpi сервисы на устройстве.

А какой размер то?

ой это у вас busybox не умеет в часть параметров. Я подправил установочный скрипт - теперь должно быть все хорошо. Размер тут не при чем был, но если что - порядка 16-18мб.

Можете по возможности добавить русский язык?

Надо ли для entware ставить какие-то зависимости? Ну и наверное стоило бы указать команды для других устройств,например, entware. Там та команда что сейчас указана не сработает

вообще нет, но иногда стоит обновить iptables и nohup
opkg install iptables
opkg install nohup

вы про какие команды? вообще базово именно на entware он изначально и задуман работать, и работает. Там какие-то ошибки у вас возникают?

Я про команду установки

wget -O ~/b4install.sh https://raw.githubusercontent.com/DanielLavrushin/b4/main/install.sh && chmod +x ~/b4install.sh && ~/b4install.sh

Она разве сработает,например, на entware который на keenetic так как ~/b4install.sh он ее вряд ли корректно развернет в домашний каталог без точного указания. Ок, wget поставил но сам сервис отказался стартовать и просто упал

image

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

UPD:Для тех, кто захочет это поставить на кинетик вам понадобиться wget-ssl,coreutils-nohup и возможно что-то еще но даже в таком случае геобазу у меня не качает
2025/12/21 16:45:42.110619 [ERROR] Failed to create directory: mkdir /etc/b4: read-only file system

Нужна в общем более подробная инструкция от автора в данный момент это можно запустить на keenetic ultra+entware на usb но геобазу качать не дает из-за того что файловая система в r/o при чем в скрипте он сам пропустил скачку geoip базы.

Можно поправить вообще-то скрипт и переместить папку с фс роутера (там скваш система) на другое место.

некоторые детали

image
Можно конечно тут перебить пути, но все в скрипте задано через переменные.
Так что надо проверять другие скрипты на совпадение.

Кинект не поддерживается

del

Что то стратегии очень долго ищет, на каждую примерно по секунд 30. Минут 10 пытался найти стратегию для ютуба, в итоге ничего не нашёл.

Поставил на keenetic (hooper, last beta)

Ищет не долго (максимум 10 секунд). Никаких дополнительных махинаций до запуска скрипта не выполнял. Пока всё вкусно

Я отключал зефир перед установкой и поиска стратегий. Может удалить надо вовсе его?

Спасибо!

Красиво и функционально.

Работает отлично..но… не играются видео с гуглвидео доменов (РТК спб) . Есть какой-нибудь фикс?

Странно. Удалил зефир. Стратегии находит, быстро. Но скорость у всех не выше 0.5 мегабит. И сайты по прежнему не работают, хотя хоть какой то признак жизни должны давать. У меня установлен DOH. Он может влиять на работу b4?

Попробую поднять в докере на MikroTik. Было бы классно, конечно, если бы был готовый образ :slight_smile:

Друзья, добавил множество изменений в 1.27.0, большой упор был сделан на Дискавери опцию (попытки подбора нужных страт).

[1.27.0] - 2025-12-27

ДОБАВЛЕНО: Панель Discovery Logs показывает прогресс в реальном времени во время поиска конфигурации.

ДОБАВЛЕНО: Умное определение CDN для 20+ популярных сервисов (Instagram, Facebook, YouTube, Twitter/X, Telegram, Discord, TikTok, Netflix, Spotify и др.). Discovery теперь использует полные диапазоны IP вместо одиночных DNS-результатов. Список поддерживаемых сервисов. (маппинг для особо дотошных тут b4/src/discovery/dns.json at main · DanielLavrushin/b4 · GitHub )

ДОБАВЛЕНО: Автоматический обход DNS для CDN-сервисов. При обнаружении геоблокированных IP, B4 использует фрагментированные DNS-запросы к внешним резолверам для поиска рабочих серверов.

УЛУЧШЕНО: Панель Discovery Logs теперь показывает более детальный прогресс в реальном времени во время определения DPI, проверок DNS и тестирования стратегий.

УЛУЧШЕНО: Discovery теперь использует DNS-over-HTTPS (зашифрованный DNS через Google/Quad9/Cloudflare) для определения подмены IP-адресов провайдером. При обнаружении DNS-отравления B4 подключается напрямую к реальному серверу для продолжения тестирования стратегий обхода.

ИСПРАВЛЕНО: QUIC-трафик (используется YouTube, Google и многими современными сайтами) игнорировался при настройке пользовательских UDP-портов. Теперь UDP-порт 443 всегда отслеживается независимо от других настроек портов.

ИСПРАВЛЕНО: UDP-трафик на определённые IP теперь корректно использует набор правил, в котором указаны и IP, и фильтр портов вместе, а не другой набор, который совпадает только по порту.

Привет, попробовал чистую установку на роутер кинетик, ютуб не работает, точнее само видео не грузится, попробовал Discovery , но безуспешно. В настройках предварительно поменял DNS на 192.168.1.1 - Adguard Home стоит с набором DNS серверов. Что может быть не так ?

Роутер на платформе AX3000 128/256 без USB, Кинпорт 5.03 бета

Entware, NFQWS установлена руками и на штатной стратегии работает как часы. Но это пока что ..

B4 на Entware OPKG не получается установить.

Команду установки в указанном автором виде не принимет.

При отдельном запуске скрипта, в конце пишет r/o.

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

Если там скваш, то никак не установить без установки внешней памяти.
Так что ищите что-то без скваш-фс

Возможно, т.к. там закрытая кинпортед. Но NFQWS то отлично на неё установилась и крутиться…

Прошиться с кинпортед на полностью открытую OpenWRT? Попробую