Add Russian documentation for UDP handling, backup settings, core settings, discovery settings, geodata, payloads, security, and domain monitoring

- 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.
This commit is contained in:
Daniel Lavrushin 2026-04-18 21:43:56 +02:00
parent 1df5909e62
commit ef8bedd247
No known key found for this signature in database
GPG key ID: 57F1CAB57AD35056
79 changed files with 3545 additions and 3133 deletions

View file

@ -0,0 +1,74 @@
---
sidebar_position: 6
title: Docker
---
# Docker
Образ: [lavrushin/b4](https://hub.docker.com/r/lavrushin/b4) на Docker Hub.
## docker-compose
Создайте файл `docker-compose.yml`:
```yaml
services:
b4:
image: lavrushin/b4:latest
container_name: b4
network_mode: host
cap_add:
- NET_ADMIN
- NET_RAW
- SYS_MODULE
volumes:
- ./config:/etc/b4
restart: unless-stopped
```
Запуск:
```bash
mkdir -p config
docker compose up -d
```
## docker run
```bash
mkdir -p config
docker run -d \
--name b4 \
--network host \
--cap-add NET_ADMIN \
--cap-add NET_RAW \
--cap-add SYS_MODULE \
-v ./config:/etc/b4 \
--restart unless-stopped \
lavrushin/b4:latest
```
## Параметры
| Параметр | Зачем |
| --- | --- |
| `network_mode: host` | b4 работает с сетевым стеком хоста напрямую |
| `NET_ADMIN` | управление netfilter и правилами firewall |
| `NET_RAW` | работа с raw-сокетами |
| `SYS_MODULE` | загрузка модулей ядра (modprobe) |
| `-v ./config:/etc/b4` | конфигурация сохраняется на хосте |
## Управление
```bash
docker compose logs -f b4 # логи
docker compose restart b4 # перезапуск
docker compose down # остановка
docker compose pull && docker compose up -d # обновление
```
## Веб-интерфейс
После запуска: `http://localhost:7000`
Порт настраивается в `config/b4.json` (параметр `web_server.port`).

View file

@ -0,0 +1,52 @@
---
sidebar_position: 2
title: Установка
---
# Установка
b4 устанавливается на Linux-устройства: серверы, компьютеры и роутеры. Выберите подходящий способ:
- [Linux](./linux) - универсальная установка на любой Linux-дистрибутив
- [OpenWRT](./openwrt) - роутеры с прошивкой OpenWRT
- [ASUS Merlin](./merlin) - роутеры ASUS с прошивкой Merlin
- [Keenetic](./keenetic) - роутеры Keenetic
- [MikroTik](./mikrotik) - RouterOS 7.x через контейнеры
- [Docker](./docker) - запуск в Docker-контейнере
После установки b4 доступен через веб-интерфейс в браузере (по умолчанию порт `7000`).
## Обновление и удаление {#update-remove}
### Обновление
```bash
curl -fsSL https://raw.githubusercontent.com/DanielLavrushin/b4/main/install.sh | sh -s -- --update
```
Или обновление до конкретной версии:
```bash
curl -fsSL https://raw.githubusercontent.com/DanielLavrushin/b4/main/install.sh | sh -s -- v1.46.5
```
При обновлении текущий бинарник сохраняется как резервная копия, сервис останавливается, заменяется на новую версию и запускается снова. Конфигурация не затрагивается.
### Удаление
```bash
curl -fsSL https://raw.githubusercontent.com/DanielLavrushin/b4/main/install.sh | sh -s -- --remove
```
При удалении:
1. Сервис останавливается и убирается из автозапуска
2. Бинарник удаляется
3. Конфигурация - по выбору (установщик спросит, удалять ли `/etc/b4` или `/opt/etc/b4`)
### Диагностика
Для вывода информации о системе, установленной версии и состоянии модулей ядра:
```bash
curl -fsSL https://raw.githubusercontent.com/DanielLavrushin/b4/main/install.sh | sh -s -- --sysinfo
```

View file

@ -0,0 +1,61 @@
---
sidebar_position: 4
title: Keenetic
---
# Keenetic
## Требования
- Роутер Keenetic с поддержкой OPKG
- Установленный Entware (обязательно)
## Установка Entware
### Новые модели (со встроенным хранилищем)
1. Откройте веб-интерфейс роутера
2. Перейдите в **Параметры системы**
3. Включите компонент **Менеджер пакетов OPKG**
### Старые модели (нужен USB-накопитель)
1. Вставьте USB-накопитель в роутер
2. Установите Entware через менеджер пакетов
Подробнее: https://help.keenetic.com/hc/ru/articles/360021214160
## Установка b4
Подключитесь по SSH и выполните:
```bash
curl -fsSL https://raw.githubusercontent.com/DanielLavrushin/b4/main/install.sh | sh
```
## Управление сервисом
```bash
/opt/etc/init.d/S99b4 start
/opt/etc/init.d/S99b4 stop
/opt/etc/init.d/S99b4 restart
```
## Пути
| Что | Где |
| --- | --- |
| Бинарник | `/opt/sbin/b4` |
| Конфигурация | `/opt/etc/b4/b4.json` |
| Сервис | `/opt/etc/init.d/S99b4` |
## Архитектура
- Старые модели (MT7621) - `mipsle_softfloat`
- Новые модели (aarch64) - `arm64`
Установщик определяет архитектуру автоматически.
:::warning Без Entware
Без Entware b4 устанавливается в `/tmp`, который очищается при каждой перезагрузке. Для постоянной работы Entware обязателен.
:::

View file

@ -0,0 +1,88 @@
---
sidebar_position: 1
title: Linux
---
# Linux (универсальная установка)
Подходит для любого дистрибутива: Ubuntu, Debian, Fedora, Alpine, Arch и других.
## Установка
```bash
curl -fsSL https://raw.githubusercontent.com/DanielLavrushin/b4/main/install.sh | sh
```
Или через `wget`:
```bash
wget -qO- https://raw.githubusercontent.com/DanielLavrushin/b4/main/install.sh | sh
```
Установщик автоматически определит архитектуру, установит бинарник в `/usr/local/bin` и создаст конфигурацию в `/etc/b4`.
Для установки без интерактивных вопросов (с настройками по умолчанию):
```bash
curl -fsSL https://raw.githubusercontent.com/DanielLavrushin/b4/main/install.sh | sh -s -- --quiet
```
## Управление сервисом
### systemd (Ubuntu, Debian, Fedora и большинство дистрибутивов)
```bash
systemctl start b4
systemctl stop b4
systemctl restart b4
systemctl status b4
systemctl enable b4 # автозапуск при загрузке
```
Просмотр логов:
```bash
journalctl -u b4 -f
```
### OpenRC (Alpine)
```bash
rc-service b4 start
rc-service b4 stop
rc-service b4 restart
rc-update add b4 default # автозапуск при загрузке
```
## Пути
| Что | Где |
| --- | --- |
| Бинарник | `/usr/local/bin/b4` |
| Конфигурация | `/etc/b4/b4.json` |
| Сервис (systemd) | `/etc/systemd/system/b4.service` |
| Сервис (OpenRC/SysV) | `/etc/init.d/b4` |
## Модули ядра
b4 использует NFQUEUE для перехвата пакетов. Нужные модули ядра обычно загружаются автоматически при запуске сервиса. Если возникают проблемы, загрузите их вручную:
```bash
modprobe nfnetlink_queue
modprobe xt_NFQUEUE
modprobe nf_conntrack
```
Для проверки:
```bash
lsmod | grep nfqueue
```
:::info LXC-контейнеры
В LXC-контейнерах модули ядра должны быть загружены на хосте. В конфигурации контейнера добавьте:
```
lxc.cgroup2.devices.allow: c 10:200 rwm
features: nesting=1,keyctl=1
```
:::

View file

@ -0,0 +1,55 @@
---
sidebar_position: 3
title: ASUS Merlin
---
# ASUS Merlin
## Требования
- Роутер ASUS с прошивкой Asuswrt-Merlin
- Установленный Entware (обязательно)
- USB-накопитель (для Entware и b4)
## Установка Entware
Entware - обязательное условие. Если он ещё не установлен:
1. Вставьте USB-накопитель в роутер
2. Подключитесь по SSH: `ssh admin@192.168.1.1`
3. Запустите `amtm`
4. Выберите пункт `ep` для установки Entware
Подробнее: https://diversion.ch/amtm.html
## Установка b4
После установки Entware:
```bash
curl -fsSL https://raw.githubusercontent.com/DanielLavrushin/b4/main/install.sh | sh
```
## Управление сервисом
```bash
/opt/etc/init.d/S99b4 start
/opt/etc/init.d/S99b4 stop
/opt/etc/init.d/S99b4 restart
```
Сервис запускается автоматически при загрузке роутера через Entware.
## Пути
| Что | Где |
| --- | --- |
| Бинарник | `/opt/sbin/b4` |
| Конфигурация | `/opt/etc/b4/b4.json` |
| Сервис | `/opt/etc/init.d/S99b4` |
## Без Entware
Если Entware не установлен, b4 устанавливается в `/jffs/b4`. В этом случае автозапуск при загрузке не настраивается - бинарник нужно запускать вручную.
Размер `/jffs` обычно ограничен ~60 МБ, поэтому рекомендуется использовать USB-накопитель с Entware.

View file

@ -0,0 +1,158 @@
---
sidebar_position: 5
title: MikroTik
---
# MikroTik (RouterOS 7.x)
b4 запускается как контейнер на MikroTik RouterOS 7.x.
## Требования
- RouterOS версии 7.21.1 и выше
- Архитектура ARM64 или AMD64
- Подключённый внешний накопитель (Flash/SSD/HDD), отформатированный в Ext4
:::warning
Контейнеры на MikroTik требуют внешний накопитель - внутренней памяти роутера недостаточно.
:::
## Параметры примера
В руководстве используются следующие значения. Замените на свои:
| Параметр | Значение |
| --- | --- |
| Сеть моста | 192.168.210.0/24 |
| Шлюз моста | 192.168.210.1 |
| Имя моста | bridge-docker |
| IP контейнера | 192.168.210.10 |
| Имя интерфейса | B4 |
| Сеть LAN | 192.168.100.0/24 |
| DNS-сервер | 192.168.100.1 |
| Таблица маршрутизации | to_b4 |
| Диск | /usb1 |
| Список клиентов | b4users |
## Шаг 1: Мост
Создайте мост для Docker-сети:
```routeros
/interface/bridge add name=bridge-docker port-cost-mode=short
/ip/address add address=192.168.210.1/24 interface=bridge-docker network=192.168.210.0
```
## Шаг 2: Интерфейс
Создайте виртуальный Ethernet-интерфейс и подключите к мосту:
```routeros
/interface/veth add address=192.168.210.10/24 gateway=192.168.210.1 name=B4
/interface/bridge/port add bridge=bridge-docker interface=B4
```
## Шаг 3: Маршрутизация
Создайте таблицу маршрутизации и маршрут через контейнер:
```routeros
/routing table add disabled=no fib name=to_b4
/ip route add check-gateway=ping gateway=192.168.210.10 routing-table=to_b4
```
## Шаг 4: Маркировка трафика
Перенаправьте трафик клиентов из списка `b4users` через контейнер:
```routeros
/ip firewall mangle add chain=prerouting action=mark-connection \
new-connection-mark=b4_connections passthrough=yes connection-state=new \
dst-address-type=!local src-address-list=b4users in-interface-list=LAN \
place-before=0
/ip firewall mangle add chain=prerouting action=mark-routing \
new-routing-mark=to_b4 passthrough=no connection-mark=b4_connections \
in-interface-list=LAN log=no place-before=1
```
:::caution FastTrack
FastTrack обходит правила mangle. Ограничьте его немаркированными соединениями:
```routeros
/ip firewall filter set [find action=fasttrack-connection] connection-mark=no-mark
```
:::
## Шаг 5: Точки монтирования
```routeros
/container/mounts add name=b4_etc src=/usb1/docker/b4-mounts/etc dst=/opt/etc/b4
```
Убедитесь, что директория `/usb1/docker/b4-mounts/etc` существует на диске.
## Шаг 6: Запуск контейнера
Настройте реестр:
```routeros
/container/config set registry-url=https://registry-1.docker.io tmpdir=/usb1/docker/pull
```
Создайте и запустите контейнер:
```routeros
/container add remote-image=lavrushin/b4:latest interface=B4 \
root-dir=/usb1/docker/b4-mikrotik mounts=b4_etc \
cmd="--config /opt/etc/b4/b4.json" start-on-boot=yes \
logging=yes dns=192.168.100.1
```
После загрузки образа:
```routeros
/container start [find tag~"b4"]
```
## Шаг 7: Добавление клиентов
Добавьте устройства в адресный список `b4users`:
```routeros
/ip firewall address-list add list=b4users address=192.168.100.50
/ip firewall address-list add list=b4users address=192.168.100.51
```
## Веб-интерфейс
После запуска контейнера: `http://192.168.210.10:7000`
## Обновление
```routeros
/container stop [find tag~"b4"]
/container remove [find tag~"b4"]
/container add remote-image=lavrushin/b4:latest interface=B4 \
root-dir=/usb1/docker/b4-mikrotik mounts=b4_etc \
cmd="--config /opt/etc/b4/b4.json" start-on-boot=yes \
logging=yes dns=192.168.100.1
```
Конфигурация хранится на точке монтирования и сохраняется при пересоздании контейнера.
## Решение проблем
**Контейнер не запускается:**
1. Проверьте статус: `/container print`
2. Смотрите логи: `/log print where topics~"container"`
3. Убедитесь, что диск отформатирован в Ext4
**Нет доступа к веб-интерфейсу:**
1. Проверьте, что контейнер запущен: `/container print`
2. Проверьте связность: `/ping 192.168.210.10`
**Трафик не перенаправляется:**
1. Проверьте список: `/ip firewall address-list print where list=b4users`
2. Проверьте mangle: `/ip firewall mangle print`
3. Проверьте маршрут: `/ip route print where routing-table=to_b4`

View file

@ -0,0 +1,145 @@
---
sidebar_position: 2
title: OpenWRT
---
# OpenWRT
## Требования
- OpenWRT 19.07 и выше
- Внешнее хранилище (USB или extroot) - рекомендуется, так как на внутренней памяти роутера может не хватить места
:::warning Место на диске
На роутерах с OpenWRT внутренняя память ограничена (overlay). Если доступно менее 2 МБ, установщик предупредит об этом. Рекомендуется использовать extroot или USB-накопитель.
Инструкция по настройке extroot: https://openwrt.org/docs/guide-user/additional-software/extroot_configuration
:::
## Установка
Подключитесь к роутеру по SSH и выполните:
```bash
curl -fsSL https://raw.githubusercontent.com/DanielLavrushin/b4/main/install.sh | sh
```
Если `curl` не установлен:
```bash
opkg update && opkg install curl ca-certificates
```
Или через `wget`:
```bash
wget -qO- https://raw.githubusercontent.com/DanielLavrushin/b4/main/install.sh | sh
```
:::info wget на OpenWRT
Стандартный `wget` в OpenWRT (BusyBox) не поддерживает HTTPS. Установите полную версию:
```bash
opkg update && opkg install wget-ssl ca-certificates
```
:::
## Модули ядра
Установщик попытается загрузить необходимые модули автоматически. Если при запуске вы видите предупреждение `[WARN] No netfilter queue module available` или ошибки связанные с nftables - установите модули вручную.
### OpenWRT 24.x+ (apk)
```bash
apk add kmod-nft-queue kmod-nft-nat kmod-nft-compat kmod-nft-conntrack
```
### OpenWRT 23.x и ниже (opkg)
```bash
opkg update
opkg install kmod-nft-queue kmod-nft-conntrack nftables-json coreutils-nohup
```
Для совсем старых версий (без nftables):
```bash
opkg install kmod-nfnetlink-queue kmod-ipt-nfqueue iptables-mod-nfqueue iptables-mod-conntrack-extra
```
### Загрузка модулей
После установки модулей может потребоваться загрузить их вручную:
```bash
modprobe nft_queue
modprobe nft_ct
modprobe xt_connbytes
```
Если команда выполняется без вывода - модуль загружен успешно.
## Управление сервисом
```bash
/etc/init.d/b4 enable # автозапуск при загрузке
/etc/init.d/b4 start
/etc/init.d/b4 stop
/etc/init.d/b4 restart
```
:::tip Работа через 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`, откройте в браузере:
```text
http://192.168.1.1:7000
```
## LuCI-приложение
Существует сторонний пакет [luci-app-b4](https://github.com/BugOldfag/luci-app-b4), который добавляет управление b4 в интерфейс LuCI. Проект находится в стадии alpha и покрывает часть функций. Основной веб-интерфейс b4 (порт 7000) по-прежнему доступен.
## Устранение неполадок
### Service crashed / сервис не запускается
1. Убедитесь что модули ядра установлены и загружены (см. раздел «Модули ядра» выше)
2. Проверьте логи: `logread | grep b4`
### Error: Could not process rule
Если b4 вылетает с ошибкой при добавлении правил в цепочку, возможно остались «битые» таблицы от предыдущего неудачного запуска. Очистите их:
```bash
nft delete table inet b4_mangle 2>/dev/null
```
После этого запустите b4 заново:
```bash
/etc/init.d/b4 restart
```
### Низкая скорость / тормозит видео
Проверьте настройку **Software flow offloading** в разделе Network → Firewall. Попробуйте включить или выключить её - на некоторых устройствах это влияет на производительность b4.