Skip to content

About

A set of scripts for easy installation of Zapret on GNU/Linux distributions

Resources

Stars

5 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

205 Commits

Folders and files

Repository files navigation

🚀 Zapret - Обход блокировок Discord и YouTube

Зеркало: https://codeberg.org/Lintech/zapret-discord-youtube

Note

Внимание: Этот репозиторий — некоммерческая User-Friendly сборка оригинального проекта zapret.

🔒 Безопасность: Используются оригинальные бинарники с проверяемыми хэшами. Так как zapret — open-source, вы всегда можете самостоятельно собрать бинарники из исходного кода.

⭐ Поддержка проекта: Буду очень рад поставленной звездочке в правом верхнем углу! 🙂

📄 Лицензия

Этот проект распространяется на условиях лицензии MIT. Полный текст лицензии можно найти в файле LICENSE.

⚡ Быстрая установка

🐧 Для пользователей Linux

Автоматическая установка одной командой:

bash <(curl -s https://raw.githubusercontent.com/kartavkun/zapret-discord-youtube/main/setup.sh)

Tip

Если команда выше не работает, попробуйте альтернативный вариант:

bash <(curl -s https://raw.githubusercontent.com/kartavkun/zapret-discord-youtube/main/setup.sh | psub)

Что делает скрипт установки:

  • ✅ Автоматически определяет ваш дистрибутив Linux
  • 📦 Устанавливает необходимые зависимости (wget, git)
  • ⬇️ Скачивает последнюю версию zapret с официального репозитория
  • 🛠️ Настраивает систему для работы zapret
  • 🎯 Предлагает интерактивный выбор конфигурации

Note

Если во время установки вы согласились добавить алиасы (чтобы работал zapret-utils или zapret-config) они станут доступны только в новых сессиях терминала. Чтобы использовать уже в открытом терминале, выполните:

source ~/.bashrc # или ~/.zshrc и т.д

❄️ Для пользователей NixOS

Important

Каждая конфигурация NixOS уникальна, поэтому пример ниже нужно адаптировать под вашу систему. Используйте его только как ориентир.

Note

Для поддержки Flake в NixOS добавьте следующую строку в файл /etc/nixos/configuration.nix (см. подробнее Flakes)

Включите поддержку Flakes в вашем конфиге:

nix.settings.experimental-features = [ "nix-command" "flakes" ];

Пример интеграции в ваш flake.nix (можете его поместить в /etc/nixos/flake.nix):

{
  description = "NixOS configuration with zapret-discord-youtube";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; # Укажите свою версию NixOS, но не ниже 25.11.
    zapret-discord-youtube.url = "github:kartavkun/zapret-discord-youtube";
  };

  outputs = { self, nixpkgs, zapret-discord-youtube }: {
    nixosConfigurations.your-hostname = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";
      modules = [
        ./configuration.nix

        zapret-discord-youtube.nixosModules.withTestTools
        {
          services.zapret-discord-youtube = {
            enable = true;
            configName = "general(ALT)";  # Или любой конфиг из папки configs (general, general(ALT), general (SIMPLE FAKE) и т.д.)

            # Game Filter: "null" (отключен), "all" (TCP+UDP), "tcp" (только TCP), "udp" (только UDP)
            gameFilter = "null";  # или "all", "tcp", "udp"

            # Добавляем кастомные домены в list-general-user.txt
            listGeneral = [ "example.com" "test.org" "mysite.net" ];

            # Добавляем домены в list-exclude-user.txt (исключения)
            listExclude = [ "ubisoft.com" "origin.com" ];

            # Добавляем IP адреса в ipset-all.txt
            ipsetAll = [ "192.168.1.0/24" "10.0.0.1" ];

            # Добавляем IP адреса в ipset-exclude-user.txt (исключения)
            ipsetExclude = [ "203.0.113.0/24" ];

            # Необязательно: пользовательские hostlists и конфиги.
            # extraHostlists может содержать несколько файлов.
            # Если нужен пример для GitHub, раскомментируйте блок ниже
            # и оставьте в configName выбранный вами готовый конфиг.
            #
            # extraHostlists."list-github.txt" = [
            #   "github.com"
            #   "api.github.com"
            #   "raw.githubusercontent.com"
            #   "objects.githubusercontent.com"
            #   "githubusercontent.com"
            #   "githubassets.com"
            # ];
            #
            # extraHostlists."list-custom.txt" = [
            #   "example.com"
            #   "example.org"
            # ];
            #
            # nfqwsAppend = [
            #   ''--filter-tcp=443 --hostlist="/opt/zapret/hostlists/list-github.txt" --dpi-desync=multisplit --dpi-desync-split-pos=2''
            # ];
            #
            # Для полностью ручного конфига можно создать отдельный файл:
            # extraConfigs."my-custom-config" = ''
            #   NFQWS_ENABLE=1
            #   NFQWS_OPT="
            #   --filter-tcp=443 --hostlist="/opt/zapret/hostlists/list-github.txt" --dpi-desync=multisplit --dpi-desync-split-pos=2
            #   "
            # '';
          };
        }
      ];
    };
  };
}

