Безопасный Android-клиент для своих VPN-профилей
Tunguska — открытый Android-клиент для собственных VPN-профилей. Он умеет импортировать профили, выбирать sing-box или Xray + tun2socks, поднимать системный VPN-туннель Android, настраивать маршруты по приложениям и показывать состояние сессии.
Я начал писать его из-за российской практики вокруг VPN. Сетевые блокировки никуда не делись, но теперь часть проблем приходит уже с телефона: приложение видит активный VPN, отправляет этот признак на сервер, а при трафике через туннель ещё и светит выходной IP или адрес VPS. По данным РБК и Meduza, площадки должны делиться сведениями о новых выявленных VPN с регулятором; в такой схеме выходной IP может попасть в общие списки блокировки.
У меня это проявилось на телефонах родственников: часть российских приложений периодически переставала работать при активном VPN. Сторонние клиенты завязаны на чужой релизный цикл ядра, транспортов и Android-части. Быстрого решения под мои требования не нашлось, поэтому я начал писать Tunguska.
На момент этой заметки актуальный публичный релиз — v0.7.2, опубликован 10 мая 2026 года. APK лежат в GitHub Releases, Google Play пока не участвует.
Что детектят приложения
Сетевые блокировки продолжаются. По данным «Коммерсанта» со ссылкой на Роскомнадзор, к концу февраля 2026 года в РФ ограничили доступ к 469 VPN-сервисам. В начале апреля 2026 года РБК, а затем Meduza писали, что Минцифры просило крупные российские платформы ограничивать доступ пользователям с активным VPN и передавать сведения о новых найденных VPN регулятору. В обновлении исследования RKS Global от 16 апреля 2026 года все 30 проверенных российских Android-приложений детектировали VPN, 20 из них активно блокировали или ограничивали функциональность.
Среди методов: NetworkCapabilities.TRANSPORT_VPN, интерфейсы вроде tun0, записи в /proc/net/tcp, системный прокси, список установленных VPN-клиентов, эвристика MTU и выходной IP при запросе через туннель.
Android официально помечает VPN-сеть как TRANSPORT_VPN. VPN-клиенты работают через системный API VpnService: приложение получает локальный TUN-интерфейс и отдаёт Android правила маршрутизации. Это нормальная часть платформы, но в российских приложениях она стала ещё одним источником сигнала об активном VPN.
Активный VPN Tunguska от Android не скрывает. На уровне системы иначе нельзя. Клиент занимается тем, что может контролировать: локальные поверхности, мосты между движками, раздельную маршрутизацию, поддержку форматов профилей и отображение плана трафика.
Почему отдельный клиент
Серверная часть у собственного VPN обычно под контролем: транспорт меняется на сервере, логи доступны, внешний доступ проверяется отдельными инструментами. На телефоне остаётся слой, который из серверных логов не виден: системный VPN API, TUN-интерфейс, DNS, маршрутизация по приложениям, жизненный цикл фоновой службы, смена сети, фоновые ограничения Android и ограничения конкретной прошивки. Tunguska закрывает свою часть этого слоя: быстрое обновление форматов профилей, явная совместимость с sing-box или Xray + tun2socks, маршруты по приложениям, DNS-режимы и статус сессии, который снимается после проваленной проверки маршрута.
Tunguska это клиент для людей, у которых уже есть свои профили, свои серверы или свой провайдер.
Что есть в 0.7.2
(скриншоты немного битые — в процессе обновления)

Tunguska хранит библиотеку профилей, даёт их импортировать и редактировать, показывает совместимость с движками, поднимает системный VPN-туннель Android и показывает, куда пойдёт трафик.
В приложении четыре основных раздела.
Главная — повседневный экран для активного профиля, подключения, IP до и после старта, краткой статистики и текущего состояния.
Профили — библиотека профилей с импортом из ссылки, JSON и QR. Перед сохранением приложение проверяет дубли и совместимость.
Маршруты — полный туннель, туннель для приложений, переиспользуемые политики, шаблоны, пользовательские правила и офлайн-проверка маршрута.
Настройки — безопасность, резервные копии, экспорт аудита с вычищенными секретами, автоматизация, обновления и расширенная диагностика.
Интерфейс показывает технические детали до подключения. Для VLESS XHTTP, WireGuard-конфига или Shadowsocks prefix-ссылки сразу видно выбранный движок, ограничения и причину ошибки.
Есть два языка, обновление русского немного запаздывает.
Импорт профилей

