docs: rewrite README with per-distro install instructions, single main branch
This commit is contained in:
360
README.md
360
README.md
@@ -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-обёртка и стратегии
|
||||
|
||||
Reference in New Issue
Block a user