- Created UDP documentation detailing traffic handling and filtering options. - Added backup settings documentation for configuration backup and restoration. - Introduced core settings documentation covering service management, packet processing, and logging. - Added discovery settings documentation for automatic configuration detection. - Created geodata documentation explaining GeoSite and GeoIP databases and their usage. - Added payloads documentation for generating and managing TLS payloads for faking. - Introduced security documentation for web interface authorization and HTTPS setup. - Added domain monitoring documentation for automatic detection of blocked domains and recovery processes. - Created footer and navbar localization files for Russian language support.
7.8 KiB
| sidebar_position | title |
|---|---|
| 6 | Сеты |
Сеты
Сет - это набор настроек обхода DPI, привязанный к списку доменов, IP-адресов, UDP-портов или категорий GeoSite/GeoIP. Можно создать несколько сетов с разными стратегиями для разных сайтов.
Управление сетами
На странице Сеты отображаются все созданные наборы. Для каждого сета видно:
- Название и статус (включён/выключен)
- Количество доменов и IP
- Активные техники (COMBO, DISORDER, HYBRID и т.д.)
- Состояние DNS-маршрутизации и SNI Faking
Доступные действия:
- Создать сет - новый набор настроек
- Редактировать - клик по карточке
- Дублировать - создать копию существующего сета
- Сравнить - сравнение двух сетов в два столбца
- Удалить - удаление одного или нескольких сетов (через массовое выделение)
- Перетаскивание - изменение порядка сетов (порядок влияет на приоритет обработки)
Редактор сета
Редактор содержит 5 вкладок:
- Цели - домены, IP, GeoSite/GeoIP категории, устройства
- TCP - фрагментация, faking, desync и другие TCP-стратегии
- UDP - обработка UDP-трафика, QUIC, STUN
- Маршрутизация - DNS-редирект и маршрутизация трафика через интерфейсы
- Импорт/Экспорт - JSON-представление конфигурации сета для переноса между устройствами
Как это работает
flowchart TD
A["Пакет из сети"] --> B{"IP назначения\nсовпал с сетом?"}
B -->|"Да"| C["Предварительный сет\n(по IP)"]
B -->|"Нет"| D
C --> D{"Есть ли\nTLS/QUIC данные?"}
D -->|"Да"| E["Извлечь домен (SNI)"]
D -->|"Нет"| F
E --> G{"Домен совпал\nс сетом?"}
G -->|"Да"| SEL
G -->|"Нет"| TLSCHK
TLSCHK{"IP совпал ранее\nи версия TLS\nподходит?"}
TLSCHK -->|"Да"| SEL
TLSCHK -->|"Нет"| F
F{"IP ранее\nсвязывался\nс доменом?"}
F -->|"Да"| SEL
F -->|"Нет"| H
H{"Есть сет\nтолько по порту?"}
H -->|"Да"| SEL
H -->|"Нет"| SKIP["Пропустить"]
SEL{"Сет с устройством\n+ версия TLS?"}
SEL -->|"Да"| OK["Применить сет"]
SEL -->|"Нет"| SEL2{"Общий сет\n+ версия TLS?"}
SEL2 -->|"Да"| OK
SEL2 -->|"Нет"| SEL3{"Любой\nподходящий сет?"}
SEL3 -->|"Да"| OK
SEL3 -->|"Нет"| SKIP
style A fill:#4a9eff,color:#fff,stroke:none
style OK fill:#4caf50,color:#fff,stroke:none
style SKIP fill:#666,color:#fff,stroke:none
style C fill:#ff9800,color:#fff,stroke:none
style SEL fill:#9c27b0,color:#fff,stroke:none
style SEL2 fill:#9c27b0,color:#fff,stroke:none
style SEL3 fill:#9c27b0,color:#fff,stroke:none
style TLSCHK fill:#ff9800,color:#fff,stroke:none
Порядок сопоставления
- IP-адрес - проверяется первым. Если IP назначения совпал с IP/CIDR в каком-то сете, это запоминается как предварительное совпадение
- Домен (SNI) - если в пакете есть TLS/QUIC-данные, b4 извлекает домен. Если домен совпал с сетом - этот сет заменяет предварительное совпадение по IP. Домен всегда имеет приоритет
- Выученный IP - если b4 ранее видел этот IP в связке с доменом (из предыдущих соединений), используется тот же сет
- Порт - проверяется, только если сет настроен исключительно по порту (без доменов и IP)
- Предварительный IP - если ни домен, ни выученный IP, ни порт не сработали, используется совпадение по IP из шага 1
:::tip Фильтр портов Если в сете настроен фильтр портов - он работает как дополнительное условие. Даже если домен или IP совпали, пакет будет обработан только при совпадении порта. :::
:::info Выбор сета при нескольких совпадениях Если один и тот же домен или IP настроен в нескольких сетах, b4 выбирает сет по приоритету:
- Сет с указанным исходным устройством, совпавшим с MAC отправителя + совпавшей версией TLS
- Сет без привязки к устройству + совпавшей версией TLS
- Если ни один сет не подошёл по TLS - версия TLS игнорируется и проверка повторяется
Таким образом, сеты с привязкой к устройствам всегда имеют приоритет над общими, а фильтр TLS-версии уточняет выбор, но не блокирует обработку. :::
:::info Выученные IP Когда b4 видит соединение, где домен (SNI) совпал с сетом, он запоминает связку IP → домен на 10 минут. Это ускоряет обработку последующих пакетов к тому же серверу, даже если в них нет SNI. :::
Что происходит при совпадении
Для TCP-пакетов b4 перехватывает оригинальный пакет и отправляет вместо него модифицированную версию. В зависимости от настроек сета применяются:
- Удаление SACK-опции (если включено)
- Мутация ClientHello (если включена)
- Десинхронизация (RST/FIN/ACK)
- Манипуляция TCP-окном
- Отправка фейковых SNI-пакетов
- Фрагментация по выбранной стратегии
Для UDP - пакет либо отбрасывается (режим drop), либо заменяется фейковым ответом (режим fake).
Если ни один сет не совпал - пакет проходит без изменений.
Импорт и экспорт
Вкладка Импорт/Экспорт показывает JSON-конфигурацию сета. Можно:
- Скопировать JSON для переноса на другое устройство
- Вставить JSON для импорта конфигурации
Исходные устройства (MAC-адреса) не экспортируются - их нужно настроить заново на целевом устройстве.