При импорте Tunguska раскладывает профиль в типизированную модель и сохраняет параметры, которые влияют на запуск и совместимость.
В VLESS важны транспорт, поля REALITY, flow, packetEncoding, spx/spiderX, проверки ML-DSA-65 и полный снимок query-параметров. У Shadowsocks отдельно обрабатываются prefix-ссылки. WireGuard импортируется и из ссылки, и из обычного конфига с [Interface] и [Peer]. Поддержка этих полей зависит от выбранного движка, поэтому импорт хранит их без потери. Для части протоколов нет удобного публичного формата, который экспортируется и импортируется обратно без потери смысла.
Поддерживаются импорт и редактирование таких семейств:
VLESS + REALITY: TCP, HTTP, WebSocket, gRPC, HTTP Upgrade, QUIC, XHTTP и SplitHTTP с учётом выбранного движка;
VMess;
Trojan;
Shadowsocks, включая prefix-ссылки через sing-box;
SOCKS и HTTP-прокси;
Hysteria1 и Hysteria2;
TUIC;
WireGuard;
SSH;
AnyTLS, ShadowTLS и NaiveProxy через канонический JSON.
Публичные ссылки Tunguska экспортирует там, где формат действительно подходит. WireGuard, SSH, AnyTLS, ShadowTLS и NaiveProxy сохраняются через канонический JSON, потому что публичные форматы ссылок здесь не дают полного обратного импорта без потери параметров.
При импорте приложение проверяет профиль до записи в хранилище. Небезопасные TLS-флаги, отладочные входы и совместимость через открытый локальный прокси отбрасываются сразу. После импорта туннель не стартует сам. Сначала пользователь видит, что именно собирается сохранить.
Два движка под капотом

Основной путь запуска — sing-box через libbox: широкий набор протоколов, DNS, маршрутизация, TUN внутри встроенного движка, меньше промежуточных мостов. Xray + tun2socks остаётся веткой совместимости для профилей, которым нужен Xray. В первую очередь это VLESS + REALITY с XHTTP, SplitHTTP или ML-DSA-65. Через эту же ветку запускаются VMess, Trojan, обычный Shadowsocks, SOCKS и HTTP-прокси, но уже с ограничениями моста tun2socks.
Два пути нужны из-за несовпадающей поддержки. XHTTP, SplitHTTP и ML-DSA-65 сейчас логичнее вести через Xray; WireGuard, TUIC и большая часть sing-box-экосистемы живут в libbox. Поэтому выбор движка остаётся явной частью профиля.
Неподходящая комбинация блокируется до подключения. VLESS XHTTP не сваливается в «почти TCP», WireGuard не запускается через Xray + tun2socks, неподдерживаемый DNS-режим или правило маршрутизации показываются как проблема совместимости.
В интерфейсе для этого есть сводка по выбранному пути запуска и рекомендации по совместимости.
Маршрутизация

Маршрутизация в Tunguska хранится как видимая политика с фиксированным порядком применения правил. Поддерживаются полный туннель, режим «только выбранные приложения» и режим исключений. Android разрешает выбрать только один тип правил по приложениям на VPN-сессию, поэтому изменения сохраняются в профиле и применяются после переподключения. Конфиги туннеля по приложениям переиспользуются: их можно привязать к профилю или временно перекрыть глобальной политикой; один общий список приложений быстро мешает, когда у профилей разные задачи.
Шаблоны применяются как обычные правки политики. «Россия напрямую» добавляет российские доменные зоны и GeoIP RU, «Обход локальных/частных сетей» — локальные сети и домены, «Блокировка рекламы» — явные правила блокировки. Правила дорабатываются.
Для российских приложений есть отдельный шаблон прямого обхода туннеля. Он работает по установленным пакетам, показывает найденные совпадения и сохраняет обычное правило по приложениям.
Тест маршрута работает офлайн: по пакету приложения, домену или IP он показывает итоговое действие правила без сетевого запроса. Порядок применения зафиксирован: loopback всегда остаётся локальным, затем применяется Android-правило по приложениям, потом явные правила профиля в сохранённом порядке, затем сгенерированные правила шаблонов и регионального обхода, после них — правило по умолчанию.

