AI summary
Android client for sing-box-extended with per-app and per-site routing. Defaults to routing Russian traffic directly while sending the rest through VPN. Supports WireGuard, AmneziaWG, and WARP profiles as routable outbounds. Includes rootless VPN hiding measures. Requests camera and package installation permissions.
Generated by AI. May contain inaccuracies.
About this app
Zapret KVN — быстрый и бережный Android-клиент для sing-box-extended. Это не ещё одна оболочка над VPN-ядром, а цельная архитектура, в которой приложения, маршруты, DNS и подключение работают как одна система.
По умолчанию выбранные приложения используют режим «Россия напрямую»: российские домены и IP, а также LAN идут через прямую сеть Android, остальное — через VPN. Так VPN-сервер не тратит ресурсы на доступные без обхода сайты.
Минимализм в чистом виде Только нужные приложения. Невыбранные приложения вообще не попадают в TUN: их не видят ни VPN-ядро, ни DNS приложения, ни VPN-сервер. Россия напрямую по умолчанию. Российские домены и IP, а также LAN сразу идут напрямую. Они не занимают канал и ресурсы VPN-сервера и не получают зарубежный IP без необходимости. Только нужные сайты. Для каждого направления можно выбрать действие: через VPN, напрямую или блокировать. Без фонового опроса. Нет периодических health-check, бесконечного reconnect или фоновой синхронизации. В режиме «Автоматически» сначала используется DNS профиля, затем DNS Android и только после подтверждённой DNS-ошибки — защищённый DoH через VPN. Без тяжёлого фона. Приложение не держит WakeLock, не запускает alarm/job/WorkManager, а статистику обновляет только пока открыт главный экран. Rootless hardening. Localhost proxy/API закрываются до запуска ядра; защита не создаёт scanner, timer или отдельный процесс. Нативный интерфейс. Компактный Material 3 на стандартных компонентах и анимациях, без тяжёлого dashboard.
Трафик идёт кратчайшим путём Трафик Что с ним происходит Невыбранное приложение Android сразу отправляет его напрямую; Zapret KVN его не обрабатывает Выбранный трафик с правилом direct Проходит локальное правило, но не обращается к VPN-серверу Выбранный трафик с правилом proxy Уходит через выбранный VPN-профиль Заблокированный трафик Отклоняется локально Так сервер обрабатывает только тот трафик, ради которого он действительно нужен. Можно направить через VPN отдельные приложения или сайты, оставить Россию напрямую, отправить через VPN только российские ресурсы либо собрать собственные правила.
WireGuard и WARP — с настоящим роутингом
Zapret KVN импортирует WireGuard и AmneziaWG .conf, включая совместимые конфигурации WARP. WireGuard здесь не означает режим «всё устройство целиком через один сервер»: профиль становится полноценным outbound и участвует в тех же правилах direct / proxy / reject.
Это позволяет, например, отправить через WARP только выбранные сайты, остальные открыть напрямую, а другой набор трафика направить через отдельный proxy-outbound в составе конфигурации. Из-за ограничений Android выбранные приложения используют один системный TUN, но решение о маршруте остаётся раздельным для каждого назначения.
У WireGuard два независимых MTU: внешний Android TUN и внутренний userspace endpoint. Endpoint без собственного MTU получает Android-совместимый внутренний MTU 1280, как в официальном клиенте Amnezia. В стандартном режиме внешний TUN ограничивается меньшим из 1500 и эффективного MTU userspace WireGuard, поэтому Android не отдаёт внутреннему туннелю слишком крупные пакеты. Явное значение endpoint из .conf или JSON имеет приоритет; если внешний tun.mtu отсутствует, даже режим «По профилю» берёт для userspace WireGuard MTU endpoint вместо Android-default 9000. Сохранённый профиль не меняется.
Android AAR применяет один открытый воспроизводимый patch поверх pinned commit. Только Android userspace WireGuard data-plane использует раздельные движки, проверенные в mihomo: metacubex/wireguard-go для обычного WireGuard и metacubex/amneziawg-go для AmneziaWG. Оба работают через один защищённый однопакетный ClientBind; второй Android TUN, локальный SOCKS и отдельный VPN service не создаются. До добавления peers отключается изменение endpoint после аутентифицированных пакетов, затем применяется IPC-конфигурация и только после неё поднимается внутренний TUN. Pinned версии модулей, upstream commit и SHA-256 patchset публикуются в build/release metadata.
Runtime-копия добавляет WireGuard только внутренний MTU 1280, если профиль не задал свой. Искусственный zapret-wireguard-direct outbound больше не создаётся: Android движок сам использует защищённый dialer sing-box, а явный пользовательский detour сохраняет своё обычное значение. Сохранённый JSON не меняется.
Нормализация внешнего Android TUN до 1500 применяется к обычным proxy-профилям. Для userspace WireGuard она дополнительно учитывает внутренний MTU: например, endpoint 1280 создаёт Android TUN 1280. Режим «По профилю» не меняет явно заданный пользователем TUN MTU; при отсутствии поля использует MTU endpoint.
Скрытие VPN без root В «Настройки → Скрытие VPN» находятся меры, которые реально доступны обычному Android-приложению: запрет дополнительных localhost inbounds, удаление внешних Clash/V2Ray control API, нейтральное имя VPN-сессии и безопасный MTU TUN по умолчанию (1500 либо меньший MTU userspace WireGuard). Постоянная защита включена по умолчанию, работает только при сборке runtime JSON и не добавляет фоновой нагрузки. Сохранённый профиль не переписывается.
Android всё равно показывает системный VpnService, TRANSPORT_VPN, TUN-интерфейс и VPN indicator. Zapret KVN не называет rootless-режим полной невидимостью и не пытается подменять API других приложений. Точные границы и release-gate описаны в VPN Hiding ADR.
About this version
- Version
- 0.2.3 (200399)
- Size
- 73.11 MB
- Requires Android
- 8.0
- Target SDK
- 26
- Architecture
- arm64-v8a
- Downloads
- 12
- Updated
- Jul 24, 2026
- Package
- io.github.zapretkvn.android
Ratings & reviews
- 50
- 40
- 30
- 20
- 10