# Zapret for Linux (Discord + YouTube + GitHub + Telegram + Steam) Linux-аналог популярного репозитория [Flowseal/zapret-discord-youtube](https://github.com/Flowseal/zapret-discord-youtube) для обхода DPI (Deep Packet Inspection). **Ключевая фича:** `sync_from_upstream.sh` — автоматическое слежение за оригинальным Windows-репозиторием. При обновлении Flowseal скрипт сам скачает новые списки доменов, `hosts` и авто-конвертирует новые `.bat` стратегии в Linux-формат. --- ## Быстрый старт (рекомендуемый workflow) ```bash # 1. Клонирование cd /opt git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret cd zapret # 2. Запуск меню управления sudo ./service.sh ``` В открывшемся меню: 1. **Нажмите `11` (Run Tests)** — скрипт автоматически проверит все стратегии (general, ALT, ALT2, ALT3...) против YouTube и Discord и покажет **список ВСЕХ рабочих**. 2. После тестов нажмите `1` (Install Service) и **выберите номер** понравившейся стратегии из списка. 3. Сервис установлен и будет автозапускаться при загрузке. ``` :: TOOLS 10. Run Diagnostics 11. Run Tests (find ALL working strategies) ← СНАЧАЛА ЭТО :: SERVICE 1. Install Service ← ПОТОМ ЭТО 2. Remove Services 3. Check Status ``` > **Важно:** Все скрипты (`install.sh`, `setup.sh`, `general*.sh`, `service.sh`, `autotest.sh`, `update.sh`) должны запускаться **от root** (через `sudo`). --- ## Установка по дистрибутивам ### Ubuntu / Debian / Linux Mint / Pop!_OS / Zorin OS / Kali ```bash sudo apt update sudo apt install -y git curl make gcc iptables nftables libnetfilter-queue-dev cd /opt git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret cd zapret sudo ./service.sh # → 11 для тестов, затем 1 для установки ``` ### Arch Linux / Manjaro / EndeavourOS / Garuda / Artix ```bash sudo pacman -Syu --noconfirm git curl make gcc iptables nftables libnetfilter_queue cd /opt git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret cd zapret sudo ./service.sh ``` ### Fedora / RHEL / CentOS / AlmaLinux / Rocky Linux ```bash sudo dnf install -y git curl make gcc iptables nftables libnetfilter_queue-devel cd /opt git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret cd zapret sudo ./service.sh ``` ### Alpine Linux ```bash sudo apk add --no-cache git curl make gcc iptables nftables libnetfilter_queue-dev linux-headers cd /opt git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret cd zapret sudo ./service.sh ``` ### Gentoo / Funtoo ```bash sudo emerge --ask dev-vcs/git net-misc/curl sys-devel/gcc sys-devel/make net-firewall/iptables net-firewall/nftables cd /opt git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret cd zapret sudo ./service.sh ``` ### openSUSE / SUSE ```bash sudo zypper install -y git curl make gcc iptables nftables libnetfilter_queue-devel cd /opt git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret cd zapret sudo ./service.sh ``` ### Void Linux ```bash sudo xbps-install -Sy git curl make gcc iptables nftables libnetfilter_queue-devel cd /opt git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret cd zapret sudo ./service.sh ``` ### NixOS ```bash nix-shell -p git curl gnumake gcc iptables nftables libnetfilter_queue cd /opt git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret cd zapret sudo ./service.sh ``` --- ## Альтернативный способ: install.sh (полный автоустановщик) Если `service.sh` кажется сложным, можно запустить всё одной командой: ```bash sudo ./install.sh ``` Он автоматически: 1. Соберёт nfqws 2. Запустит тесты 3. Установит **первую** рабочую стратегию в systemd После этого сервис будет работать сразу и автозапускаться при загрузке. --- ## service.sh — меню управления ``` ZAPRET SERVICE MANAGER v1.9.8c-linux ---------------------------------------- :: SERVICE 1. Install Service ← выбор и установка стратегии 2. Remove Services ← удаление сервиса + остановка 3. Check Status ← проверка nfqws и firewall :: SETTINGS 4. Game Filter [disabled] 5. IPSet Filter [none] 6. Auto-Update Check [disabled] :: UPDATES 7. Update IPSet List 8. Update Hosts File 9. Check for Updates :: TOOLS 10. Run Diagnostics 11. Run Tests (find ALL working strategies) ← тестирует все и показывает рабочие ``` **Workflow:** 1. `sudo ./service.sh` → `11` → ждёте завершения тестов → видите список рабочих стратегий 2. `1` → вводите номер нужной стратегии → сервис установлен 3. `3` → проверяете, что сервис запущен 4. Открываете браузер: `youtube.com`, `discord.com` **Если стратегия перестала работать:** ```bash sudo ./service.sh # 2 — Remove Services (очистить) # 11 — Run Tests (перетестировать) # 1 — Install Service (выбрать другую рабочую) ``` --- ## Стратегии | Стратегия | Описание | |-----------|----------| | `general` | Standard multisplit | | `ALT` | Fake fakedsplit + ts fooling | | `ALT2` | Multisplit pos=2 | | `ALT3` | Hostfakesplit (Google/ya.ru) | | `ALT4` | Fake multisplit + badseq | | `ALT5` | **NOT RECOMMENDED** syndata multidisorder | | `ALT6` | Uniform split-seqovl=681 | | `ALT7` | Multisplit + syndata | | `ALT8` | Fake + badseq-increment=2 | | `ALT9` | Hostfakesplit (ozon.ru) | | `ALT10` | Fake + ts fooling | | `ALT11` | Fake multisplit + max_ru pattern | | `FAKE_TLS_AUTO` | FAKE TLS multidisorder | | `FAKE_TLS_AUTO_ALT` | FAKE TLS fakedsplit | | `FAKE_TLS_AUTO_ALT2` | FAKE TLS multisplit badseq | | `FAKE_TLS_AUTO_ALT3` | FAKE TLS + 4pda pattern | | `SIMPLE_FAKE` | Simple fake | | `SIMPLE_FAKE_ALT` | Simple fakedsplit | | `SIMPLE_FAKE_ALT2` | Simple hostfakesplit | **Ручной тест всех стратегий:** ```bash sudo ./autotest.sh # интерактивно: тестит все и показывает рабочие sudo ./autotest.sh --auto # автомат: найдёт и сразу установит первую рабочую ``` **Ручной запуск конкретной стратегии (без systemd):** ```bash sudo ./run_strategy.sh ALT3 # Ctrl+C — остановить ``` --- ## Структура проекта ``` . ├── 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=...) ├── utils/ │ ├── test_zapret.sh # curl-тесты │ └── targets.txt # Цели ├── systemd/ # Юниты и таймеры ├── .service/ │ ├── version.txt # Версия │ ├── hosts # Статичные IP │ └── 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 ``` --- ## Важно для пользователей из России GitHub заблокирован в РФ. Установщик **автоматически использует** прокси/зеркала, но рекомендуется: 1. **Если есть VPN/прокси:** ```bash export HTTPS_PROXY=socks5://127.0.0.1:1080 sudo ./install.sh ``` 2. **Если нет VPN на целевой машине** — подготовьте офлайн-пакет: ```bash # На машине С интернетом (с VPN): cd /opt/zapret proxychains ./prepare_offline_bundle.sh # Перенесите zapret-discord-youtube-linux-bundle.tar.gz # на целевую машину, распакуйте и: sudo ./install.sh --offline ``` 3. **Если установка падает на скачивании:** - Проверьте `.env.example` → создайте `.env` с `GITHUB_PROXY=...` --- ## update.sh — автообновление ```bash # Полный pipeline: sync upstream → rebuild → test → install sudo ./update.sh # интерактивно sudo ./update.sh --auto # для cron: тихий режим sudo ./update.sh --full-auto # форсировать пересборку + перетестирование ``` **Когда использовать `--full-auto`:** - После обновления дистрибутива/ядра - Если `nfqws` падает с segfault - Если текущая стратегия перестала работать --- ## Troubleshooting **nfqws падает с segfault:** ```bash sudo ./update.sh --full-auto # Пересобирает с -O0 (без оптимизаций) ``` **Стратегия перестала работать:** ```bash sudo ./service.sh # 2 — Remove Services # 11 — Run Tests (перетестировать все) # 1 — Install Service (выбрать другую) ``` **Discord не работает, хотя YouTube работает:** ```bash # Добавьте домены в пользовательский список echo "discord.gg" >> lists/list-general-user.txt sudo systemctl restart zapret ``` **Steam не запускается:** - Включите Game Filter: `sudo ./service.sh` → `4` - Или добавьте порты Steam в `lists/list-general-user.txt` **YouTube работает, но страница грузится медленно:** ```bash sudo ./service.sh # 6 — Auto-Update Check → вкл # 9 — Check for Updates → обновить стратегии ``` --- ## Автор и лицензия Linux-адаптация: [Stitch505](https://giteas.stitch505.su/Stitch505) Оригинальные стратегии: [Flowseal](https://github.com/Flowseal/zapret-discord-youtube) Движок nfqws: [bol-van/zapret](https://github.com/bol-van/zapret) MIT License.