docs: rewrite README with per-distro install instructions, single main branch

This commit is contained in:
2026-05-10 19:13:13 +04:00
parent 80e0a116e1
commit 2781955767

360
README.md
View File

@@ -1,112 +1,197 @@
# 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
```
Готово! После этого сервис работает и будет автозапускаться.
Linux-аналог популярного репозитория [Flowseal/zapret-discord-youtube](https://github.com/Flowseal/zapret-discord-youtube) для обхода DPI (Deep Packet Inspection).
---
## Полная инструкция (если нужно по шагам)
## Быстрый старт (для ленивых)
```bash
# Установка и настройка
sudo ./setup.sh # зависимости + сборка nfqws
# Ubuntu / Debian / Mint
sudo apt update && sudo apt install -y git
# Автоподбор стратегии
sudo ./autotest.sh # интерактивный режим
sudo ./autotest.sh --auto # автоматический (сразу ставит в systemd)
# Arch / Manjaro
sudo pacman -Syu --noconfirm git
# Обновление в будущем
sudo ./update.sh # проверить версию, обновить, пересобрать
sudo ./update.sh --full-auto # форсировать: пересобрать + перетестить
# Fedora
sudo dnf install -y git
# --- Дальше одинаково для всех дистрибутивов ---
cd /opt
sudo git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret
cd zapret
sudo ./install.sh
```
### autotest.sh — автоподбор стратегии (Step 3 автоматизирован!)
После `./install.sh` сервис запущен и будет автозапускаться.
---
## Установка по дистрибутивам
### Ubuntu / Debian / Linux Mint / Pop!_OS / Zorin OS / Kali
```bash
# 1. Установка зависимостей
sudo apt update
sudo apt install -y git curl make gcc iptables nftables libnetfilter-queue-dev
# 2. Клонирование
cd /opt
sudo git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret
cd zapret
# 3. Полный автоматический установщик
sudo ./install.sh
```
### Arch Linux / Manjaro / EndeavourOS / Garuda / Artix
```bash
# 1. Установка зависимостей
sudo pacman -Syu --noconfirm git curl make gcc iptables nftables libnetfilter_queue
# 2. Клонирование
cd /opt
sudo git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret
cd zapret
# 3. Полный автоматический установщик
sudo ./install.sh
```
### Fedora / RHEL / CentOS / AlmaLinux / Rocky Linux
```bash
# 1. Установка зависимостей
sudo dnf install -y git curl make gcc iptables nftables libnetfilter_queue-devel
# 2. Клонирование
cd /opt
sudo git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret
cd zapret
# 3. Полный автоматический установщик
sudo ./install.sh
```
### Alpine Linux
```bash
# 1. Установка зависимостей
sudo apk add --no-cache git curl make gcc iptables nftables libnetfilter_queue-dev linux-headers
# 2. Клонирование
cd /opt
sudo git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret
cd zapret
# 3. Полный автоматический установщик
sudo ./install.sh
```
### Gentoo / Funtoo
```bash
# 1. Установка зависимостей (через emerge)
sudo emerge --ask dev-vcs/git net-misc/curl sys-devel/gcc sys-devel/make net-firewall/iptables net-firewall/nftables
# libnetfilter_queue: https://wiki.gentoo.org/wiki/Iptables
# 2. Клонирование
cd /opt
sudo git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret
cd zapret
# 3. Полный автоматический установщик
sudo ./install.sh
```
### openSUSE / SUSE
```bash
# 1. Установка зависимостей
sudo zypper install -y git curl make gcc iptables nftables libnetfilter_queue-devel
# 2. Клонирование
cd /opt
sudo git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret
cd zapret
# 3. Полный автоматический установщик
sudo ./install.sh
```
### Void Linux
```bash
# 1. Установка зависимостей
sudo xbps-install -Sy git curl make gcc iptables nftables libnetfilter_queue-devel
# 2. Клонирование
cd /opt
sudo git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret
cd zapret
# 3. Полный автоматический установщик
sudo ./install.sh
```
### NixOS
```bash
# 1. Войдите в nix-shell с зависимостями
nix-shell -p git curl gnumake gcc iptables nftables libnetfilter_queue
# 2. Клонирование
cd /opt
sudo git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret
cd zapret
# 3. Полный автоматический установщик
sudo ./install.sh
```
---
## Что делает `./install.sh`
1. **Установка зависимостей**`git`, `make`, `gcc`, `curl`, `iptables`/`nftables`, `libnetfilter_queue`
2. **Сборка `nfqws`** — компиляция из исходников `bol-van/zapret`
3. **Автотест стратегий** — перебирает 20 стратегий, пока не найдёт рабочую для вашего провайдера
4. **Установка systemd-сервиса** — автозапуск при загрузке системы
---
## Ручное управление
Если автоматика не подошла, можно всё делать руками:
```bash
cd /opt/zapret
# Найти рабочую стратегию вручную
sudo ./general.sh # если не работает — Ctrl+C
sudo ./general_ALT.sh # пробуем следующую
# ... пробуем ./general_ALT2.sh, ./general_ALT3.sh и т.д.
# Или автотест (не ставит в systemd)
sudo ./autotest.sh
# Управление: меню, автообновление, диагностика
sudo ./service.sh
# Обновление в будущем: проверка → сборка → тест → установка
sudo ./update.sh # интерактивно
sudo ./update.sh --full-auto # полностью автоматически
```
**Что делает:**
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.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) |
@@ -126,7 +211,11 @@ sudo ./autotest.sh --auto
| `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`.
**Как подобрать рабочую:** запускайте по очереди, пока Discord и YouTube не откроются. Скорость настройки зависит от провайдера и блокировок.
Быстрее всего авто-подберёт: `sudo ./autotest.sh`.
---
## service.sh — меню управления
@@ -150,22 +239,21 @@ sudo ./autotest.sh --auto
:: TOOLS
10. Run Diagnostics — проверка зависимостей, модулей, DNS
11. Run Tests — тест сайтов или DPI checker
11. Run Tests — тест доступности Discord/YouTube
```
## Автообновление (update.sh)
---
## update.sh — автообновление и автосборка
```bash
# Интерактивный режим — проверяет версию, предлагает обновить,
# скачивает новые списки, пересобирает nfqws, перезапускает сервис
sudo ./update.sh
# Автоматический режим (для cron / systemd timer)
sudo ./update.sh --auto
sudo ./update.sh # интерактивно: проверит версию, обновит, соберёт, протестирует
sudo ./update.sh --auto # для cron: тихий режим, только если есть обновление
sudo ./update.sh --full-auto # форсировать пересборку + перетестирование
sudo ./update.sh --help # справка
```
### systemd таймер для автообновления
**systemd таймер для ежедневного автообновления:**
```bash
sudo cp systemd/zapret-update.timer /etc/systemd/system/
sudo cp systemd/zapret-update.service /etc/systemd/system/
@@ -173,8 +261,11 @@ sudo systemctl daemon-reload
sudo systemctl enable --now zapret-update.timer
```
## Установка в автозагрузку (systemd)
---
## Установка в автозагрузку (вручную)
Если install.sh автоматику не прошёл:
```bash
sudo cp systemd/zapret.service /etc/systemd/system/
sudo systemctl daemon-reload
@@ -182,25 +273,70 @@ 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 (рекомендуется)
## Secure DNS
**Chrome:** `chrome://settings/security` → Secure DNS → `https://dns.google/dns-query`
Рекомендуется включить 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`
**Firefox:** `about:preferences#privacy` → DNS-over-HTTPS → Максимальная защита
**systemd-resolved:**
```bash
sudo resolvectl dns eth0 1.1.1.1
sudo resolvectl dns-over-tls eth0 yes
```
**NetworkManager:**
```bash
nmcli connection modify 'Ваше подключение' ipv4.dns '1.1.1.1'
nmcli connection up 'Ваше подключение'
```
---
## Структура проекта
```
.
├── bin/ # nfqws + fake-пакеты (собирается автоматически)
├── lib/
│ └── functions.sh # Общие функции (firewall, цвета, cleanup)
├── lists/ # Списки доменов и IP (обновляются из GitHub)
├── utils/
│ ├── test_zapret.sh # Тесты доступности
│ └── targets.txt # Цели для теста
├── systemd/
│ ├── zapret.service # Основной unit
│ ├── zapret-update.service # Unit для автообновления
│ └── zapret-update.timer # Таймер ежедневного обновления
├── .service/ # Runtime-конфигурация
├── general*.sh # 20 обёрток стратегий
├── run_strategy.sh # Единый движок стратегий
├── autotest.sh # Автоподбор рабочей стратегии
├── install.sh # Полный установщик: setup + build + autotest + systemd
├── service.sh # Меню управления (аналог service.bat)
├── setup.sh # Начальная настройка
├── install_nfqws.sh # Сборка nfqws из бол-ван/zapret
└── update.sh # Автообновление: проверка → сборка → тест → установка
```
---
## Требования
- Linux с `iptables` или `nftables`
- Ядерный модуль `nfnetfilter_queue` (загружается автоматически)
- `curl` для скачивания списков и fake-пакетов
- `git`, `make`, `gcc` для сборки nfqws
- `sudo` или root-доступ
---
## Лицензия
MIT License — аналогично оригинальному проекту.
## Благодарности
**Благодарности:**
- [bol-van](https://github.com/bol-van) — оригинальный разработчик zapret
- [Flowseal](https://github.com/Flowseal) — Windows-обёртка и стратегии