56 KiB
Zapret Manager by StressOzz — подробная инструкция
Скрипт-меню для OpenWrt, объединяющий в одной оболочке установку, настройку, тестирование и обслуживание инструментов обхода блокировок (DPI): Zapret, Zapret2, splify (WARP), Mixomo (Mihomo + MagiTrickle), NetShift (форк Podkop), TG WS Proxy / sTGWS, DNS over HTTPS, редактор hosts, а также системные утилиты роутера.
Содержание
- Главное меню
- Меню Zapret
- Zapret2
- Меню splify
- Меню Mixomo
- Меню NetShift
- Меню TG WS Proxy
- Меню DNS over HTTPS
- Меню управления доменами в hosts
- Системное меню
- Прочие пункты главного меню
Главное меню
Открывается автоматически при запуске скрипта. Вверху выводится текущее состояние всех компонентов (какая версия Zapret/Zapret2 установлена, запущены ли они, какая стратегия активна, включён ли DNS over HTTPS, работает ли ttyd-доступ из браузера, зеркало OpenWrt и т.д.), а ниже — пункты навигации:
| Пункт | Действие | Результат |
|---|---|---|
| 1 | Меню Zapret | Переход в подменю установки/настройки/тестирования Zapret. |
| 2 | Установить / Обновить / Удалить Zapret2 | Пункт подписывается динамически (Z2_ACTION_TEXT) в зависимости от того, установлен ли Zapret2 и совпадает ли его версия с последней доступной. |
| 3 | Меню splify | Переход в подменю WARP-клиента splify. |
| 4 | Меню Mixomo | Переход в подменю Mihomo + MagiTrickle (маршрутизация по доменам/спискам через прокси/WARP). |
| 5 | Меню NetShift | Переход в подменю NetShift (замена Podkop), ByeDPI, AmneziaWG. |
| 6 | Меню TG WS Proxy | Переход в подменю прокси для Telegram (MTProto/SOCKS5/Rust/sTGWS). |
| 7 | Меню DNS over HTTPS | Переход в подменю настройки DoH. |
| 8 | Меню управления доменами в hosts | Переход в подменю добавления/удаления «зашитых» IP-адресов проблемных сервисов в файл /etc/hosts. |
| f | Удалить → установить → настроить Zapret | Полный автоматический цикл: удаляет текущий Zapret, ставит его заново с автовыбранной стратегией ($STR_VERSION_AUTOINSTALL), прописывает домены в /etc/hosts, настраивает Discord-обход и игровую стратегию — «Zapret под ключ» одним нажатием. |
| m | Системное меню | Переход в служебное меню (бэкапы, зеркала, expert mode, исключения IP и т.д.). |
| s / s1 / s2 | Запустить / Остановить Zapret (и/или Zapret2) | Появляется, только если Zapret и/или Zapret2 установлены. Мгновенно останавливает/запускает демон(ы) без переустановки. Если включён Expert mode и установлены оба — показываются раздельные пункты s1 (Zapret) и s2 (Zapret2). |
| Enter | Выход | Завершает работу скрипта. |
Также в главном меню перед списком пунктов скрипт предупреждает о потенциальных проблемах:
- обнаружен активный IPv6 при выключенном в конфиге Zapret IPv6 → предложит включить IPv6 в системном меню;
- обнаружены конфликтующие пакеты
byedpiилиyoutubeUnblock, установленные напрямую (не через это меню) — предупреждение о возможных конфликтах с Zapret; - включён
Flow Offloadingбез применённого FIX — предупреждение, что Zapret может не работать корректно; - если в файле исключений IP (
Exclusions_menu) есть записи — показывается «Исключённые IP: есть».
Меню Zapret
Главное подменю ядра Zapret (пункт 1 главного меню).
| Пункт | Действие | Результат |
|---|---|---|
| 1 | Установить / Обновить / Удалить Zapret | Если Zapret не установлен — скачивает архив zapret_v<версия>_<архитектура>.zip с GitHub (remittor/zapret-openwrt), распаковывает и ставит .ipk/.apk пакеты (сначала zapret*, затем luci-app-zapret*), докачивает fake-файлы (stun.bin, quic_initial_*.bin и т.п.) для стратегий обмана DPI. Если версия совпадает с последней — предлагает удалить; если версия устарела — переустанавливает на актуальную. |
| 2 | Меню стратегий Zapret | См. раздел Меню стратегий Zapret. |
| 3 | Меню тестирования стратегий | См. раздел Меню тестирования стратегий. |
| 4 | Меню автоподбора стратегий по расписанию | См. раздел Меню автоподбора. |
| 5 | Меню настройки Discord | См. раздел Меню настройки Discord. |
Меню стратегий Zapret
Здесь выбирается конкретная «стратегия» (набор параметров nfqws/--dpi-desync), которая и обходит блокировку по TCP 443/QUIC.
| Пункт | Действие | Результат |
|---|---|---|
| 1 | Выбрать и установить стратегию v1–v10 | Запрашивает номер (1–10) и применяет одну из встроенных стратегий strategy_v1…strategy_v10 (разные комбинации multisplit, fake, hostfakesplit, fooling=ts/badseq/badsum и т.д.). Дополнительно докачивается exclude-список доменов, добавляются Google Play/YouTube-домены в исключения, автоматически подставляется базовая YouTube-стратегия (ADD_Yv) и стратегия для discord.media, если их ещё нет. |
| 2 | Выбрать и установить стратегию от Flowseal | Скачивает актуальный репозиторий Flowseal/zapret-discord-youtube, парсит .bat-файлы известных стратегий сообщества и показывает список для выбора. После выбора — применяет её в конфиг Zapret, докачивает исключения. |
| 3 | Выбрать и установить стратегию для YouTube | Скачивает список Yv-стратегий (StrYoutube) и позволяет выбрать конкретную только для YouTube-доменов, не трогая остальную стратегию. |
| 4 | Меню управления стратегией для игр | Открывает подменю fix_GAME. |
| 5 | Включить/выключить обход по спискам РКН | Переключает режим применения стратегии: либо ко всем доменам (--hostlist-exclude), либо только к доменам из списка Роскомнадзора (--hostlist=…zapret-hosts-user.txt), автоматически скачивая актуальный список блокировок РКН. |
| 6 | Обновить список исключений | Перекачивает файл zapret-hosts-user-exclude.txt (домены, которые не нужно трогать стратегией) и перезапускает Zapret. |
| 7 | Добавить/удалить блок --wssize 1:6 |
Добавляет либо убирает в стратегию правило изменения размера окна TCP (Window Size) для 443 порта — иногда помогает против отдельных видов DPI. |
| 8 | Добавить/удалить блок --methodeol |
Добавляет либо убирает правило --methodeol для портов 80,443 (модификация HTTP-метода в начале соединения). |
| 9 | Добавить/удалить блок --filter-udp=443 |
Добавляет либо убирает отдельное правило для QUIC (UDP/443) с fake-quic пакетом для Google-доменов. |
| 0 | Собрать собственную стратегию | Запускает конструктор build_custom_strategy — пошаговая сборка своей комбинации из v-стратегии, YouTube-стратегии, игровой стратегии и discord.media-стратегии. |
В верхней части меню всегда отображается текущая применённая стратегия, статус списка РКН, fake-файл для Gv (игровой стратегии) и предупреждение, если пользовательский hostlist РКН стал слишком большим.
Подменю игровой стратегии
Вызывается из «Меню стратегий» → пункт 4, либо напрямую из главного меню Zapret.
| Пункт | Действие | Результат |
|---|---|---|
| 1–4 | Установить/удалить игровую стратегию Gv1–Gv4 | Добавляет в конфиг отдельный блок --filter-udp=<игровые порты> с fake-пакетом (stun.bin по умолчанию) и параметром --dpi-desync-cutoff, а также общий TCP-блок для игровых портов. Повторный выбор уже установленного номера — удаляет стратегию и возвращает исходные порты NFQWS. |
| 5 | Включить/отключить Xtreme режим | «Экстремальный» режим — расширяет диапазон игровых портов до 80,88,444-65535 (TCP) и 80,88,443-65535 (UDP), фактически обрабатывая почти весь трафик. Предупреждение: может ломать другие приложения, использовать только для диагностики игр. |
| 6 | Выбрать fake для игровой стратегии | Список из 9 fake-бинарников (stun.bin, stun2.bin, quic_initial_*.bin, tls_clienthello_sochi_park.bin и др.) для подмены в --dpi-desync-fake-unknown-udp. |
Меню тестирования стратегий
Пункт 3 меню Zapret. Позволяет автоматически прогнать список стратегий по набору сайтов и увидеть, какая работает лучше.
| Пункт | Действие | Результат |
|---|---|---|
| 1 | Тестирование стратегий v / Flowseal | Подменю выбора: 1 — только v1…vN, 2 — только Flowseal, 3 — обе группы. Скрипт поочерёдно подставляет каждую стратегию в конфиг, перезапускает Zapret, обращается ко всем тестовым URL (Госуслуги, RuTracker, Instagram, Discord, PornHub, OpenWrt и др. + динамический DPI-чек-лист), считает OK/FAIL, сортирует результаты по убыванию количества успешных доменов. |
| 2 | Тестировать текущую стратегию | Не меняя конфиг, проверяет доступность контрольного списка доменов + отдельно доменов YouTube на уже применённой стратегии, выводит счётчик X/Y. |
| 3 | Тестировать стратегии по домену | Позволяет ввести один или несколько своих доменов (например x.com vk.com) и прогоняет по ним весь набор v + Flowseal стратегий, показывая детальный [ OK ]/[FAIL] лог по каждому домену для каждой стратегии. |
| 4 | Тестировать стратегии для YouTube | Открывает YOUTUBE_TEST_MENU. |
| 5 | Тестировать стратегии из /root/custom_test.txt |
Даёт протестировать собственный набор стратегий, который пользователь заранее прописал в файле /root/custom_test.txt в формате #Имя + строки параметров nfqws. |
| 7 | Результаты тестирования по домену | Показывает сохранённые результаты последнего теста по конкретным доменам (пункт 3). |
| 8 | Результаты тестирования стратегий | Показывает объединённый (Flowseal + v) отсортированный список результатов последнего массового теста. |
| 9 | Результаты тестирования YouTube | Показывает сохранённые результаты теста YouTube-стратегий. |
| 0 | Результаты тестирования Custom-стратегий | Показывает результаты теста файла /root/custom_test.txt. |
| 10 | Удалить результаты тестирования | Стирает все файлы с результатами (/opt/zapret/tmp/results*). |
Перед каждым массовым тестом скрипт обязательно выполняет контрольный тест «Zapret выключен» — чтобы понимать базовый уровень доступности доменов без обхода блокировки, и не засчитывать сайты, которые в принципе недоступны (например, не в РФ или лежат по другой причине).
Подменю тестирования YouTube
| Пункт | Действие | Результат |
|---|---|---|
| 1 | Тестировать каждую стратегию отдельно | Интерактивный режим: показывает стратегию, проверяет доступность доменов YouTube, просит подтвердить работу вживую (открыть видео на устройстве) и по нажатию Enter/S/N применяет, останавливает или продолжает перебор дальше. |
| 2 | Тестировать все стратегии сразу | Прогоняет автоматически (без интерактивного подтверждения) весь список Yv-стратегий или файл custom_test.txt, сохраняет результаты. |
| 3 | Тестировать стратегии из /root/custom_test.txt |
То же самое, но источник стратегий — пользовательский файл. |
Меню автоподбора стратегий по расписанию
Пункт 4 меню Zapret. Автоматизирует регулярный подбор лучшей рабочей стратегии без участия пользователя (например, ночью по крону).
| Пункт | Действие | Результат |
|---|---|---|
| 1 (динамический) | Включить/изменить время автоподбора по расписанию | Запрашивает час (0–23) и добавляет задание в crontab: 0 <час> * * * /usr/bin/zmsA --auto-best. |
| 2 (появляется, если расписание задано) | Отключить автоподбор по расписанию | Удаляет cron-задание. |
| 3 | Запустить/остановить автоподбор в фоне | Запускает (или прерывает) фоновый прогон auto_apply_best_strategy немедленно, не дожидаясь расписания. При остановке — восстанавливает исходный конфиг из бэкапа. |
| 4 (если есть результаты) | Показать результаты последнего теста | Выводит отсортированный список Стратегия → OK/TOTAL последнего автоподбора. |
| 5 (если есть лог) | Показать полный лог последнего теста | Выводит полный технический лог выполнения (/opt/zapret/tmp/auto_best.log). |
| 6 | Настроить время на роутере | Открывает TIME_MENU. |
| 7 | Выбрать стратегии для автоподбора | Подменю: 1 — только v-стратегии, 2 — только Flowseal, 3 — обе группы (по умолчанию). |
| 8 (если есть результаты/лог) | Удалить результаты теста и лог | Стирает файлы результатов, бэкапа и лога автоподбора. |
Логика самого автоподбора (auto_apply_best_strategy): скрипт делает бэкап текущего конфига, собирает выбранные группы стратегий, тестирует каждую по списку доменов + динамическому DPI-чек-листу, выбирает стратегию с максимальным числом успешных доменов, применяет её и восстанавливает ранее выбранные пользователем стратегии для YouTube (Yv), Discord (Dv) и игр (Gv), если они были заданы — то есть автоподбор не сбрасывает точечные настройки.
Меню времени
| Пункт | Действие | Результат |
|---|---|---|
| 1 | Синхронизировать время через NTP | Запускает ntpd/sysntpd, синхронизирует системные часы и (если доступно) записывает их в аппаратные часы (hwclock -w). |
| 2 | Установить часовой пояс | Список из 12 российских/UTC часовых поясов (Калининград … Камчатка, UTC) — выбор применяет uci set system.@system[0].timezone/zonename и перезагружает системную службу времени. |
Меню настройки Discord
Пункт 5 меню Zapret (или напрямую из главного меню Zapret) — отдельная тонкая настройка обхода блокировки Discord/discord.media.
| Пункт | Действие | Результат |
|---|---|---|
| 1 | Установить скрипт 50-stun4all |
Скачивает и подключает готовый custom.d-скрипт Zapret для обхода STUN (голосовые звонки Discord). |
| 2 | Установить скрипт 50-quic4all |
Аналогично, но для QUIC-трафика. |
| 3 | Установить скрипт 50-discord-media |
Готовый скрипт под медиа-серверы discord.media. |
| 4 | Установить скрипт 50-discord |
Готовый скрипт под подсети Discord целиком (более старая версия из zapret v70.5). |
| 5 | Удалить скрипт | Убирает установленный custom.d-скрипт и возвращает флаг DISABLE_CUSTOM в конфиге. |
| 6 | Добавить/удалить Финские IP в hosts | Добавляет диапазон finland10000…10199.discord.media → 104.25.158.178 в /etc/hosts (обходной приём для войс-серверов Discord) либо убирает его. |
| 7 | Выбрать и установить стратегию для discord.media | Запрашивает номер стратегии (список Dv1…Dv17, каждая — своя комбинация multisplit/fake/fakedsplit/hostfakesplit и fooling-параметров для портов 2053,2083,2087,2096,8443) и подставляет её в конфиг. |
| 8 | Меню выбора fake для discord,stun | Список из 9 fake-файлов для блока --filter-l7=discord,stun (используется для голосовых пакетов Discord через STUN), плюс пункт «0 — Удалить fake». |
Zapret2
Отдельная, более новая реализация Zapret (пакет от Routerich, доступна только для архитектуры aarch64_cortex-a53). Доступна из главного меню, взаимоисключающе с обычным Zapret (нельзя иметь установленными оба одновременно, кроме случая включённого Expert mode).
- Установка: проверяет архитектуру устройства, скачивает индекс пакетов с
packages.routerich.ru, находит актуальные файлыzapret2иluci-app-zapret2, устанавливает их, докачивает exclude-список, устанавливает файлы стратегии по умолчанию для медиа Discord, запускает и включает автозапуск службыzapret2. - Удаление: останавливает и отключает
zapret2, удаляет пакетыzapret2/luci-app-zapret2, стирает конфигурацию и папку/opt/zapret2.
Для Zapret2 в отдельном меню недоступны стратегии/тестирование Zapret1 — большая часть тонкой настройки (меню стратегий, тестирование, Discord) работает только с Zapret1 (кроме Expert mode).
Меню splify
Пункт 3 главного меню — управление клиентом WARP-туннеля splify (на базе AmneziaWG).
| Пункт | Действие | Результат |
|---|---|---|
| 1 | Установить / Обновить splify | Устанавливает пакет splify + luci-app-splify + русскую локализацию, ставит amneziawg-tools/luci-proto-amneziawg/kmod-amneziawg, регистрирует новый WARP-ключ (через официальный API Cloudflare, с резервным способом через wg/awg + собственный сервер регистрации), создаёт интерфейс warp0 с параметрами AmneziaWG-обфускации (Jc/Jmin/Jmax/H1-H4/S1/S2/I1), сохраняет /root/WARP.conf, регистрирует endpoint в splify, настраивает зону firewall и перезапускает службы. При обновлении — просто обновляет пакет и перезапускает. |
| 2 | Удалить splify | Полностью деинсталлирует: останавливает службы, удаляет интерфейс warp0, зоны/форвардинги firewall, правила маршрутизации, nftables-правила, cron-задачи, файлы /etc/splify*, пакеты splify и (если не используется NetShift) — пакеты AmneziaWG. |
| 3 | Установить splify2 | Запускает официальный установщик splify2 (gitlab.com/xyzmean/splify2/install.sh) — более новая версия с движком steer. При выборе движка в официальном установщике рекомендуется выбирать «1». |
| 4 | Удалить splify2 | Останавливает/отключает службу steer, удаляет пакеты steer, steer-extended, luci-app-splify2 и связанные конфиги/файлы. |
| 5 | Сгенерировать и применить WARP для splify | Перегенерирует WARP-ключ, позволяет выбрать endpoint (см. ниже), пересоздаёт интерфейс, обновляет /root/WARP.conf и перезапускает splify. |
| 6 | Перезапустить splify | Полный цикл: splify-disable → включение служб splify/splify-agent → отключение телеметрии → restart для обеих служб → splify-apply. |
Выбор endpoint (используется в пунктах 1 и 5): либо стандартный engage.cloudflareclient.com:4500, либо автоматический подбор — скрипт пингует ~100 случайных IP из известных подсетей Cloudflare WARP, определяет географию через trace.cloudflare.com, выбирает адрес с минимальным пингом (исключая колокацию DME).
В меню также отображается статус: версия splify, наличие splify2, установлен ли AmneziaWG, создан ли интерфейс, настроен ли firewall.
Меню Mixomo
Пункт 4 главного меню — управление связкой Mihomo (клиент прокси/подписок, бывший Clash Meta) + MagiTrickle (маршрутизация по доменам через веб-интерфейс) + HevSocks5Tunnel.
| Пункт | Действие | Результат |
|---|---|---|
| 1 | Установить Mixomo | Скачивает и запускает официальный установочный скрипт из репозитория проекта (устанавливает Mihomo, MagiTrickle, HevSocks5Tunnel и связанные пакеты). |
| 2 | Удалить Mixomo | Запускает официальный деинсталлятор, дополнительно чистит cron-задание автоперезапуска Mihomo; рекомендуется перезагрузить роутер после удаления. |
| 3 | Сменить список MagiTrickle | Выбор одного из трёх готовых списков доменов/сервисов для маршрутизации через MagiTrickle: ITDog, Internet Helper #1, Internet Helper #2 — скачивает выбранный YAML в /etc/magitrickle/state/config.yaml, перезапускает службу. |
| 4 | Интегрировать/сменить VPN подписку в Mihomo | Запрашивает ссылку на подписку (http/https), либо обновляет url: в уже существующем proxy-providers блоке конфига Mihomo, либо (если подписки ещё нет) генерирует полноценный config.yaml «с нуля» с готовыми группами прокси («Сервер для YouTube» / «Сервер для остального трафика»), sniffer-настройками и правилом маршрутизации YouTube через отдельный rule-provider. |
| 5 | Сгенерировать WARP | То же самое, что и в меню splify (регистрация ключа + выбор endpoint), но результат сохраняется только в /root/WARP.conf, без создания системного интерфейса. |
| 6 | Интегрировать /root/WARP.conf в Mihomo |
Запускает скрипт, который добавляет ранее сгенерированный WARP-конфиг как proxy-провайдера/outbound в конфигурацию Mihomo. |
| 7 | Выбрать и установить панель для Mihomo | Подменю 1 Zashboard / 2 MetaCubeXD — скачивает и распаковывает выбранный веб-интерфейс в /etc/mihomo/ui, доступен по адресу http://<IP роутера>:9090/ui. |
| 8 | Включить/выключить автоперезапуск Mihomo | Подменю: 1 — каждые N часов (2,4,…,22), 2 — ежедневно в конкретный час; создаёт cron-задание /etc/init.d/mihomo restart. Повторный вызов при уже включённом расписании — отключает его. |
| 9 (появляется, если доступно обновление) | Обновить MagiTrickle | Скачивает и устанавливает новый пакет MagiTrickle под архитектуру устройства. |
В шапке меню отображается статус служб mihomo, magitrickle, hev-socks5-tunnel, используемый список MagiTrickle, наличие /root/WARP.conf, расписание автоперезапуска и адреса веб-интерфейсов (:9090/ui для Mihomo, :8080 для MagiTrickle).
Меню NetShift
Пункт 5 главного меню (проект — преемник Podkop) — маршрутизация трафика через VPN/прокси по спискам сообщества (geoblock, youtube, discord, tiktok и т.д.), а также локальный DPI-обход через ByeDPI и AmneziaWG.
| Пункт | Действие | Результат |
|---|---|---|
| 1 | Установить / Обновить / Удалить NetShift | Проверяет свободное место (минимум ~20 МБ на overlay), проверяет отсутствие конфликтующего https-dns-proxy, скачивает и устанавливает netshift + luci-app-netshift + русскую локализацию. При недостатке места при обновлении — предлагает удалить старую версию перед установкой новой. |
| 2 | Установить / Удалить ByeDPI | Скачивает и ставит пакет byedpi под архитектуру устройства, включает автозапуск службы. |
| 3 | Установить / Удалить AmneziaWG | Скачивает kmod-amneziawg, amneziawg-tools, luci-proto-amneziawg и русскую локализацию под версию OpenWrt/архитектуру. Удаление блокируется, если AmneziaWG используется splify. |
| 4 | Установить / Удалить интерфейс AWG | Создаёт (или удаляет) отдельный сетевой интерфейс AWG типа amneziawg в LuCI — далее пользователю нужно вручную загрузить .conf-файл конфигурации через Network → Interfaces → AWG → Edit → Load configuration. |
| 5 | Интегрировать / сменить VPN подписку в NetShift | Запрашивает ссылку на подписку и полностью формирует конфиг /etc/config/netshift в режиме proxy (тип subscription) с преднастроенным набором community-списков и фильтрами исключения (LTE, мобильные тарифы и т.п.), затем запускает и перезапускает службу. |
| 6 | Интегрировать AWG в NetShift | Формирует конфиг /etc/config/netshift в режиме vpn через интерфейс AWG, с полным набором community-списков (geoblock, порно, новости, аниме, YouTube, Discord, соцсети, HDrezka, TikTok, Telegram, Cloudflare, облачные провайдеры и т.д.). |
| 7 | Интегрировать ByeDPI в NetShift | Отключает локальный DNS роутера, перенастраивает стратегию ByeDPI на конкретный набор параметров split/desync, формирует конфиг NetShift с outbound-типом socks (127.0.0.1:1080) и списком YouTube, требует перезагрузку роутера для полноценной работы. |
| 8 (появляется, если ByeDPI установлен) | Изменить стратегию ByeDPI | Показывает текущую строку параметров cmd_opts ByeDPI и позволяет ввести новую вручную. |
В шапке меню — версия/статус NetShift, статус ByeDPI (и его текущая стратегия), статус AmneziaWG и интерфейса AWG.
Меню TG WS Proxy
Пункт 6 главного меню — набор из четырёх независимых реализаций WebSocket-прокси для обхода блокировки Telegram.
| Пункт | Действие | Результат |
|---|---|---|
| 1 | Меню sTGWS | Открывает подменю sTGWS — самобалансирующийся прокси с автоподбором домена. |
| 2 | Установить / Обновить / Удалить TG WS Proxy SOCKS5 | Скачивает бинарник tg-ws-proxy-go под архитектуру, создаёт init.d-сервис (порт 2080, флаги --cf-proxy --cf-proxy-first --cf-balance), запускает. |
| 3 | Установить / Обновить / Удалить TG WS Proxy Rust | Скачивает и распаковывает архив tg-ws-proxy-rs под архитектуру, создаёт init.d-сервис (порт 2443, генерируется случайный secret, флаги --default-domains --cf-balance --cf-priority), запускает. |
| 4 | Установить / Обновить / Удалить TG WS Proxy MTProto | Устанавливает через opkg/apk официальный пакет tg-ws-proxy (spatiumstas), генерирует и сохраняет SECRET в /etc/tg-ws-proxy/secret.conf, включает и запускает службу. |
| 5 | Удалить все TG WS Proxy | Останавливает/отключает все четыре реализации разом и полностью зачищает их файлы, конфиги и пакеты. |
| 6 | Перезапустить все TG WS Proxy | Перезапускает все установленные init.d-службы TG-прокси разом и показывает итоговый статус (какие именно запущены). |
После установки любой из реализаций скрипт выводит готовую строку подключения для Telegram (tg://proxy?server=... / tg://socks?server=...) с реальным IP роутера, портом и секретом/ключом.
Подменю sTGWS
| Пункт | Действие | Результат |
|---|---|---|
| 1 | Установить / Обновить / Переустановить | Запускает официальный установщик sTGWS (gitlab.com/xyzmean/brb), затем до 60 секунд ожидает подбора рабочего домена и сообщает выбранный домен. |
| 2 | Удалить | Останавливает и отключает службу tgws, удаляет пакет и конфигурацию. |
| 3 | Перезапустить | Перезапускает службу tgws и выводит текущий подобранный домен. |
| 4 | Перенастроить домен | Запускает tgws pick — принудительный подбор нового рабочего домена, перезапускает службу. |
Меню DNS over HTTPS
Пункт 7 главного меню — управление пакетом https-dns-proxy и готовыми пресетами DoH-серверов (полезно как дополнение к обходу блокировок и для сокрытия DNS-запросов от DPI/провайдера).
| Пункт | Действие | Результат |
|---|---|---|
| 1 | Установить / Удалить DNS over HTTPS | Ставит (или полностью удаляет, включая связанные записи в dhcp-конфиге) пакеты https-dns-proxy + luci-app-https-dns-proxy. Установка блокируется, если обнаружен конфликтующий NetShift. |
| 2 | Настроить Xbox | Резолвер xbox-dns.ru. |
| 3 | Настроить Comss | Резолвер dns.comss.one со своими bootstrap-адресами. |
| 4 | Настроить Google | Резолвер dns.google (8.8.8.8/8.8.4.4). |
| 5 | Настроить Quad 9 | Резолвер dns.quad9.net (9.9.9.9). |
| 6 | Настроить XyZ DNS | Резолвер dns.yo1nk.app. |
| 7 | Настроить GeoHide | Подменю выбора региона сервера: RU / EU / US. |
| 8 | Настроить Cloudflare | Резолвер cloudflare-dns.com (1.1.1.1/1.0.0.1). |
| 9 | Настроить dns.dns-ai.ru | Российский DoH-резолвер. |
| 10 | Настроить dns.malw.link | Альтернативный резолвер. |
| 11 | Настроить dns.astracat.ru | Альтернативный резолвер. |
| 12 | Настроить dns.mafioznik.xyz | Альтернативный резолвер. |
| 13 | Настроить dns.malw.link (CloudFlare) | Тот же malw.link, но через Cloudflare Gateway. |
| 14 | Настроить dns.nullsproxy.com | Резолвер Supercell-совместимого прокси. |
| 15 | Вернуть настройки по умолчанию | Возвращает стандартную конфигурацию с двумя резолверами: Cloudflare (порт 5053) + Google (порт 5054). |
Каждая настройка полностью перезаписывает файл /etc/config/https-dns-proxy, применяя единый набор базовых опций (форс DNS через порты 53/853, канареечные DNS-запросы Apple/Mozilla, слушающий адрес 127.0.0.1) плюс выбранный резолвер, после чего перезапускает https-dns-proxy и dnsmasq.
Меню управления доменами в hosts
Пункт 8 главного меню — точечное «прошивание» IP-адресов проблемных сервисов напрямую в /etc/hosts, в обход DNS-блокировок/резолва.
| Пункт | Действие | Результат |
|---|---|---|
| 0 | nalog.ru | Добавляет/удаляет IP личного кабинета налоговой (lkfl2.nalog.ru, lknpd.nalog.ru). |
| 1 | rutor.info | Добавляет/удаляет IP торрент-трекера RuTor. |
| 2 | ntc.party | Добавляет/удаляет IP форума ntc.party. |
| 3 | Instagram & Facebook | Добавляет/удаляет большой блок IP основных доменов Meta*. |
| 4 | lib.rus.ec | Добавляет/удаляет IP библиотеки Флибуста-подобного сервиса. |
| 5 | AI сервисы | Добавляет/удаляет крупный блок IP для ChatGPT, Gemini, Grok, Claude, Copilot, DeepL, ElevenLabs, Windsurf, Manus, Notion, AI Studio и др. (через общий IP 45.155.204.190). |
| 6 | Twitch | Добавляет/удаляет IP usher.ttvnw.net/gql.twitch.tv. |
| 7 | Telegram Web | Добавляет/удаляет большой блок IP веб-версии Telegram. |
| 8 | Spotify | Добавляет/удаляет базовый блок IP Spotify. |
| 9 | Spotify extended | Расширенный блок IP Spotify (больше доменов CDN/аналитики). |
| 10 | Supercell | IP для игр Clash of Clans/Royale, Brawl Stars, Squad Busters и др. |
| 11 | githubusercontent.com | IP для raw.githubusercontent.com, objects.githubusercontent.com, avatars*.githubusercontent.com и т.д. |
| 12 | github.com | IP для основного домена и статики GitHub. |
| 13 | Ubisoft | IP игровых/лаунчер-серверов Ubisoft. |
| 14 | tapeop.dev | IP небольшого нишевого сайта. |
| 15 | картинки Roblox | IP CDN картинок Roblox (tr.rbxcdn.com). |
| 16 | updates.discord.com | IP серверов обновлений Discord. |
| 17 | Добавить/удалить все домены | Массовое включение/выключение сразу нескольких основных блоков (AI, Instagram, ntc.party, lib.rus.ec, TelegramWeb, Twitch, Supercell, Spotify). |
| 18 | Заменить hosts на GeoHide hosts | Подменю выбора региона: RU / EU / US — полностью заменяет /etc/hosts готовым списком проекта GeoHideDNS под выбранный регион. |
| 19 | Заменить hosts на Mafioznik hosts | Полная замена /etc/hosts готовым списком проекта Mafioznik. |
| 20 | Заменить hosts на Malw.link hosts | Полная замена /etc/hosts готовым списком проекта Malw.link. |
| 21 | Восстановить hosts | Полностью очищает /etc/hosts и возвращает минимальный стандартный файл (localhost, ip6-loopback и т.д.). |
Каждый переключаемый пункт помечается зелёным (●) — если добавлен, автоматически определяется через сверку строк файла. После любого изменения перезапускается dnsmasq, чтобы правки вступили в силу.
Системное меню
Пункт m главного меню — вспомогательные и диагностические функции роутера, напрямую не относящиеся к DPI-обходу.
| Пункт | Действие | Результат |
|---|---|---|
| 1 | Системная информация | Выводит подробный отчёт: модель роутера, архитектура, версия OpenWrt, свободное место в /tmp и /root, список пользовательских пакетов (сгруппированных по базовому имени), состояние Flow Offloading (SW/HW/FIX), настроенные DoH-резолверы (или проверку доступности GitHub API, если DoH не установлен), проверку доступности провайдера/IPv4/IPv6 (пинг google.com), текущую применённую стратегию Zapret, содержимое NFQWS-портов, список доменов в hosts, и итоговую проверку доступности ~35 контрольных доменов (двумя колонками). |
| 2 | Активировать / Удалить доступ к скрипту из браузера | Устанавливает (или удаляет) пакет ttyd + luci-app-ttyd, перенастраивает его команду запуска на автоматический вход в это же меню (sh /usr/bin/zms), после чего меню доступно по адресу http://<IP роутера>:7681 прямо из браузера, без SSH. |
| 3 | Включить / Отключить блокировку QUIC | Добавляет (или удаляет) firewall-правила Block_UDP_80/Block_UDP_443, полностью блокирующие исходящий UDP-трафик на порты 80/443 — форсирует браузеры откатываться на TCP (обход некоторых видов DPI, которые лучше блокируют QUIC). |
| 4 | Меню выбора зеркала OpenWrt | Список из 9 региональных зеркал репозитория пакетов (Infra OpenWrt, Бразилия, Китай, Франция, Италия, Марокко, США, Германия, зеркало по умолчанию) — проверяет доступность выбранного зеркала, подменяет адрес в distfeeds.conf/repositories.d, тестово обновляет список пакетов; при ошибке — автоматически откатывает изменение. |
| 5 | Запустить blockcheck | Останавливает Zapret и запускает встроенный диагностический скрипт blockcheck.sh из комплекта Zapret — интерактивный подбор рабочих параметров DPI-обхода «с нуля» на основе живого сетевого теста; по завершении Zapret снова запускается. |
| 6 | Удалить Zapret & Zapret2 | Полная деинсталляция обоих движков сразу: останавливает и убивает все связанные процессы (в т.ч. nfqws), удаляет пакеты, конфиги, временные файлы, логи, резервные копии, cron-записи и таблицы nftables zapret/zapret2. |
| 7 | Сделать / Удалить резервную копию настроек Zapret | Архивирует папку /opt/zapret и файл конфигурации в /opt/zapret_backup/zapret.tar.gz, сохраняет дату и размер бэкапа. Если бэкап уже существует — пункт превращается в «Удалить резервную копию». |
| 8 (появляется, если есть бэкап) | Восстановить настройки Zapret из резервной копии | Останавливает Zapret, полностью пересобирает /opt/zapret и конфиг из сохранённого архива, перезапускает службу. |
| 9 (условный) | Включить / Выключить IPv6 в Zapret | Если IPv6 сейчас включён в конфиге — выключает его. Если выключен — сначала проверяет реальную доступность IPv6 (ping -6 google.com); включает опцию только при успешной проверке, иначе отговаривает пользователя (пункт не появится в меню, если IPv6 недоступен). |
| 0 (условный, появляется при включённом Flow Offloading) | Применить / Отключить FIX для Flow Offloading | Модифицирует шаблон правил firewall4 (ruleset.uc), добавляя условие ct original packets ge 30 перед аппаратной разгрузкой соединений — без этого исправления быстрая аппаратная разгрузка «обходит» Zapret и блокировка возвращается после нескольких пакетов. |
| i | Меню исключений IP из Zapret | Открывает Exclusions_menu — точечное отключение обработки Zapret для конкретных устройств локальной сети. |
| e | Включить / Выключить expert mode | Снимает ограничение «нельзя иметь Zapret и Zapret2 одновременно», открывает доступ к раздельному запуску/остановке (s1/s2 в главном меню) обоих движков сразу. |
| y | Установить пакеты из /root/ |
Открывает PAKET_INSTALL — ручную установку локально размещённых .ipk/.apk-файлов в заданном пользователем порядке. |
Меню исключений IP
Позволяет исключить конкретные устройства сети из обработки Zapret (например, IP-камеры, консоли, IoT-устройства, которые ломаются от DPI-обхода).
- Автоматически сканирует таблицу DHCP-аренд (
/tmp/dhcp.leases) и ARP-таблицу (/proc/net/arp) для интерфейса LAN, показывает список найденных устройств с их IP и (по возможности) сетевым именем. - Устройства, уже добавленные в исключения, помечаются красным индикатором, остальные — зелёным.
- Ввод номера(ов) через пробел — переключает статус исключения для выбранных устройств.
- a — добавить IP вручную (для устройств, которых нет в текущей DHCP/ARP таблице).
- c — очистить все исключения разом.
- r — принудительно пересканировать сеть (ping-сканирование всей подсети
/24) и обновить список обнаруженных устройств.
Технически список исключённых IP записывается в собственный custom.d-скрипт Zapret (20-script.sh), который добавляет nft-правило, помечающее пакеты от указанных адресов специальной меткой, — Zapret не обрабатывает такие пакеты.
Установка пакетов из /root/
- Сканирует
/rootна файлы*.ipk(или*.apk— в зависимости от системы пакетов роутера) и выводит их пронумерованный список. - Пользователь вводит порядок установки числами через пробел (например
2 1 3) — пакеты ставятся именно в указанной последовательности (важно для зависимостей). - Пункт 0 переключает подробный вывод процесса установки (
ВКЛ/ВЫКЛ) — по умолчанию установка идёт «тихо».
Прочие пункты главного меню
- f — Удалить → установить → настроить Zapret: комплексная функция «под ключ» (
zapret_key). Выполняет: 1) удаление текущей установки Zapret, 2) чистую установку последней версии, 3) применение автовыбранной актуальной стратегии (STR_VERSION_AUTOINSTALL), 4) массовое добавление проблемных доменов в/etc/hosts(все блоки изALL_BLOCKS), 5) автоматическую настройку Discord-обхода со скриптом50-stun4all, 6) настройку игровой стратегии — всё без единого дополнительного вопроса. - m — Системное меню: см. раздел Системное меню.
- s / s1 / s2 — Запуск/остановка: мгновенный toggle службы (служб) без переустановки — полезно, если нужно временно вернуть «чистый» интернет без DPI-обхода (например, для диагностики).
- Enter — Выход: завершает выполнение скрипта, ничего не меняя.
Дисклеймер
Скрипт предназначен для образовательных и диагностических целей на устройствах, находящихся в собственности или под управлением пользователя. Все действия (изменение сетевых правил, DNS, firewall, установка сторонних пакетов) выполняются на свой страх и риск...