DNS
Жёсткая замена DNS ломает локальные имена, корпоративные зоны и часть провайдерских профилей. Постоянный публичный запасной DNS тоже не всегда подходит, если пользователь ожидал резолверы текущей сети. Поэтому DNS в Tunguska выбирается явно.
По умолчанию в модели профиля стоит Системный DNS. В Xray + tun2socks это совместимый режим с публичным запасным DNS; если нужны именно резолверы текущей сети Android, есть DNS сети Android: при старте приложение берёт DNS-серверы из активной сети Android, находящейся вне VPN. Если Android не отдаёт такие серверы, старт падает с ошибкой. Это особенно полезно для Xray + tun2socks, где хочется убрать неявный публичный запасной DNS.
Есть режимы DNS через VPN и Свой защищенный DNS. В sing-box они компилируются напрямую; в Xray + tun2socks поддержка более узкая, поэтому неподходящие формы режутся до старта.
Эта настройка помогает отделить проблемы профиля от проблем конкретной сети: Wi-Fi может отдавать нужные DNS, LTE — нет.
Безопасность без обещаний невидимости
Невидимость VPN на Android здесь не заявляется. Система показывает VPN-индикатор и отдаёт приложениям часть сетевых признаков; root и привилегированные наблюдатели видят ещё больше.
Клиент закрывает поверхности, которые контролирует сам.
У Tunguska нет неаутентифицированного локального прокси и включённых API управления для Xray или sing-box. В ветке Xray + tun2socks локальный SOCKS-мост слушает только 127.0.0.1; порт из диапазона 20000..49999 и учётные данные для него генерируются заново на каждый старт через SecureRandom, а tun2socks получает уже готовый socks5://user:pass@127.0.0.1:port.
Файлы движка лежат в закрытом хранилище приложения, временные конфиги удаляются после старта нативного движка, профили и резервные копии хранятся локально в шифрованном виде. Экспорт аудита вычищается: секреты заменяются хэшами и скрытыми полями.
Аналитики, рекламных идентификаторов и телеметрии по умолчанию нет. Проверка публичного IP нужна только для экрана состояния.
Автоматизация выключена по умолчанию. Если её включить, внешний запуск и остановка идут через токен и тот же контур управления, что интерфейс, уведомление и плитка быстрых настроек. Отдельного публичного API нет.
Усиленная защита включается вручную. В этом режиме уведомления меньше раскрывают детали, чувствительные экраны просят Android запретить скриншоты, скопированные ссылки профилей и токены автоматизации помечаются как чувствительные данные буфера обмена и очищаются через короткое время. Android VPN-индикатор остаётся на месте.
В sing-box-пути по умолчанию включена защита от трафика с неизвестным владельцем: если Android не смог сопоставить пакет на TUN с приложением-владельцем, такой трафик режется. Правило ограничено TUN-входом и не цепляет внутренние loopback-мосты Tunguska. Xray + tun2socks эту специфичную для sing-box защиту не применяет, там другая топология.
Единое состояние
После ошибки старта или смены сети экран и уведомление должны подтягивать свежий снимок службы. Старый статус вводит в заблуждение: пользователь видит рабочую сессию, хотя движок уже перезапускается. В Tunguska запуск, остановка и переподключение идут через общий контур управления движком. «Главная», уведомление, плитка быстрых настроек, автоматизация и диагностика читают один снимок состояния.
Рабочей считается только сессия, где движок поднят и маршрут проходит проверки; живой движок с падающим маршрутом получает «Сбой связи», а запрос ручного действия уходит в статус внимания.
Плитка быстрых настроек показывает только старт, стоп и статус. Там нет имени профиля, адреса сервера, выходного IP или скорости.
Уведомление учитывает приватность: при выключенной усиленной защите показывает больше деталей, при включенной — только нейтральный статус.
Восстановление после сбоев сети
На Android VPN-сервис может оставаться живым, когда полезный трафик уже не проходит через ожидаемый путь.
Сервис делает две проверки: нативную проверку живости встроенного движка и низкочастотную проверку активного маршрута. После повторных неудач сессия получает состояние «Сбой связи» и перезапускается. При смене Wi-Fi на мобильную сеть или обратно активный путь тоже рестартится; старое сетевое состояние Android не используется как постоянное.
Эти события попадают в диагностическую карточку устойчивости движка. По ней видно, где проблема: в профиле, смене сети или перезапуске движка после восстановления связи.
Если маршрут подозрительный, рабочий статус снимается.
Тесты
Приложение сильно покрыто тестами, иначе вести разработку было очень тяжело. Unit-тесты закрывают парсер и генерацию конфигов, UI-тесты — основные экраны. Отдельно проверяются офлайн-расчёт маршрута, traffic-probe в живом туннеле, UDP-сценарии и логика реакции на смену сети по умолчанию Android. Сквозные проверки закрывают жизненный цикл профиля на живых конфигурациях, матрицу sing-box/Xray + tun2socks, сверку маршрутизации, автоматизацию и вспомогательные проверки трафика.
Как поставить
Релизы лежат здесь:
https://github.com/Acionyx/tunguska/releases
В v0.7.2 опубликованы внутренние APK без отладки и файлы с контрольными суммами. Для обычного Android-устройства нужен arm64-v8a. Для локального Android Emulator есть x86_64. armeabi-v7a/32-bit сборок нет: обязательные Xray/tun2socks/vpnhelper артефакты в этой линейке есть только для arm64-v8a и x86_64.
Поддерживаемая платформа — Android 8.0+ (minSdk 26), сборка таргетит SDK 36.
Установка через adb обычная:
adb install tunguska-v0.7.2-arm64-v8a-internal.apk
Базовый путь: импортировать профиль в «Профилях», проверить предупреждения, сохранить, выбрать профиль активным и подключиться на «Главной». После старта стоит проверить выходной IP и отдельно прогнать «Проверку маршрута» для важных доменов и пакетов приложений.
В приложении есть проверка обновлений через GitHub Releases, она забирает только метаданные релиза. Проверка включена по умолчанию и срабатывает не чаще раза в день. APK автоматически не скачивается и не устанавливается; Tunguska только сообщает, что вышел новый релиз, и даёт перейти на страницу релизов. Нежелательную версию можно скрыть.
Если собираете из исходников, смотрите README. Для libbox-android может понадобиться доступ к GitHub Packages или локальный Maven override.
Ограничения текущего релиза
Проект молодой, по факту даже младенческий. Ставить его стоит, если готовы смотреть диагностику, проверять реальные сценарии и писать отчёты.
Совместимость с произвольными подписками провайдеров не заявлена.
iOS вне фокуса до доведения Android-версии.
Google Play нет. На текущем этапе релизы идут через GitHub, с файлами контрольных сумм рядом с APK.
Зачем я сюда пишу?
Сейчас больше всего нужны воспроизводимые проверки на реальных устройствах.
В багрепортах нужны условия воспроизведения: устройство и версия Android, сеть, тип профиля без секретов, выбранный движок и режим маршрутизации. Дальше — ожидаемый результат, фактический результат и проверка после переподключения, сна телефона или перезагрузки.
Особенно полезны баги на границе Android-сети: сон и пробуждение телефона, смена Wi-Fi и LTE, UDP, push-уведомления. Отдельно интересны расхождения между моделью Tunguska и фактическим поведением: туннель для приложений против «Проверки маршрута», разные результаты на sing-box и Xray + tun2socks, зависшее состояние интерфейса после ошибки. Проблемы на маленьких экранах и качество диагностики тоже лучше приносить в issues.
Не прикладывайте реальные ссылки профилей, ключи, UUID, приватные ключи и токены.
Комментарии (28)

