docs(README): актуализирована структура и troubleshooting после перехода на strategies/*.conf

- Убраны устаревшие маркеры '<<< НОВОЕ' из дерева проекта
- Добавлен пункт troubleshooting: nfqws segfault + решение через --full-auto
- В update.sh добавлено пояснение когда использовать --full-auto
- Структура приведена в соответствие с текущей архитектурой (strategies/*.conf)
This commit is contained in:
OpenCode Agent
2026-05-10 19:51:19 +04:00
parent efdb5902a6
commit e0b6c1e0d6
+42 -3
View File
@@ -171,8 +171,40 @@ sudo ./install.sh
--- ---
## Структура проекта (новая модульная архитектура) ## Структура проекта (модульная архитектура)
```text
.
├── bin/ # nfqws + fake .bin (собирается)
├── lib/
│ └── functions.sh # Общие: firewall, цвета, cleanup
├── lists/ # Списки доменов и IP
│ ├── list-general.txt # Discord, YouTube, GitHub, Telegram, Steam
│ ├── list-google.txt # Google/YouTube
│ ├── list-exclude.txt # Исключения (банки, госуслуги)
│ ├── ipset-all.txt # IP-диапазоны
│ └── ipset-exclude.txt # Локальные подсети
├── strategies/ # Модульные стратегии (.conf)
│ └── general.conf # Конфиг стратегии (RULE1=... RULE2=...)
│ # Другие .conf появляются автоматически через sync_from_upstream.sh
├── utils/
│ ├── test_zapret.sh # curl-тесты
│ └── targets.txt # Цели
├── systemd/ # Юниты и таймеры
├── .service/
│ ├── version.txt # Версия (x.y.z-linux)
│ ├── hosts # Статичные IP (GitHub, Telegram)
│ └── installed_strategy # Какая стратегия в systemd
├── general*.sh # Обёртки → run_strategy.sh
├── run_strategy.sh # Движок: читает .conf, подставляет %BIN%/%LISTS%, запускает nfqws
├── sync_from_upstream.sh # Авто-мердж с Windows-репон
├── autotest.sh # Автоподбор рабочей стратегии
├── install.sh # Полный установщик (setup + build + autotest + systemd)
├── service.sh # Меню управления (аналог service.bat)
├── setup.sh # Зависимости по дистрибутиву
├── install_nfqws.sh # Сборка nfqws из bol-van/zapret
├── ensure_wrappers.sh # Создаёт general_*.sh из strategies/*.conf
└── update.sh # Полный pipeline: sync → build → test → install
``` ```
. .
├── bin/ # nfqws + fake .bin (собирается) ├── bin/ # nfqws + fake .bin (собирается)
@@ -197,13 +229,13 @@ sudo ./install.sh
│ └── installed_strategy # Какая стратегия в systemd │ └── installed_strategy # Какая стратегия в systemd
├── general*.sh # Обёртки → run_strategy.sh ├── general*.sh # Обёртки → run_strategy.sh
├── run_strategy.sh # Движок: читает .conf, подставляет %BIN%/%LISTS%, запускает nfqws ├── run_strategy.sh # Движок: читает .conf, подставляет %BIN%/%LISTS%, запускает nfqws
├── sync_from_upstream.sh # <<< НОВОЕ: авто-мердж с Windows-репон ├── sync_from_upstream.sh # Авто-мердж с Windows-репон
├── autotest.sh # Автоподбор рабочей стратегии ├── autotest.sh # Автоподбор рабочей стратегии
├── install.sh # Полный установщик (setup + build + autotest + systemd) ├── install.sh # Полный установщик (setup + build + autotest + systemd)
├── service.sh # Меню управления (аналог service.bat) ├── service.sh # Меню управления (аналог service.bat)
├── setup.sh # Зависимости по дистрибутиву ├── setup.sh # Зависимости по дистрибутиву
├── install_nfqws.sh # Сборка nfqws из bol-van/zapret ├── install_nfqws.sh # Сборка nfqws из bol-van/zapret
├── ensure_wrappers.sh # <<< НОВОЕ: создаёт general_*.sh из strategies/*.conf ├── ensure_wrappers.sh # Создаёт general_*.sh из strategies/*.conf
└── update.sh # Полный pipeline: sync → build → test → install └── update.sh # Полный pipeline: sync → build → test → install
``` ```
@@ -306,6 +338,11 @@ sudo ./update.sh --full-auto # форсировать пересборку + п
sudo ./update.sh --help # справка sudo ./update.sh --help # справка
``` ```
**Когда использовать `--full-auto`:**
- После обновления дистрибутива/ядра (может сломать бинарный совместимость `nfqws`)
- Если `nfqws` падает с segfault (пересборка с безопасными флагами)
- Если установка новой стратегии не работает
**Что делает при обновлении Flowseal:** **Что делает при обновлении Flowseal:**
``` ```
Step 0: sync_from_upstream.sh Step 0: sync_from_upstream.sh
@@ -401,6 +438,8 @@ sudo ./update.sh --full-auto
2. **Отсутствуют fake .bin файлы** — пересоберите: `sudo ./install_nfqws.sh` 2. **Отсутствуют fake .bin файлы** — пересоберите: `sudo ./install_nfqws.sh`
3. **nfnetlink_queue не загружен** — `sudo modprobe nfnetlink_queue` 3. **nfnetlink_queue не загружен** — `sudo modprobe nfnetlink_queue`
4. **iptables/nftables конфликт** — `sudo ./service.sh → 2. Remove Services`, затем `sudo ./general.sh` 4. **iptables/nftables конфликт** — `sudo ./service.sh → 2. Remove Services`, затем `sudo ./general.sh`
5. **nfqws падает с segfault** — пересоберите с безопасными флагами: `sudo ./update.sh --full-auto`
- Скрипт автоматически выключит `-flto=auto` и `--gc-sections`, которые вызывают крах на некоторых системах
### Если curl-тесты падают, но nfqws запущен ### Если curl-тесты падают, но nfqws запущен