docs: rewrite README with per-distro install instructions, single main branch
This commit is contained in:
@@ -1,112 +1,197 @@
|
|||||||
# Zapret for Linux (Discord + YouTube)
|
# Zapret for Linux (Discord + YouTube)
|
||||||
|
|
||||||
Linux-аналог популярного репозитория [Flowseal/zapret-discord-youtube](https://github.com/Flowseal/zapret-discord-youtube) для обхода DPI (Deep Packet Inspection) на Linux.
|
Linux-аналог популярного репозитория [Flowseal/zapret-discord-youtube](https://github.com/Flowseal/zapret-discord-youtube) для обхода DPI (Deep Packet Inspection).
|
||||||
|
|
||||||
## Требования
|
|
||||||
|
|
||||||
- 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
|
```bash
|
||||||
# Установка и настройка
|
# Ubuntu / Debian / Mint
|
||||||
sudo ./setup.sh # зависимости + сборка nfqws
|
sudo apt update && sudo apt install -y git
|
||||||
|
|
||||||
# Автоподбор стратегии
|
# Arch / Manjaro
|
||||||
sudo ./autotest.sh # интерактивный режим
|
sudo pacman -Syu --noconfirm git
|
||||||
sudo ./autotest.sh --auto # автоматический (сразу ставит в systemd)
|
|
||||||
|
|
||||||
# Обновление в будущем
|
# Fedora
|
||||||
sudo ./update.sh # проверить версию, обновить, пересобрать
|
sudo dnf install -y git
|
||||||
sudo ./update.sh --full-auto # форсировать: пересобрать + перетестить
|
|
||||||
|
# --- Дальше одинаково для всех дистрибутивов ---
|
||||||
|
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
|
```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 ./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)
|
||||||
|
|
||||||
Каждый `general*.sh` — это обёртка над `run_strategy.sh` с нужным параметром:
|
|
||||||
|
|
||||||
| Файл | Стратегия | Описание |
|
| Файл | Стратегия | Описание |
|
||||||
|------|-----------|----------|
|
|------|-----------|----------|
|
||||||
| `general.sh` | `general` | Standard multisplit |
|
| `general.sh` | `general` | Standard multisplit (рекомендуется пробовать первой) |
|
||||||
| `general_ALT.sh` | `ALT` | Fake fakedsplit + ts fooling |
|
| `general_ALT.sh` | `ALT` | Fake fakedsplit + ts fooling |
|
||||||
| `general_ALT2.sh` | `ALT2` | Multisplit pos=2 |
|
| `general_ALT2.sh` | `ALT2` | Multisplit pos=2 |
|
||||||
| `general_ALT3.sh` | `ALT3` | Hostfakesplit (Google/ya.ru) |
|
| `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_ALT.sh` | `SIMPLE_FAKE_ALT` | Simple fakedsplit |
|
||||||
| `general_SIMPLE_FAKE_ALT2.sh` | `SIMPLE_FAKE_ALT2` | Simple hostfakesplit |
|
| `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 — меню управления
|
## service.sh — меню управления
|
||||||
|
|
||||||
@@ -150,22 +239,21 @@ sudo ./autotest.sh --auto
|
|||||||
|
|
||||||
:: TOOLS
|
:: TOOLS
|
||||||
10. Run Diagnostics — проверка зависимостей, модулей, DNS
|
10. Run Diagnostics — проверка зависимостей, модулей, DNS
|
||||||
11. Run Tests — тест сайтов или DPI checker
|
11. Run Tests — тест доступности Discord/YouTube
|
||||||
```
|
```
|
||||||
|
|
||||||
## Автообновление (update.sh)
|
---
|
||||||
|
|
||||||
|
## update.sh — автообновление и автосборка
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Интерактивный режим — проверяет версию, предлагает обновить,
|
sudo ./update.sh # интерактивно: проверит версию, обновит, соберёт, протестирует
|
||||||
# скачивает новые списки, пересобирает nfqws, перезапускает сервис
|
sudo ./update.sh --auto # для cron: тихий режим, только если есть обновление
|
||||||
sudo ./update.sh
|
sudo ./update.sh --full-auto # форсировать пересборку + перетестирование
|
||||||
|
sudo ./update.sh --help # справка
|
||||||
# Автоматический режим (для cron / systemd timer)
|
|
||||||
sudo ./update.sh --auto
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### systemd таймер для автообновления
|
**systemd таймер для ежедневного автообновления:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo cp systemd/zapret-update.timer /etc/systemd/system/
|
sudo cp systemd/zapret-update.timer /etc/systemd/system/
|
||||||
sudo cp systemd/zapret-update.service /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
|
sudo systemctl enable --now zapret-update.timer
|
||||||
```
|
```
|
||||||
|
|
||||||
## Установка в автозагрузку (systemd)
|
---
|
||||||
|
|
||||||
|
## Установка в автозагрузку (вручную)
|
||||||
|
|
||||||
|
Если install.sh автоматику не прошёл:
|
||||||
```bash
|
```bash
|
||||||
sudo cp systemd/zapret.service /etc/systemd/system/
|
sudo cp systemd/zapret.service /etc/systemd/system/
|
||||||
sudo systemctl daemon-reload
|
sudo systemctl daemon-reload
|
||||||
@@ -182,25 +273,70 @@ sudo systemctl enable zapret.service
|
|||||||
sudo systemctl start zapret.service
|
sudo systemctl start zapret.service
|
||||||
```
|
```
|
||||||
|
|
||||||
## Пользовательские списки
|
---
|
||||||
|
|
||||||
При первом запуске автоматически создаются:
|
## Secure DNS (рекомендуется)
|
||||||
- `lists/list-general-user.txt` — добавляйте свои домены
|
|
||||||
- `lists/list-exclude-user.txt` — домены-исключения
|
|
||||||
- `lists/ipset-exclude-user.txt` — IP-исключения
|
|
||||||
|
|
||||||
## Secure DNS
|
**Chrome:** `chrome://settings/security` → Secure DNS → `https://dns.google/dns-query`
|
||||||
|
|
||||||
Рекомендуется включить DNS-over-HTTPS:
|
**Firefox:** `about:preferences#privacy` → DNS-over-HTTPS → Максимальная защита
|
||||||
- **Chrome**: `chrome://settings/security` → Secure DNS
|
|
||||||
- **Firefox**: `about:preferences#privacy` → DNS-over-HTTPS
|
**systemd-resolved:**
|
||||||
- **Система (systemd-resolved)**: `resolvectl dns eth0 1.1.1.1`
|
```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 — аналогично оригинальному проекту.
|
MIT License — аналогично оригинальному проекту.
|
||||||
|
|
||||||
## Благодарности
|
**Благодарности:**
|
||||||
|
|
||||||
- [bol-van](https://github.com/bol-van) — оригинальный разработчик zapret
|
- [bol-van](https://github.com/bol-van) — оригинальный разработчик zapret
|
||||||
- [Flowseal](https://github.com/Flowseal) — Windows-обёртка и стратегии
|
- [Flowseal](https://github.com/Flowseal) — Windows-обёртка и стратегии
|
||||||
|
|||||||
Reference in New Issue
Block a user