BDI
26.05.2026 07:05Из прошлых обсуждений интеграции зондов в российских приложениях упоминалось что приложение может напрямую пустить трафик через найденный tunХ вне зависимости от настроек AppBased Routing в VPN клиенте, что позволяет запалить IP выходной ноды. И, насколько я понял из тех обсуждений, без рута ничего с этим сделать нельзя.
Если я правильно терзал нейронку про упомянутый у вас sing-box, то закрытие этой бреши делается за его счёт. Но нейронка говорит что он умеет или белый список приложений, или чёрный, и одновременно оба задействовать нельзя. Правда про то будет ли в режиме белого списка у прочих приложений возможность гнать свой трафик через tun интерфейс подконтрольный sing-box-у нейронка однозначно ответить не смогла, ссылаясь на скудность документации. Хотя и намекнула что в принципе это вероятно возможно:
Если вам нужна именно блокировка всех, кроме явно разрешенных, и вы не хотите, чтобы их трафик вообще уходил в сеть, то одних записей в include_package недостаточно. Для этого потребуется дополнительная логика — либо на уровне правил маршрутизации в sing-box, либо на уровне сетевых экранов вашей системы.
Не подскажете, режим блокировки доступа к впн всем кроме белого списка приложений реализован в вашем приложении, или такой возможности sing-box не даёт?
P.S. Правильно ли я понимаю, что доступны только те протоколы что реализуются sing-box? Очень не хватает SSTP, но почему-то очень его не любят создатели впн клиентов/серверов…

