Zapret for Linux (Discord + YouTube + GitHub + Telegram + Steam)

Linux-аналог популярного репозитория Flowseal/zapret-discord-youtube для обхода DPI (Deep Packet Inspection).

Ключевая фича: sync_from_upstream.sh — автоматическое слежение за оригинальным Windows-репозиторием. При обновлении Flowseal скрипт сам скачает новые списки доменов, hosts и авто-конвертирует новые .bat стратегии в Linux-формат.


Быстрый старт (рекомендуемый workflow)

# 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

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

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

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

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

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

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

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

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 кажется сложным, можно запустить всё одной командой:

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.sh11 → ждёте завершения тестов → видите список рабочих стратегий
  2. 1 → вводите номер нужной стратегии → сервис установлен
  3. 3 → проверяете, что сервис запущен
  4. Открываете браузер: youtube.com, discord.com

Если стратегия перестала работать:

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

Ручной тест всех стратегий:

sudo ./autotest.sh          # интерактивно: тестит все и показывает рабочие
sudo ./autotest.sh --auto   # автомат: найдёт и сразу установит первую рабочую

Ручной запуск конкретной стратегии (без systemd):

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/прокси:

    export HTTPS_PROXY=socks5://127.0.0.1:1080
    sudo ./install.sh
    
  2. Если нет VPN на целевой машине — подготовьте офлайн-пакет:

    # На машине С интернетом (с 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 — автообновление

# Полный 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:

sudo ./update.sh --full-auto
# Пересобирает с -O0 (без оптимизаций)

Стратегия перестала работать:

sudo ./service.sh
# 2 — Remove Services
# 11 — Run Tests (перетестировать все)
# 1 — Install Service (выбрать другую)

Discord не работает, хотя YouTube работает:

# Добавьте домены в пользовательский список
echo "discord.gg" >> lists/list-general-user.txt
sudo systemctl restart zapret

Steam не запускается:

  • Включите Game Filter: sudo ./service.sh4
  • Или добавьте порты Steam в lists/list-general-user.txt

YouTube работает, но страница грузится медленно:

sudo ./service.sh
# 6 — Auto-Update Check → вкл
# 9 — Check for Updates → обновить стратегии

Автор и лицензия

Linux-адаптация: Stitch505
Оригинальные стратегии: Flowseal
Движок nfqws: bol-van/zapret

MIT License.

Description
No description provided
Readme 309 KiB
Languages
Shell 100%