Tip

Применение Zapret в сочетании с Encrypted DNS или DNScrypt-proxy также может помочь вам получить доступ к сайтам.

Тестирование стратегий на NixOS:

Так как /nix/store доступен только для чтения, подключите модуль с тестовыми инструментами:

zapret-discord-youtube.nixosModules.withTestTools

После nixos-rebuild switch запустите:

sudo zapret-test-strategies

Утилита создаёт временную writable-копию zapret в /run/zapret-discord-youtube-test, пишет логи в /var/log/zapret-discord-youtube-test и после теста возвращает основной сервис. Основные результаты сохраняются в файлах test-zapret-*.txt, а вывод перезапуска zapret — в restart.log.

Если тестовые инструменты не нужны, используйте обычный модуль:

zapret-discord-youtube.nixosModules.default

🎮 Использование

🔧 Выбор конфигурации

После установки запустите меню выбора конфигурации:

$HOME/zapret-configs/install.sh

Или если вы устанавливали alias:

zapret-config

Доступные конфигурации:

  • general — базовая конфигурация
  • general(ALT) до general(ALT11) — альтернативные варианты
  • general (FAKE_TLS_AUTO) и варианты — с автогенерацией TLS
  • general (SIMPLE FAKE) — оптимизировано для МГТС

Important

После выбора конфигурации скрипт запустит install_easy.sh, который будет запрашивать подтверждение - просто нажимайте ENTER для принятия значений по умолчанию.

Tip

В некоторых экзотических дистрибутивах может быть такое сообщение:

* checking readonly system
!!! READONLY SYSTEM DETECTED !!!
!!! WILL NOT BE ABLE TO CONFIGURE STARTUP !!!
!!! MANUAL STARTUP CONFIGURATION IS REQUIRED !!!
do you want to continue (default: N) (Y/N)?

Выбирайте Y чтобы установить zapret

🗒️ Добавление адресов прочих ресурсов

Список адресов для обхода можно расширить, добавляя их в:

  • hostlists/list-general-user.txt — для доменов (поддомены автоматически учитываются)
  • hostlists/list-exclude-user.txt — для исключения доменов (если IP сети указан в ipset-all.txt, но конкретный домен не надо фильтровать)
  • hostlists/ipset-exclude-user.txt — для исключения IP адресов и подсетей

Быстрое добавление доменов через меню:

Используйте встроенное меню для добавления доменов:

$HOME/zapret-configs/utils-zapret.sh

Выберите пункт "5. Добавить домен в список" и следуйте подсказкам. Вы можете добавлять:

  • Отдельные домены: example.com
  • URL: https://github.com/user/repo (будет извлечён github.com)
  • Поддомены: sub.example.com

🎛️ Управление и тестирование

🔄 Управление режимами

Для удобного переключения режимов ipset, GameFilter и управления конфигурациями используйте:

$HOME/zapret-configs/utils-zapret.sh

Или если вы установили alias:

zapret-utils

Доступные функции:

Функция Описание
IPSet режимы Переключение между режимами фильтрации (any, none, loaded)
GameFilter Включение/отключение обработки игровых портов с выбором режима (TCP, UDP, TCP+UDP)
Обновление IPSet Загрузка актуального списка IP адресов из репозитория
Обновление hosts Загрузка актуального файла hosts для корректной работы Discord
Добавление доменов Быстрое добавление новых доменов в list-general-user.txt или list-exclude-user.txt
Тестирование конфигов Проверка работоспособности конфигураций

Режимы IPSet:

  • loaded — использует полный список доменов и IP (рекомендуется)
  • none — обходит только тестовый IP (минимальная нагрузка, для отладки)
  • any — пустой список (zapret отключен)