tunguska_vpn Автор
26.05.2026 07:05Да, режим “доступ к VPN только для белого списка приложений” в Tunguska реализован.
Это не только правило внутри sing-box. В allowlist-режиме Tunguska передаёт выбранные приложения в Android VpnService.Builder.addAllowedApplication(...). Это системный механизм Android: только эти package/UID попадают в VPN-сеть. Остальные приложения не должны иметь маршрут через VPN-интерфейс, даже если они как-то увидят наличие tunX.
Дополнительно в sing-box lane включён guard против неатрибутированного трафика: если пакет всё-таки попадает в TUN, но sing-box/libbox не может определить package owner, Tunguska добавляет reject-rule и такой трафик режется, а не уходит через прокси. Это как раз защита от класса “трафик пришёл в туннель без понятного приложения-владельца”.
Но важно уточнение: это блокировка доступа к VPN для всех, кроме allowlist, а не общий firewall “запретить интернет всем остальным”. Приложения вне allowlist не должны использовать VPN-выходную ноду, но они могут идти напрямую через обычную сеть Android.
Для root/privileged/system-level атак отдельные гарантии не заявляю: Android VPN API рассчитан на обычные приложения без привилегий.

BDI
26.05.2026 07:05это блокировка доступа к VPN для всех, кроме allowlist
Да, именно это и интересовало, как раз то что теперь требуется при наличии на одном смартфоне впн и приложений крупных российских контор. Если бы ещё SSTP умело, было бы вообще сказочно(жаль маловероятно)...

tunguska_vpn Автор
26.05.2026 07:05Отправьте feature request в https://github.com/Acionyx/tunguska/issues, я посмотрю что с этим можно сделать.

Aleksei_7bc
26.05.2026 07:05Здравствуйте. А чем отличие Вашего решения от TeapodStream?

tunguska_vpn Автор
26.05.2026 07:05Я начал писать этот проект ещё до анонса TeapodStream, буквально за пару недель, но тогда он совсем не был готов к публикации. В целом причины почти те же самые, поэтому решения похожие. Здорово что есть альтернативы, и кое-чему я у автора TeapodStream научился.
Но на сегодняшний день накопились различия, приведу итого:
TeapodStream по текущему коду — это Xray-клиент с двумя режимами: полноценный VPN/TUN режим и proxy-only режим. В VPN-режиме трафик идет через Android TUN, затем через teapod-tun2socks в локальный SOCKS и дальше в xray-core. В proxy-only режиме TUN не поднимается, работает только локальный SOCKS через xray-core.
Tunguska устроена как multi-runtime клиент. В ней есть отдельные runtime lanes: embedded sing-box, Xray + tun2socks и OpenVPN 3. Runtime выбирается на уровне конкретного профиля, а приложение показывает совместимость профиля с выбранным runtime и не делает скрытых downgrade/fallback.
По протоколам TeapodStream сейчас сфокусирован на Xray-семействе: VLESS, VMess, Trojan, Shadowsocks, Hysteria2 и Xray-транспорты. Tunguska хранит более широкую typed profile model: VLESS/VMess/Trojan/Shadowsocks/SOCKS/HTTP/Hysteria/TUIC/WireGuard/SSH/AnyTLS/ShadowTLS/NaiveProxy/OpenVPN, но запуск зависит от runtime lane.
Если коротко: TeapodStream — более простой Xray-first клиент. Tunguska — более строгий multi-runtime клиент с per-profile runtime selection, отдельным OpenVPN lane, более широкой моделью профилей, read-only subscription profiles и более подробной моделью routing/security diagnostics.

mihar
26.05.2026 07:05Пока не будет управления всеми настройками клиента с сервера - это всего лишь ещё один клиент.
Просто потому, что ну не буду я каждый раз настраивать клиенты всем 15 родственникам, а нынче менять настройки приходится часто.
посмотрите как это в FlClashX и RemnaWave сделано. у FlClashX есть неприятные недостатки, оно в последних версиях жуткий тормоз, но альтернативы к сожалению нет.
tunguska_vpn Автор
26.05.2026 07:05Есть подписки. Это не полноценное управление, но уже что-то. Я гляну референсы, но будет полезно если вы опишите ваш кейс подробнее

BDI
26.05.2026 07:05Пока не будет управления всеми настройками клиента с сервера
С сервера чего? С сервера SSH? С сервера Wireguard, SOCKS5? Это не приложение для конкретного ВПН сервиса, это и есть "всего лишь ещё один клиент", но многопротокольный и с защитой от РКН зондов со стороны в приложениях всяких Озонов, Почт России и прочих госуслуг. Уже в таком функционале он будет востребован(если функционирует стабильно, у меня везде SSTP, так что пока даже не пробовал ставить).
Для централизованного управления настройками на таком зоопарке протоколов надо реализовывать отдельный сервер по раздаче настроек, и уже потом взаимодействие с ним из прокси/ВПН клиента. Да, для определённых задач это было бы полезно, но в текущей ситуации мне бы в первую очередь рабочий и защищённый клиент подошёл, а настройки и файликами пока можно пересылать.

sundmoon
26.05.2026 07:05Поддерживаю. А вот что хотел бы попросить у это ещё чуточку более кроссплатформенное/переиспользуемое ядро. Чтобы удобно форкать и продолжать хотя бы Kotlin/JVM.
@tunguska_vpn Доменная модель ведь Ваш рисёрч? Искал и до сих пор не встретил ничего подобного.
tunguska_vpn Автор
26.05.2026 07:05Кроссплатформенность в ближайших планах.
Что бы вы хотели реализовать в форке? Интерес ваш кейс.
Касательно модели, да и вообще всего кода - да. Из сторонних решений только singbox, tun2socks, openvpn рантаймы.

sundmoon
26.05.2026 07:05Лично я хотел бы ориентироваться в предметной области, в первую очередь. Отсутствие стандарта на модули, точнее вообще на "квн-стек" - буквально головная боль, которая меня парализует и блокирует любые мои хотелки.
Дальше - да, control plane для подопечных эндпойнтов, начиная с openwrt. С максимальным переиспользованием готовых решений.
tunguska_vpn Автор
26.05.2026 07:05Да, к сожалению типизация всего зоопарка задача нетривиальная и пока я её решаю банальным брутфорсом. С каждым новым протоколом смотрю как улучшить свою модель данных чтобы понимать и обрабатывать данные из протокола. Единого решения не существует, или я его не нашел.

