Compare commits
2
Commits
efdb5902a6
...
cec0a7b037
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cec0a7b037 | ||
|
|
e0b6c1e0d6 |
+9
-4
@@ -7,7 +7,7 @@ Linux-перенос проекта [Flowseal/zapret-discord-youtube](https://gi
|
|||||||
**Архитектура:**
|
**Архитектура:**
|
||||||
- `nfqws` (bol-van/zapret) — ядерный обработчик пакетов
|
- `nfqws` (bol-van/zapret) — ядерный обработчик пакетов
|
||||||
- iptables/nftables + NFQUEUE — перехват трафика
|
- iptables/nftables + NFQUEUE — перехват трафика
|
||||||
- 20 стратегий обхода DPI (fake, multisplit, fakedsplit, hostfakesplit, syndata и др.)
|
- 20 стратегий обхода DPI (fake, multisplit, fakedsplit, hostfakesplit, syndata и др.), хранятся в `strategies/*.conf`
|
||||||
- systemd — сервисы и таймеры
|
- systemd — сервисы и таймеры
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -17,13 +17,17 @@ Linux-перенос проекта [Flowseal/zapret-discord-youtube](https://gi
|
|||||||
```
|
```
|
||||||
zapret/
|
zapret/
|
||||||
├── bin/ # nfqws + fake .bin пакеты (собираются при install)
|
├── bin/ # nfqws + fake .bin пакеты (собираются при install)
|
||||||
├── lib/functions.sh # Общие: firewall setup/cleanup, colors, distro detect
|
├── lib/
|
||||||
|
│ └── functions.sh # Общие: firewall setup/cleanup, colors, distro detect
|
||||||
├── lists/ # Домены и IP для обхода
|
├── lists/ # Домены и IP для обхода
|
||||||
│ ├── list-general.txt # Discord, YouTube, Google, GitHub, Telegram, Steam
|
│ ├── list-general.txt # Discord, YouTube, Google, GitHub, Telegram, Steam
|
||||||
│ ├── list-google.txt # Google-специфичные домены
|
│ ├── list-google.txt # Google-специфичные домены
|
||||||
│ ├── list-exclude.txt # Что НЕ трогать (банки, госуслуги)
|
│ ├── list-exclude.txt # Что НЕ трогать (банки, госуслуги)
|
||||||
│ ├── ipset-all.txt # IP-диапазоны (placeholder → обновляется)
|
│ ├── ipset-all.txt # IP-диапазоны (placeholder → обновляется)
|
||||||
│ └── ipset-exclude.txt # локальные диапазоны
|
│ └── ipset-exclude.txt # локальные диапазоны
|
||||||
|
├── strategies/ # Конфиги стратегий (RULE1=...), конвертируются из .bat
|
||||||
|
│ ├── general.conf
|
||||||
|
│ └── general_ALT2.conf
|
||||||
├── .service/ # Runtime-конфигурация + hosts
|
├── .service/ # Runtime-конфигурация + hosts
|
||||||
│ ├── version.txt # Текущая версия
|
│ ├── version.txt # Текущая версия
|
||||||
│ ├── installed_strategy # Какая стратегия в systemd
|
│ ├── installed_strategy # Какая стратегия в systemd
|
||||||
@@ -37,13 +41,14 @@ zapret/
|
|||||||
├── utils/
|
├── utils/
|
||||||
│ ├── test_zapret.sh # curl-проверка доступности
|
│ ├── test_zapret.sh # curl-проверка доступности
|
||||||
│ └── targets.txt # Цели теста
|
│ └── targets.txt # Цели теста
|
||||||
├── general*.sh # 20 обёрток → run_strategy.sh
|
├── general*.sh # Обёртки → run_strategy.sh <name>
|
||||||
├── run_strategy.sh # Единый движок: собирает аргументы nfqws
|
├── run_strategy.sh # Единый движок: читает .conf, подставляет %BIN%/%LISTS%
|
||||||
├── autotest.sh # Автоподбор: запускает каждую, тестит curl, ставит systemd
|
├── autotest.sh # Автоподбор: запускает каждую, тестит curl, ставит systemd
|
||||||
├── install.sh # Входная точка: setup + build + autotest + systemd
|
├── install.sh # Входная точка: setup + build + autotest + systemd
|
||||||
├── service.sh # Меню управления (аналог service.bat)
|
├── service.sh # Меню управления (аналог service.bat)
|
||||||
├── setup.sh # Зависимости по дистру, модуль ядра, user lists
|
├── setup.sh # Зависимости по дистру, модуль ядра, user lists
|
||||||
├── install_nfqws.sh # git clone bol-van/zapret → make nfqws → fake .bin
|
├── install_nfqws.sh # git clone bol-van/zapret → make nfqws → fake .bin
|
||||||
|
├── ensure_wrappers.sh # Создаёт general_*.sh из strategies/*.conf
|
||||||
└── update.sh # Pipeline: check version → update files → rebuild → autotest
|
└── update.sh # Pipeline: check version → update files → rebuild → autotest
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -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 запущен
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user