GameFilter:

  • Отключен — игровые порты не обрабатываются (только порт 12)
  • TCP и UDP — обрабатывает игровые порты 1024-65535 для обоих протоколов
  • Только TCP — обрабатывает игровые порты 1024-65535 только для TCP
  • Только UDP — обрабатывает игровые порты 1024-65535 только для UDP

🧪 Тестирование конфигураций

Для проверки работоспособности конфигураций используйте меню управления:

$HOME/zapret-configs/utils-zapret.sh

Для работы тестов нужен установленный lua. Выберите пункт "9. Запустить тесты" и следуйте подсказкам.

Тестер проверяет:

  • Доступность целевых сайтов (HTTP, TLS 1.2, TLS 1.3)
  • Обход DPI блокировок на различных провайдерах
  • Результаты сохраняются в $HOME/zapret-configs/utils/log/

🔄 Обновление репозитория

$HOME/zapret-configs/utils-zapret.sh

Выберите пункт "6. Обновить файлы проекта". Обновление меняет только файлы в $HOME/zapret-configs.

Warning

Если текущая конфигурация работает идеально, обновляйтесь только если текущая конфигурация перестала работать или вы хотите попробовать новые конфигурации.

Откат на предыдущую версию: Запустите utils-zapret.sh и выберите пункт "7. Откатить последнее обновление".

🛠️ Управление службой

Если хотите удалить zapret:

sudo /opt/zapret/uninstall_easy.sh

💡 Расширение функциональности

Хотите добавить обход для других сайтов? Ознакомьтесь с личным руководством от kartavkun. Конструктивная критика и предложения приветствуются!

✅ Протестировано на

Дистрибутив Статус Примечания
Arch Linux ✅ Полностью "I use Arch btw"
Artix Linux ✅ Полностью OpenRC/runit/s6/dinit
Chimera Linux ✅ Полностью dinit
Void Linux ✅ Полностью runit
Slackware ✅ Полностью sysVinit
Alpine Linux ✅ Полностью OpenRC
Gentoo ✅ Полностью OpenRC
Solus ✅ Полностью Systemd
ALT Linux ✅ Полностью Systemd
Ximper Linux ✅ Полностью Systemd
AntiX Linux ✅ Полностью sysVinit / runit
Pop!_OS ✅ Полностью Systemd
Ubuntu ✅ 18.04+ Systemd
Kubuntu ✅ Полностью Systemd
Fedora ✅ Полностью Systemd
Fedora Silverblue ✅ Полностью Systemd (immutable)
Secureblue ✅ Полностью Systemd (immutable)
Bazzite ✅ Полностью Systemd
OpenSUSE ✅ Полностью Systemd
NixOS 🧪 Экспериментально Через Flake

❓ Решение проблем

Частые проблемы:

  1. Права доступа — запускайте скрипты с правами root
  2. Бесконечное "подключение" к Discord — запустите utils-zapret.sh → пункт 4 (обновить hosts)
  3. Обход не работает / перестал работать — попробуйте следующие шаги:
    • Сначала попробуйте альтернативные конфигурации (ALT, FAKE и т.д.) через $HOME/zapret-configs/install.sh
    • Обновите IPSet через utils-zapret.sh → пункт 4 (обновить IPSet)
    • Проверьте режим IPSet через utils-zapret.sh → пункт 2 (переключить режим IPSet на loaded)
    • Запустите тесты через utils-zapret.sh → пункт 9 (запустить тесты) для диагностики
    • Если ничего не помогает, попробуйте создать новую конфигурацию на основе одной из существующих

Important

Стратегии со временем могут переставать работать. Определенная стратегия может работать какое-то время, но со временем она может переставать работать из-за обнаружения. В репозитории представлены множество различных стратегий для обхода. Если ни одна из них вам не помогает, то вам необходимо создать новую, взяв за основу одну из представленных здесь и изменив её параметры.

Для сложных случаев:

💝 Поддержка проекта

  • ⭐ Поставить звездочку репозиторию (вверху страницы)
  • 💰 Поддержать разработчика
  • 🐛 Сообщить о багах и предложить улучшения

Поддержите оригинального разработчика zapret: bol-van/zapret#590

📈 История звезд

Star History Chart

🙏 Благодарности

  • @bol-van — создатель оригинального zapret
  • @Flowseal — за конфигурации для Windows и Linux
  • Сообществу — за тестирование и обратную связь

🩷 Контрибьюторы

Contributors


🚀 Наслаждайтесь свободным интернетом!

About

A set of scripts for easy installation of Zapret on GNU/Linux distributions

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages