Initial commit: zapret-discord-youtube-linux v1.9.8c-linux

This commit is contained in:
2026-05-10 19:06:04 +04:00
commit 80e0a116e1
40 changed files with 2599 additions and 0 deletions
+206
View File
@@ -0,0 +1,206 @@
# Zapret for Linux (Discord + YouTube)
Linux-аналог популярного репозитория [Flowseal/zapret-discord-youtube](https://github.com/Flowseal/zapret-discord-youtube) для обхода DPI (Deep Packet Inspection) на Linux.
## Требования
- Linux (Ubuntu/Debian, Arch/Manjaro, Fedora и др.)
- `iptables` или `nftables`
- Ядерный модуль `nfnetlink_queue`
- `curl`, `git`, `make`, `gcc`
- `sudo` или root-доступ
## Быстрый старт
```bash
# 1. Клонировать репозиторий
cd /opt
sudo git clone https://github.com/YOUR_USERNAME/zapret-discord-youtube-linux.git zapret
sudo chown -R $(whoami) zapret
cd zapret
# 2. ОДИН СКРИПТ — всё сделает автоматически:
# установка, сборка, тест, подбор стратегии, systemd-сервис
sudo ./install.sh
```
Готово! После этого сервис работает и будет автозапускаться.
---
## Полная инструкция (если нужно по шагам)
```bash
# Установка и настройка
sudo ./setup.sh # зависимости + сборка nfqws
# Автоподбор стратегии
sudo ./autotest.sh # интерактивный режим
sudo ./autotest.sh --auto # автоматический (сразу ставит в systemd)
# Обновление в будущем
sudo ./update.sh # проверить версию, обновить, пересобрать
sudo ./update.sh --full-auto # форсировать: пересобрать + перетестить
```
### autotest.sh — автоподбор стратегии (Step 3 автоматизирован!)
```bash
sudo ./autotest.sh
```
**Что делает:**
1. Последовательно запускает каждую стратегию (от самой популярной к редким)
2. Проверяет доступность YouTube и Discord через `curl`
3. Останавливает стратегию и переходит к следующей, если не работает
4. Когда находит рабочую — предлагает установить в systemd
**Автоматический режим (без вопросов):**
```bash
sudo ./autotest.sh --auto
```
**Ручной режим:** тестирует, показывает результат, ждёт подтверждения для установки.
| Параметр | Описание |
|----------|----------|
| `--auto` или `-a` | Найти рабочую стратегию и сразу установить в systemd |
| без параметров | Интерактивный режим с меню |
## Структура проекта
```
.
├── bin/ # nfqws + fake-пакеты
├── lib/
│ └── functions.sh # Общие функции (firewall, цвета)
├── lists/
│ ├── list-general.txt # Основные домены (Discord, Cloudflare, etc.)
│ ├── list-google.txt # Google/YouTube домены
│ ├── list-exclude.txt # Исключения (Twitch, VK, банки...)
│ ├── ipset-all.txt # IP-диапазоны
│ └── ipset-exclude.txt # IP-исключения
├── utils/
│ ├── test_zapret.sh # Тесты доступности сайтов
│ └── targets.txt # Список тестовых URL
├── systemd/
│ └── zapret.service # systemd unit
├── .service/
│ ├── version.txt # Текущая версия
│ ├── installed_strategy # Установленная стратегия
│ ├── game_filter_enabled # Флаг game filter
│ └── check_updates_enabled # Флаг автообновления
├── general*.sh # Скрипты стратегий
├── autotest.sh # Автоподбор рабочей стратегии
├── install.sh # Полный установщик: setup + build + autotest + systemd
├── run_strategy.sh # Единый запускатель стратегий
├── service.sh # Меню управления (аналог service.bat)
├── setup.sh # Начальная настройка
├── install_nfqws.sh # Сборка nfqws из bol-van/zapret
└── update.sh # Автообновление: проверка → сборка → тест → установка
```
## Стратегии (general*.sh)
Каждый `general*.sh` — это обёртка над `run_strategy.sh` с нужным параметром:
| Файл | Стратегия | Описание |
|------|-----------|----------|
| `general.sh` | `general` | Standard multisplit |
| `general_ALT.sh` | `ALT` | Fake fakedsplit + ts fooling |
| `general_ALT2.sh` | `ALT2` | Multisplit pos=2 |
| `general_ALT3.sh` | `ALT3` | Hostfakesplit (Google/ya.ru) |
| `general_ALT4.sh` | `ALT4` | Fake multisplit + badseq |
| `general_ALT5.sh` | `ALT5` | **NOT RECOMMENDED** syndata multidisorder |
| `general_ALT6.sh` | `ALT6` | Uniform split-seqovl=681 |
| `general_ALT7.sh` | `ALT7` | Multisplit + syndata |
| `general_ALT8.sh` | `ALT8` | Fake + badseq-increment=2 |
| `general_ALT9.sh` | `ALT9` | Hostfakesplit (ozon.ru) |
| `general_ALT10.sh` | `ALT10` | Fake + ts fooling |
| `general_ALT11.sh` | `ALT11` | Fake multisplit + max_ru pattern |
| `general_FAKE_TLS_AUTO.sh` | `FAKE_TLS_AUTO` | FAKE TLS multidisorder |
| `general_FAKE_TLS_AUTO_ALT.sh` | `FAKE_TLS_AUTO_ALT` | FAKE TLS fakedsplit |
| `general_FAKE_TLS_AUTO_ALT2.sh` | `FAKE_TLS_AUTO_ALT2` | FAKE TLS multisplit badseq |
| `general_FAKE_TLS_AUTO_ALT3.sh` | `FAKE_TLS_AUTO_ALT3` | FAKE TLS + 4pda pattern |
| `general_SIMPLE_FAKE.sh` | `SIMPLE_FAKE` | Simple fake |
| `general_SIMPLE_FAKE_ALT.sh` | `SIMPLE_FAKE_ALT` | Simple fakedsplit |
| `general_SIMPLE_FAKE_ALT2.sh` | `SIMPLE_FAKE_ALT2` | Simple hostfakesplit |
**Как подобрать рабочую стратегию:** запускайте разные `general*.sh` и проверяйте открывается ли Discord/YouTube. Когда найдёте рабочую — установите через `service.sh``Install Service`.
## service.sh — меню управления
Аналог `service.bat` из Windows-версии:
```
:: SERVICE
1. Install Service — выбор стратегии + systemd unit
2. Remove Services — удаление unit + остановка nfqws
3. Check Status — проверка nfqws и firewall rules
:: SETTINGS
4. Game Filter — вкл/выкл обход для UDP/TCP портов >1024
5. IPSet Filter — none / loaded / any
6. Auto-Update Check — вкл/выкл автообновление
:: UPDATES
7. Update IPSet List — обновить ipset-all.txt
8. Update Hosts File — показать новые записи hosts
9. Check for Updates — проверить версию на GitHub
:: TOOLS
10. Run Diagnostics — проверка зависимостей, модулей, DNS
11. Run Tests — тест сайтов или DPI checker
```
## Автообновление (update.sh)
```bash
# Интерактивный режим — проверяет версию, предлагает обновить,
# скачивает новые списки, пересобирает nfqws, перезапускает сервис
sudo ./update.sh
# Автоматический режим (для cron / systemd timer)
sudo ./update.sh --auto
```
### systemd таймер для автообновления
```bash
sudo cp systemd/zapret-update.timer /etc/systemd/system/
sudo cp systemd/zapret-update.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now zapret-update.timer
```
## Установка в автозагрузку (systemd)
```bash
sudo cp systemd/zapret.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable zapret.service
sudo systemctl start zapret.service
```
## Пользовательские списки
При первом запуске автоматически создаются:
- `lists/list-general-user.txt` — добавляйте свои домены
- `lists/list-exclude-user.txt` — домены-исключения
- `lists/ipset-exclude-user.txt` — IP-исключения
## Secure DNS
Рекомендуется включить DNS-over-HTTPS:
- **Chrome**: `chrome://settings/security` → Secure DNS
- **Firefox**: `about:preferences#privacy` → DNS-over-HTTPS
- **Система (systemd-resolved)**: `resolvectl dns eth0 1.1.1.1`
## Лицензия
MIT License — аналогично оригинальному проекту.
## Благодарности
- [bol-van](https://github.com/bol-van) — оригинальный разработчик zapret
- [Flowseal](https://github.com/Flowseal) — Windows-обёртка и стратегии