mihar
26.05.2026 07:05с сервера, скажем так, "управления".
вот есть, как я уже писал клиент " многопротокольный и с защитой от РКН зондов " FlClashX, это не "не приложение для конкретного ВПН сервиса " , это клиент который я могу к любому, в том числе и своему серверу подключить.
и есть серверное ПО с названием RemnaWave, которое умеет xray запускать с собраным конфигом.
и вот в этом remnawave я делаю нужный мне конфиг для сервера xray, а так же конфиг для клиента FlClashX со всеми нюансами роутинка и защиты от РКН (к слову ремна не только флклэш умеет, думаю оно с радостью любой другой уметь научится, пишут то наши люди), завожу юзера и всё что этому юзеру требуется, это пройти по короткой ссылке и там ему будет ссылка на скачивание клиента и эта же ссылка применяется что бы передать клиенту весь нужный конфиг. более того, я меняю конфиг клиента или самого сервера на сервере, но все клиенты FlClashX периодически обновляют сами свой конфиг.
sundmoon
26.05.2026 07:05Если хотите, поделюсь приватно трёхдневным пробником коммерческого сервиса, где, кмк, Ваше пожелание уже реализовано.
У меня впечатление, что приоритетная ЦА Remnawave это "васяны"-мамкины коммерсанты, впн-ам которых нужен "биллинг". Если не сервис-провайдеры для таких васянов-реселлеров. Хотят ли там поддерживать сценарии некоммерческого самохоста не по остаточному принципу?

tunguska_vpn Автор
26.05.2026 07:05Судя по описанию, механизм подписок в tunguska как раз то, что нужно. Другое дело что сейчас он ограничен конфигурацией одного outbound, и не умеет принимать сложные конфигурации DNS, приоритеты, группы и так далее. Но это всё будет добавлено.

Kenya-West
26.05.2026 07:05@tunguska_vpn подскажите, у вас есть возможность, задать для каждого правила свой outbound, как в Karing? Чтобы, например,
category:bybitшла через сервер в Чехии,category:ruчерез РФ сервер,category:okxшла через Казахстан и т. д.
tunguska_vpn Автор
26.05.2026 07:05Я посмотрю как это реализовано в Karing. Правильно я понимаю что имеется ввиду настройка нескольких соединений параллельно и роутинг для групп приложений и веб адресов?

Kenya-West
26.05.2026 07:05Да. Karing основан на sing-box, и является единственным клиентом (кроме печально известного nekoray, точнее, его форка), который так умеет делать для адресов, CIDR, категорий в геобазах (в том числе вдобавок умеет роутить приложения):
Скрытый текст

Karing

Un_ka
26.05.2026 07:05А будет возможность создать каскад как в exclave? Правда там больше выбор протоколов, за исключением amneziаWG.

Andrey3fn
26.05.2026 07:05Выглядит интересно. Спасибо. Было бы полезно при старте соединения замораживать probing приложения как описано в Shizuki и Anubis https://habr.com/ru/articles/1023352/

tunguska_vpn Автор
26.05.2026 07:05В приложении есть нативная интеграция с Анубисом, посмотрите в настройках.
Stanislavvv
А https-прокси? Не http, а именно https, то есть http за tls?
И про socks за tls тот же вопрос. А то чистый протокол прокси немножечко открыт кому попало.
tunguska_vpn Автор
Сейчас обычные HTTP proxy и SOCKS профили поддерживаются как TCP-прокси без TLS-обёртки. То есть http://, socks:// / socks5://, но не “HTTP proxy over TLS” и не “SOCKS over TLS”.
Я перепроверил реализацию: импорт HTTP proxy принимает только http://, SOCKS только socks/socks5, а TLS/REALITY для этих двух типов сейчас валидатором отклоняются. В runtime-компиляторах sing-box и xray они тоже собираются как plain http/socks outbound без TLS-настроек.
Отправьте feature request в https://github.com/Acionyx/tunguska/issues, я посмотрю.