ZapretDesktop — программа для Windows, которая управляет обходом DPI (глубокой инспекции пакетов) на основе zapret/Flowseal. Через один интерфейс вы выбираете стратегию, запускаете её, тестируете, редактируете списки доменов и обновляете компоненты.
- Версия: 1.6.4
- Платформа: Windows 10/11 (64-bit)
- Требования: права администратора, при сборке из исходников — Python 3.10+
- Быстрый старт
- Первый запуск
- Меню и горячие клавиши
- Работа со стратегиями
- Тестирование стратегий
- Редактор списков и файлов
- Конструктор стратегий и создание bin
- Списки по странам (OONI)
- Дополнения и обновления
- Настройки
- Диагностика
- Конфигурация и хранение данных
- Сборка из исходников
- Частые вопросы и решения
- Скачайте архив с релизом и распакуйте в любую папку.
- Убедитесь, что рядом с
ZapretDesktop.exeесть папка winws (сbin\winws.exe, списками и.bat-стратегиями). Если её нет — при запуске откроется диалог настройки winws: можно скачать (через GitHub), выбрать папку или zip-архив, либо пропустить. - Запустите ZapretDesktop.exe от имени администратора (правый клик → «Запуск от имени администратора»).
Без прав администратора приложение не сможет управлять сетевыми компонентами zapret.
- Установите Python 3.10+ и добавьте его в PATH.
- В папке проекта выполните:
pip install -r requirements.txt python ZapretDesktop.py
- Запуск тоже только от имени администратора.
Если папка winws не найдена (рядом с exe или по пути из настроек), при старте открывается диалог настройки winws:
- Скачать — загрузка и установка zapret из GitHub (по умолчанию Flowseal zapret-discord-youtube).
- Выбрать — указать папку winws или локальный ZIP-архив.
- Пропустить — запустить приложение без winws (стратегии будут недоступны до добавления папки).
Программа отслеживает появление и изменение папки winws — список стратегий обновляется автоматически.
Все настройки задаются в Настройки (Ctrl+,): язык, трей, автозапуск, путь к winws, репозиторий zapret и др.
| Пункт | Горячая клавиша | Описание |
|---|---|---|
| Тестирование | Ctrl+Shift+T | Окно тестирования стратегий (HTTP/TLS/Ping). |
| Диагностика | Ctrl+Shift+D | Окно диагностики системы. |
| Редактор | Ctrl+E | Объединённый редактор (списки, drivers\etc, стратегии). |
| Создать стратегию | Ctrl+N | Конструктор пользовательской стратегии. |
| Создание bin | Ctrl+Shift+B | Диалог создания bin-файла в winws\bin из hex. |
| Открыть папку... | — | Подменю: «Открыть папку winws» (Ctrl+Shift+W), «Открыть папку конфигурации программы» (Ctrl+Shift+O). |
| Свернуть окно | Ctrl+M | Свернуть в трей (если трей включён). |
| Закрыть программу | Ctrl+Q | Выход из приложения. |
| Пункт | Горячая клавиша |
|---|---|
| Настройки | Ctrl+, |
| Пункт | Горячая клавиша |
|---|---|
| Дополнения | Ctrl+Shift+A |
| Пункт | Горячая клавиша | Описание |
|---|---|---|
| Проверить обновление программы | Ctrl+F5 | Проверка обновлений ZapretDesktop. |
| Проверить обновление zapret | F5 | Проверка обновлений стратегий zapret из настроенного репозитория. |
| Ручное обновление | Ctrl+Shift+U | Установка из локального ZIP-архива. |
| Обновить IPSet List | — | Обновление ipset-all.txt. |
| Пункт | Горячая клавиша | Описание |
|---|---|---|
| Ссылка на репозиторий ZapretDesktop | F1 | Открытие страницы проекта в браузере. |
| Ссылка на Flowseal zapret | Shift+F1 | Открытие репозитория zapret в браузере. |
В главном окне также доступен выпадающий список стратегий и подменю со списком всех стратегий (быстрый выбор по имени); при выборе стратегии из списка она сохраняется как последняя выбранная.
- Стратегии — это .bat-файлы в корне папки winws. Файл service.bat в список стратегий не входит и служебный.
- В главном окне в выпадающем списке выберите нужную стратегию и нажмите «Запустить». Для остановки — «Остановить».
- В списке отображается: имя стратегии, версия zapret (из service.bat), при внешнем запуске winws — pid= (идентификатор процесса).
- Заголовок окна: ZapretDesktop — текущая стратегия (обновляется при запуске и во время тестирования).
- Перед запуском выполняется проверка: разрешён только запуск .bat из папки winws и только тех имён, которые были загружены в список при открытии окна (защита от path traversal и посторонних скриптов).
В настройках:
- Автозапуск последней стратегии — при старте ZapretDesktop через ~1 с автоматически запускается последняя выбранная стратегия.
- Автоперезапуск стратегии — если процесс winws.exe завершился, а пользователь не нажимал «Остановить», стратегия автоматически перезапускается.
В настройках (категория «Автоперезапуск приложений») можно задать список имён процессов (например, discord.exe). При запуске стратегии эти процессы сначала завершаются, затем через 0.5 с запускается .bat. Так можно перезапускать клиенты (Discord и др.) вместе с включением обхода DPI.
- При включённой опции «Отображать в трее» окно можно свернуть в иконку в области уведомлений.
- Меню трея: Показать/Свернуть окно, Сменить стратегию (подменю со списком стратегий и пунктом «Открыть папку winws»), Перезапуск (подменю: перезапуск текущей стратегии), Выход.
Окно тестирования (меню «Файл» → «Тестирование» или Ctrl+Shift+T):
- Режимы тестирования — стандартные тесты (HTTP/TLS/Ping) и проверки DPI (TCP-порты 16–20, тест «заморозки»).
- Выбор стратегии — тестировать одну выбранную .bat или все стратегии (кроме service.bat).
- Тесты: HTTP (доступность по HTTP/1.1), TLS (проверки TLS 1.2/1.3 по целям), Ping (сетевая достижимость и задержки). При тесте «все стратегии» winws перед каждым набором перезапускается.
- Пауза — кнопка «Пауза»/«Продолжить» для приостановки тестов.
- Автообновление главного окна — во время тестирования список стратегий и заголовок главного окна автоматически показывают текущую тестируемую стратегию.
- Перед запуском тестов, если winws уже запущен, программа предлагает его остановить.
- Цели задаются в winws\utils\targets.txt. Во вкладке Targets этого же окна можно редактировать файл (подсветка, автосохранение, предупреждение о несохранённых изменениях).
- Таблица результатов — статусы по каждой цели с цветовой индикацией (успех/ошибка).
- Таблица лучших стратегий — сводка по стратегиям (рабочие / средние / нерабочие) с возможностью экспорта.
- Экспорт — общая таблица и рейтинг стратегий в TXT, CSV или JSON.
Объединённый редактор (меню «Файл» → «Редактор» или Ctrl+E) содержит три вкладки.
- Редактирование доменных списков (list-general.txt, list-exclude.txt, list-google.txt и др.) и IPSet (ipset-all.txt, ipset-exclude.txt и др.).
- Слева — список файлов с фильтром по имени; при отсутствии совпадений отображается «Ничего не найдено».
- Подсветка синтаксиса, нумерация строк, автосохранение с задержкой, обновление при изменении файла извне.
- Контекстное меню списка файлов: открыть папку в проводнике, создать файл (для списков и стратегий), удалить файл (с подтверждением).
- Редактирование файлов из
C:\Windows\System32\drivers\etc(hosts, services и др.). - Параллельный просмотр zapret_hosts.txt (из winws).
- Редактирование .bat-файлов стратегий с подсветкой синтаксиса.
- Встроенная консоль cmd.exe в папке winws: интерактивный ввод команд в окружении winws. Консоль можно запускать/останавливать; вывод отображается в той же вкладке.
- Меню «Файл»: создать файл (Ctrl+N), сохранить (Ctrl+S), сохранить как (Ctrl+Shift+S), открыть папку в cmd/PowerShell (текущая вкладка или папка текущего файла), закрыть окно (Ctrl+W).
- Меню «Правка»: поиск и замена в текущем файле, поиск по файлам текущей вкладки.
- Поиск и замена: отдельное окно (не модальное): поле поиска, поле замены, «с учётом регистра», «целое слово», «Найти далее», «Найти предыдущий», «Заменить», «Заменить все».
- Поиск по файлам: диалог с масками (например *.txt, *.bat), опция «с учётом регистра». Результаты в виде «файл:строка: фрагмент»; двойной клик — переход к строке в редакторе.
- Строка состояния: хлебные крошки (путь к текущему файлу, клик — переход к строке), размер табуляции (Spaces: 2 / 4 / 8, Tabs), кодировка (UTF-8, UTF-8 BOM, Windows-1251), окончания строк (CRLF, LF, CR).
- Масштаб — через меню «Вид» (увеличение/уменьшение шрифта).
- Конвертирование — меню для смены кодировки/окончаний строк текущего файла.
- Автодополнение — в текстовых полях редактора при вводе могут предлагаться варианты из текущего файла/списков.
- Отдельные окна «Редактор списков» и «Редактор drivers\etc» доступны из меню для быстрого доступа без переключения вкладок.
Для редактирования hosts и обновления zapret_hosts может потребоваться запуск от имени администратора.
Визуальный мастер создания новой .bat-стратегии в папке winws.
- Имя стратегии — имя без расширения (будет создан файл
Имя.bat). - Использовать Game Filter — галочка; при включении в .bat добавляется вызов загрузки Game Filter и учёт портов игрового фильтра в Windows Firewall.
Вкладка «Фильтры трафика»:
- TCP-порты (например 80,443).
- UDP-порты (например 443,19294-19344).
- L7-протоколы (например discord, stun).
- L3-протоколы (например ipv4).
Вкладка «Списки»:
- Списки доменов: Hostlist, Hostlist exclude, Hostlist domains (из файлов в winws\lists).
- IPSet: IPSet, IPSet exclude (файлы из winws\lists).
Вкладка «DPI Desync»:
- DPI Desync: fake, multisplit, syndata, multidisorder.
- Repeats (1–20).
- Fake QUIC, Fake TLS, Fake TLS mod — выбор бинарников из winws\bin.
- Fooling (например ts).
- Split seqovl, Split pos, Split pattern.
- AutoTTL, Any protocol.
- Fake unknown UDP, Cutoff (n2, n3) — при необходимости выбор бинарников.
- IP ID — например zero.
В сгенерированный .bat добавляются вызовы service.bat, при необходимости загрузка Game Filter, переменные BIN/LISTS, параметры --wf-tcp и --wf-udp для Windows Firewall (порты из правил и при включённом Game Filter — %GameFilter%).
Диалог «Создание bin»:
- Имя файла в winws\bin (например имя модуля).
- Hex-содержимое — текст в виде шестнадцатеричных символов (пробелы/переносы игнорируются).
- По кнопке создания в winws\bin записывается бинарный файл с указанным именем. Нужны права на запись в папку winws\bin.
На основе данных OONI (Open Observatory of Network Interference) можно сформировать список доменов по стране и сохранить его в winws\lists.
- Доступ из редактора списков или через соответствующий пункт меню/диалог «Список по странам» (или аналог по переводу).
- Страна — выбор из списка (Россия, Беларусь, Казахстан, Узбекистан, Туркменистан, Таджикистан, Киргизия, Китай, Иран, Турция, Египет, Вьетнам, Мьянма, Пакистан, Индия, ОАЭ, Саудовская Аравия, Таиланд, Индонезия, Малайзия и др. по коду ISO).
- Имя файла — например list-ru.txt (подсказка подставляется по выбранной стране).
- Только подтверждённые блокировки — галочка для ограничения выборки подтверждёнными блокировками (повышает качество списка).
- Лимит доменов — от 100 до 5000 (по умолчанию 500).
- После загрузки данные сохраняются в выбранный файл в папке winws\lists. Требуется доступ к API OONI (сеть).
- Меню «Обновление» → «Проверить обновление программы» (Ctrl+F5). При наличии новой версии предлагается скачать и установить её.
- Меню «Обновление» → «Проверить обновление zapret» (F5). Используется репозиторий из настроек (по умолчанию
Flowseal/zapret-discord-youtube). Перед обновлением программа предлагает остановить winws; создаётся резервная копия папки winws. - Обновление выполняется по файлам и подпапкам, без полного удаления winws. В настройках можно задать список игнорируемых подпапок winws (по умолчанию игнорируется
lists) — такие каталоги и их содержимое не изменяются при обновлении (сохраняются пользовательские файлы/правки).
- Меню «Обновление» → пункт ручного обновления (Ctrl+Shift+U). Выбор локального ZIP-архива; распаковка и слияние с текущей папкой winws (по правилам, заданным в программе).
- Таблица: столбцы «Название», «URL», кнопки «Скачать» и «Открыть» для каждой строки.
- Строки можно редактировать (двойной клик по ячейке), добавлять и удалять. Список дополнений хранится в конфиге (
addons) и подгружается при следующем запуске. По умолчанию может быть одна строка (например Flowseal zapret-discord-youtube). - Режим установки (перед скачиванием): полная установка, только списки (lists), только стратегии (winws), только бинарники (bin).
- Поиск по таблице — фильтрация по названию/URL; при отсутствии совпадений отображается служебная строка «Ничего не найдено».
- Скачать — скачивание выбранного релиза/архива по URL и установка в winws согласно выбранному режиму. Открыть — открытие ссылки в браузере.
- Обновить IPSet List — обновление файла ipset-all.txt (из настроенного источника/репозитория).
- Обновление/проверка hosts-файла доступна через редактор drivers\etc и связанные пункты.
- В настройках (категория «Добавление команды /B»): Добавить /B во все стратегии и Удалить /B из всех стратегий — кнопки для массового изменения .bat в папке winws. Добавлять /B при обновлении — автоматически добавлять /B при обновлении zapret.
- В настройках (категория «Обновление»): Удалять проверку обновлений zapret из стратегий — при включении из всех .bat удаляются строки вида
call service.bat check_updates. Это сохраняется в конфиге (remove_check_updates).
Открываются через меню «Настройки» или Ctrl+,. Слева — список категорий с поиском (фильтрация по названию категории); при отсутствии совпадений показывается «Ничего не найдено». Справа — страница выбранной категории.
| Категория | Параметры |
|---|---|
| Язык программы | Выбор языка: русский / English. После смены языка может потребоваться перезапуск приложения. |
| Путь к winws | Путь к папке winws. Пусто = папка рядом с исполняемым файлом. Кнопка «Обзор» для выбора папки. |
| Трей | Отображать в трее; Запускать свернутым в трей (доступно при включённом отображении в трее). |
| Поведение при выходе | Закрывать winws при выходе из программы. |
| Автозапуск | Запуск с Windows (Планировщик заданий); Автозапуск последней стратегии при старте; Автоперезапуск стратегии при сбое. |
| Фильтры | Game Filter (вкл/выкл); IPSet Filter: Loaded / None / Any. Изменения фильтров применяются к файлам в winws и могут потребовать перезапуска стратегии. |
| Автоперезапуск приложений | Таблица с именами процессов (например discord.exe). Кнопки «Добавить», «Удалить». При запуске стратегии эти процессы завершаются, затем запускается .bat. |
| Добавление команды /B | Добавлять /B при обновлении zapret; кнопки «Добавить /B во все стратегии», «Удалить /B из всех стратегий». |
| Обновление | Удалять проверку обновлений zapret из стратегий; поле «Репозиторий zapret» (GitHub owner/repo или полная ссылка); таблица игнорируемых подпапок winws при обновлении (по умолчанию lists, можно добавить bin или свои каталоги). |
Настройки сохраняются в %APPDATA%\Roaming\ZapretDesktop\config.json при нажатии «ОК». Перед сохранением создаётся резервная копия config.json.bak. Автозапуск с Windows управляется через отдельный механизм (Планировщик заданий).
Окно диагностики (меню «Файл» → «Диагностика» или Ctrl+Shift+D) выполняет последовательность проверок и выводит результат в текстовое поле. В окне доступно меню «Экспорт»: сохранить отчёт в TXT, CSV или JSON (с датой/временем в имени файла по умолчанию).
Проверки (кратко):
- Base Filtering Engine (BFE) — служба должна быть запущена (RUNNING); необходима для работы zapret.
- Системный прокси — если включён, выводится предупреждение с адресом прокси и рекомендацией проверить настройки.
- TCP timestamps — проверка и при необходимости автоматическое включение (netsh interface tcp set global timestamps=enabled).
- Adguard — наличие процесса AdguardSvc.exe (конфликт с Discord); при обнаружении выводится ссылка на issue.
- Killer — наличие служб Killer (конфликт); при обнаружении выводится ссылка.
- Intel Connectivity Network Service — конфликт; при обнаружении выводится ссылка.
- Check Point — службы TracSrvWrapper/EPWD; рекомендация удалить при конфликте.
- SmartByte — наличие службы SmartByte; рекомендация удалить при конфликте.
- WinDivert64.sys — наличие .sys файлов в winws\bin.
- VPN — наличие служб с «VPN» в имени; предупреждение о возможном конфликте.
- Защищённый DNS (DoH) — проверка через реестр; при отсутствии DoH выводятся рекомендации по настройке DNS (в т.ч. для Windows 11).
- Конфликт WinDivert — если winws не запущен, но служба WinDivert в состоянии RUNNING/STOP_PENDING, предпринимается попытка остановить и удалить службу.
- Служба Zapret — статус службы zapret (установлена/запущена/остановлена); при запущенной службе может выводиться путь к стратегии из реестра.
- winws.exe — запущен ли процесс, выводится PID.
- Версия Windows — release, version, архитектура (platform).
- Права администратора — проверка IsUserAnAdmin().
- Стратегии — наличие папки winws\strategies и количество .bat в ней (в зависимости от сборки стратегии могут находиться в корне winws; диагностика проверяет подпапку strategies).
- DNS-серверы — вывод до 3 DNS из ipconfig /all.
- Сетевые адаптеры — количество адаптеров по выводу ipconfig.
- targets.txt — наличие winws\utils\targets.txt и количество непустых строк.
- hosts — наличие C:\Windows\System32\drivers\etc\hosts и количество записей (не комментариев).
Цветовая индикация в отчёте: зелёный — успех, красный — ошибка, оранжевый — предупреждение/неопределённость.
- Файл конфигурации:
%APPDATA%\Roaming\ZapretDesktop\config.json. - Резервная копия: перед каждым сохранением создаётся
config.json.bakв той же папке. - Структура конфига:
- app — настройки приложения (все параметры из диалога настроек: language, show_in_tray, start_minimized, close_winws_on_exit, auto_start_last_strategy, auto_restart_strategy, add_b_flag_on_update, remove_check_updates, last_strategy, winws_path, zapret_repo, game_filter_enabled, ipset_filter_mode, auto_restart_apps, first_run_done и т.д.).
- zapret_version — объект с полем version (версия zapret, с которой работало приложение).
- addons (при наличии) — массив записей {name, url} для окна «Дополнения».
- При повреждении config.json программа может попытаться загрузить настройки из config.json.bak. Старые форматы (плоский config или отдельные app.json / zapret_version.json в папке программы) при первом запуске мигрируются в новый формат в AppData.
- Контроль winws.exe:
- Запуск стратегий происходит только для
.batиз папки winws (имя и путь проверяются перед запуском). - В главном окне таймер раз в секунду через psutil ищет процесс
winws.exe, отображает PID и текущую стратегию и может автоматически перезапустить стратегию при внезапном завершении (если включён автоперезапуск).
- Запуск стратегий происходит только для
- Автоопределение папки winws:
- Путь берётся из настроек (
winws_path), иначе ищетсяwinwsрядом с exe/скриптом, иначе используется путь, выбранный в мастере первой настройки. - QFileSystemWatcher следит за базовой директорией и за самой папкой winws; при изменениях автоматически пересобирается список стратегий.
- Путь берётся из настроек (
- Обновление winws и игнорируемые подпапки:
- ZapretUpdater распаковывает архив во временную папку, находит источник winws и по одному обновляет файлы/папки в текущем winws (без полного удаления).
- Список
update_ignore_foldersв конфиге (по умолчанию["lists"]) задаёт подпапки winws, которые при обновлении полностью пропускаются (файлы в них не удаляются и не перезаписываются).
- Windows 10/11 (64-bit)
- Python 3.10+
- Права на запись в папку проекта
- Указаны в
requirements.txt: PyQt6 (≥6.4), psutil (≥5.9), requests (≥2.28). Для сборки exe дополнительно нужен PyInstaller.
В корне проекта выполните:
build.batСкрипт:
- Проверяет наличие Python в PATH.
- Устанавливает зависимости из
requirements.txtи PyInstaller. - Удаляет каталоги
buildиdistпри их наличии. - Запускает PyInstaller с параметрами: один файл, без консоли, имя ZapretDesktop, иконка icon.ico, скрытый импорт PyQt6.QtSvg, без UPX.
- Если в проекте есть папка winws, копирует её в
dist\winws.
Результат: dist\ZapretDesktop.exe. Рядом должна лежать папка winws (скопирована скриптом, если была в проекте).
pip install -r requirements.txt
pip install pyinstaller
pyinstaller --noconfirm --onefile --windowed --name ZapretDesktop --icon icon.ico --hidden-import PyQt6.QtSvg --noupx ZapretDesktop.pyИсполняемый файл появится в dist\ZapretDesktop.exe. Папку winws при необходимости скопируйте в dist\ вручную.
Программа не запускается / просит права администратора
Запускайте ZapretDesktop всегда от имени администратора (правый клик по exe → «Запуск от имени администратора»).
Нет стратегий в списке
Проверьте, что папка winws лежит рядом с exe (или путь к ней указан в настройках) и в ней есть .bat-файлы (кроме service.bat). При появлении или изменении папки winws список стратегий обновляется автоматически.
Стратегия не запускается / падает
Откройте Диагностику (Ctrl+Shift+D), проверьте сообщения: BFE, драйвер WinDivert, конфликты (Adguard, Killer, Intel, Check Point, SmartByte), VPN, DNS. Убедитесь, что в winws\bin есть winws.exe и нужные модули; при необходимости обновите zapret через меню «Обновление».
Нужно добавить домены только для одной страны
Используйте функцию списков по странам (OONI): выберите страну, лимит доменов, при необходимости «только подтверждённые блокировки», укажите имя файла и сохраните в winws\lists.
Где хранятся настройки?
В %APPDATA%\Roaming\ZapretDesktop\config.json. Резервная копия — config.json.bak. Папку конфигурации можно открыть через меню «Файл» → «Открыть папку» → «Открыть папку конфигурации программы» (Ctrl+Shift+O).
Нужен свой репозиторий стратегий
В настройках в категории «Обновление» укажите репозиторий zapret (GitHub owner/repo или полную ссылку) — проверка и обновление будут идти из него.
После смены языка интерфейс не полностью переключился
Перезапустите ZapretDesktop после сохранения настроек с новым языком.
Редактор не может сохранить hosts
Редактирование файлов в C:\Windows\System32\drivers\etc требует прав администратора. Запустите ZapretDesktop от имени администратора.
- Репозиторий ZapretDesktop и ссылка на zapret/Flowseal — в меню «Справка» (F1, Shift+F1) в приложении.
- OONI (api.ooni.io) — данные для генерации списков по странам.
- E-mail: ZapretDesktop@proton.me