YPtun
Мультипротокольный сетевой клиент · Android, Windows и Linux · iOS в бете
VLESS · Reality · XHTTP поверх Xray и sing-box, OpenVPN, Hysteria2 (QUIC), обфусцированный AmneziaWG, туннель через звонки VK-TURN, DNS-туннель MasterDNS, отдельный Telegram-прокси через WARP — и olcRTC — транспорт поверх сервисов видеосвязи.
💎 Поддержать проект — TON или USDT (сеть TON):
UQAPC9J9UY8oaYV4AwjEAYIIJMswo7qVzJDkf4pzY8kVtzJ-
🇷🇺 Поддержать из России — через DonationAlerts:
!Платформа !Платформа !Платформа !Платформа !Ядра !Лицензия
Зачем YPtun?
Большинство VPN-клиентов дают одно ядро и один способ подключения. YPtun даёт набор инструментов. В одном приложении сразу несколько сетевых движков: один транспорт работает нестабильно — переключился на другой и работаешь дальше.
Главное — универсальность. Xray и sing-box со всеми ходовыми протоколами и транспортами, обфусцированный WireGuard через AmneziaWG, туннелирование через реальные звонки (VK-TURN и olcRTC), DNS-туннель MasterDNS, импорт чего угодно и Happ-совместимые профили маршрутизации. Если один способ подключения не подходит — рядом ещё несколько.
Для тех, кому нужен гибкий контроль над сетевыми соединениями: свои серверы, свои подписки, своя маршрутизация.
Теперь и на Windows — установщик и портативная версия одним .exe, x64 и нативный ARM64. То же приложение и те же движки, что на телефоне: подписки, профили маршрутизации, каскад, VK-TURN, olcRTC, MasterDNS, Trust Tunnel.
Что нового в 3.7.0
| | |
|---|---|
| Cloudflare WARP для JSON-подписок | Клиентская сторона: каждый прокси подписки идёт через WARP; серверная — выход через WARP с UDP-релеем. Android и ПК, WireGuard и AmneziaWG. |
| Бесплатные серверы + WARP | WARP для каждого найденного сервера или сразу для всех: AmneziaWG для российских, WireGuard для остальных. |
| Движок AmneziaWG / WireGuard | Выбор протокола, конфиг wg-quick или файлом; тумблер «Разрешить редактирование конфигураций» открывает все параметры (Jc, S1–S4, H1–H4, I1–I5, MTU, DNS…) отдельными полями. |
| Поиск бесплатных серверов в фоне | Кнопка «В фон», автообновление по расписанию, остановка с сохранением найденного (#72), закрепление сервера, лимиты 2500 и 5000. |
| Пинг и подписки | Пауза, продолжение и перезапуск пинга с прогрессом; ссылку подписки можно посмотреть и поменять, закрепления и папки переезжают (#71); каскад для всей подписки. |
| Приватность | Новая страница: отчёт ProviderID (#69), User-Agent подписки, данные об устройстве и свой HWID (#70); при проверке обновлений HWID на GitHub не уходит. |
| Маршрутизация и ядра | geosite:telegram включает адреса дата-центров Telegram (#68); OpenFlux 0.13.0 (Avito, несколько транспортов в сессии, #66); понятнее ошибки csqtt (#67); на ПК можно сменить порт SOCKS5. |
| Меньше нагрузки | Автообновление бесплатных серверов только при открытом окне, мягкий лимит памяти ядер Go, рабочие потоки VPN — на менее мощных ядрах CPU. |
| Исправления | Зеркало при недоступном API Cloudflare WARP; серверный WARP AmneziaWG без пакетов I1–I5; обновление по дельте на ПК; списки больше не прыгают в начало. |
Ядра, которые мы используем
| Ядро | Версия | Для чего | |---|---|---| | Xray-core | 26.9.30 (локальные патчи) | VLESS · Reality · XHTTP | | sing-box | 1.14.4 | OpenVPN, Hysteria2, TUN, маршрутизация | | AmneziaWG | amneziawg-go | обфусцированный WireGuard | | olcRTC | форк ghostlane | трафик поверх видеозвонков | | free-turn-proxy (VK-TURN) | 1.3.2 | туннель через звонки VK | | qWDTT | 1.4.4 | вариант TURN-туннеля | | MasterDnsVPN | — | DNS-туннель | | OpenFlux | 0.13.0 (4f9c786) | транспорт через Яндекс Документы / MAX | | TrustTunnel | 1.1.11 | протокол Trust Tunnel | | csqtt | 2.5.0 (fd936ef) | третье ядро VK-TURN | | snolc | 0.0.4 | Rust-движок | | hev-socks5-tunnel | — | TUN → SOCKS5 (Android) | | tun2socks | — | TUN → SOCKS5 (ПК) |
Возможности
| | |
|---|---|
| Несколько движков | Xray, sing-box, AmneziaWG, VK-TURN, MasterDNS — ядро подбирается под протокол автоматически либо вручную. |
| Протоколы | VLESS · VMess · Trojan · Shadowsocks · OpenVPN · Hysteria2 · WireGuard / AmneziaWG |
| Транспорты | TCP · WS · gRPC · HTTPUpgrade · XHTTP · TLS · Reality · отпечатки uTLS |
| MasterDNS (DNS-туннель) | Туннель поверх DNS-запросов (MasterDnsVPN: свой ARQ-транспорт, несколько резолверов сразу, дублирование пакетов) — вариант для сетей, где доступен только DNS. Автоустановка сервера на VPS по SSH в один тап. |
| Telegram-прокси через WARP | Лёгкий фоновый сервис: WARP-туннель + локальный SOCKS5 для Telegram, независимо от основного подключения. |
| olcRTC | Транспорт olcRTC — трафик идёт через реальные сервисы видеозвонков (Jazz, MTS Link, VK Calls, Telemost, Jitsi); трафик передаётся поверх этих сервисов. |
| Умный импорт | ссылки vless/vmess/trojan/ss, base64, JSON-панели, полные сырые конфиги Xray / sing-box, самодостаточные OpenVPN .ovpn, AmneziaWG .conf/QR, olcRTC-URI, Happ-профили, массовый импорт списка ссылок. |
| DNS и маршруты | Happ-совместимые профили маршрутизации (запретить/напрямую/через прокси по geoip:/geosite:/asn:/доменам/CIDR), per-rule правила v2rayNG-стиля, тумблер фильтрации РФ-доменов, свои DNS и fakedns. |
| Авто-выбор сервера | Подключение к быстрейшему живому узлу в один тап, с перебором при неудаче. |
| HTTP-прокси | Happ-совместимый локальный HTTP-прокси поверх активного движка. |
| Тонкая настройка соединения | Фрагментация TLS, мультиплексирование, обфускация AmneziaWG, отключение QUIC там, где он протекает. |
| Без утечек | Перехватывает и IPv4, и IPv6 — мимо туннеля ничего не уходит. |
| Раздельный туннель | Выбираешь, какие приложения идут через VPN. |
| Подписки | Автообновление (можно отключать поштучно), счётчик доступных серверов, описания серверов, трафик/остаток, группы со сворачиванием/закрепом/сортировкой по пингу, папки. |
Скачать
Бери последний подписанный APK со страницы релизов.
| Сборка | Кому |
|--------|------|
| arm64-v8a | Современные телефоны — бери эту, если сомневаешься |
| armeabi-v7a | Старые 32-битные устройства |
| x86_64 | Эмуляторы / x86-планшеты |
| universal | Один файл на всё (самый большой) |
Минимум — Android 6.0 (API 23).
Разрешения и зачем они нужны
YPtun запрашивает только то, без чего не работает конкретная функция. Камеру, уведомления, работу без ограничений батареи и установку обновлений приложение спрашивает в тот момент, когда вы пользуетесь этой функцией, а не при установке.
Android
| Разрешение | Зачем |
|---|---|
| VPN (BIND_VPN_SERVICE) | Системный запрос «Разрешить подключение VPN» при первом подключении. Без него приложение не может поднять туннель и пропустить через него трафик. |
| Интернет и состояние сети (INTERNET, ACCESS_NETWORK_STATE) | Соединение с серверами, пинг, загрузка подписок; переподключение при смене Wi-Fi ↔ мобильная сеть. |
| Работа в фоне (FOREGROUND_SERVICE, FOREGROUND_SERVICE_SPECIAL_USE, WAKE_LOCK) | VPN и Telegram-прокси работают как службы с уведомлением, чтобы система не останавливала их при выключенном экране. |
| Уведомления (POST_NOTIFICATIONS, Android 13+) | Уведомление о подключении со скоростью и кнопкой отключения — Android требует его для фоновой службы. |
| Без ограничений батареи (REQUEST_IGNORE_BATTERY_OPTIMIZATIONS) | Только по кнопке в настройках: исключение из Doze, чтобы туннель не рвался ночью. Без вашего нажатия не запрашивается. |
| Камера (CAMERA) | Сканер QR-кодов для импорта серверов. Запрашивается при первом открытии сканера; кадры обрабатываются на телефоне и никуда не отправляются. Без камеры QR можно импортировать из файла. |
| Список приложений (QUERY_ALL_PACKAGES) | Раздельное туннелирование: показать все установленные приложения, включая системные без значка, чтобы выбрать, какие идут через VPN. Список не покидает телефон. |
| Установка приложений (REQUEST_INSTALL_PACKAGES) | Обновление из самого приложения: скачанный APK передаётся системному установщику, который всё равно спросит подтверждение. |
| Задачи после перезагрузки (RECEIVE_BOOT_COMPLETED, FOREGROUND_SERVICE_DATA_SYNC) | Добавляет библиотека WorkManager, чтобы периодическая задача пережила перезагрузку. Задача одна — ежедневная отметка для подписок с Happ providerid (см. ниже). Своего автозапуска у YPtun нет. |
| Перенос данных (org.olcbox.app.permission.MIGRATION) | Собственное право уровня signature: переносит настройки со старой установки org.olcbox.app на новую org.yptun.app. Прочитать эти данные может только APK с той же подписью. |
Windows
| Право | Зачем | |---|---| | Администратор (UAC) | Только для режима «Туннель»: создать сетевой адаптер (wintun) и прописать маршруты. Запрос появляется один раз при запуске, если выбран этот режим. В режиме «Прокси» права администратора не нужны. | | Системный прокси | В режиме «Прокси» приложение прописывает прокси Windows для текущего пользователя и возвращает прежние настройки при отключении. Если приложение упало, оставшийся прокси убирается при следующем запуске. | | Список процессов | Разделение по процессам — и поиск другого запущенного VPN-клиента, который мешает подключению. Закрыть его приложение предложит, но без вашего согласия ничего не завершает. |
Куда приложение обращается, кроме ваших серверов
- GitHub — проверка обновлений и, по умолчанию, списки для маршрутизации (geoip/geosite, ASN).
check.happ-proxy.com— только если в подписке есть Happproviderid: раз в сутки, как и Happ, приложение отправляет туда отметку с теми же данными устройства, что получает сама подписка (HWID, ОС, модель, версия приложения). Безprovideridэтого запроса нет.- Сервисы выбранного способа подключения — VK (VK-TURN), Cloudflare (Telegram через WARP), сервисы звонков (olcRTC), Яндекс Документы или MAX (OpenFlux).
Как это работает
┌──────────────┐ пакеты ┌───────────────┐ SOCKS5 ┌────────────────────────────┐
│ Приложения │ ─────────▶ │ Android TUN │ ─────────▶ │ Движок (1 процесс) │
└──────────────┘ │ (IPv4+IPv6) │ │ ┌──────────────────────┐ │
└───────────────┘ │ │ Xray / sing-box │ │
│ │ AmneziaWG / VK-TURN │ │
│ │ MasterDNS / стелс olcRTC│ │
│ └──────────────────────┘ │
└─────────────┬──────────────┘
▼
открытый интернет
Все нативные ядра собраны в одну gomobile-библиотеку (единый Go-рантайм), поэтому Xray, sing-box, AmneziaWG, VK-TURN, MasterDNS и olcRTC уживаются в одном процессе без конфликтов. Приложение поднимает VpnService, отдаёт пакеты в TUN и заворачивает их в выбранный движок через локальный SOCKS5.
Движки — простыми словами
- Xray / sing-box — классические прокси-ядра: VLESS+Reality, XHTTP, WS+TLS и т.д. Ядро выбирается под транспорт автоматически.
- AmneziaWG — WireGuard с обфускацией: рукопожатие и пакеты отличаются от стандартного WireGuard.
- Hysteria2 — быстрый протокол поверх QUIC с обфускацией Salamander и перескоком портов; хорошо держит скорость на нестабильных каналах.
- VK-TURN — поднимает локальный WireGuard и гонит его через TURN-серверы звонков VK; несколько «звонков» связываются для пропускной способности.
- MasterDNS — туннель поверх DNS-запросов; для сетей, где доступен только DNS.
- olcRTC — транспорт через сервисы видеоконференций: трафик передаётся поверх реального звонка.
- Telegram-прокси через WARP — отдельный фоновый прокси для Telegram поверх Cloudflare WARP.
Сборка из исходников
Всё необходимое уже в репозитории (cores, olcrtc, sing-box, awgproxy, hysteria2proxy, free-turn-proxy, masterdns, wdtt, amneziawg-go). Понадобится:
- JDK 17 (подойдёт встроенный в Android Studio)
- Android SDK (укажи
sdk.dirвYPtun/local.properties) + NDK28.2.13676358 - Go +
gomobileвPATH
gomobileвызываетjavac, поэтому добавьbin/из JDK вPATH— не толькоJAVA_HOME.
cd YPtun
./gradlew :androidApp:assembleRelease \
-Polcbox.version=3.6.0 -Polcbox.versionCode=381
APK появятся в YPtun/androidApp/build/outputs/apk/release/.
Хочешь только под свой телефон и быстрее — добавь -Polcbox.android.abiFilters=arm64-v8a.
Нативная сборка Windows использует C# + WinUI 3 (.NET), а модели, импорт, генерация конфигов и оркестрация VPN остаются в общем Rust-ядре. Нужны .NET 9 SDK, Rust, Go и MinGW-совместимый C-компилятор:
powershell -File windowsApp/build.ps1 -Architecture x64
powershell -File windowsApp/package.ps1 -Architecture x64 -Version 4.0.0
Как и раньше, Windows выдаёт два EXE: установщик и один самораспаковывающийся portable. Portable
хранит всё в каталоге Data рядом с собой; установщик использует совместимый с прежним клиентом
%APPDATA%\YPtun.
Compose-модуль YPtun/desktopApp пока остаётся оболочкой Linux/macOS и резервным Windows-клиентом
на время достижения полного функционального паритета нативного WinUI-приложения.
Подпись своих релизных сборок (опционально, для мейнтейнеров)
По умолчанию Gradle собирает debug-подписанные APK. Если хочешь публиковать свои подписанные релизы — создай keystore и укажи его в YPtun/keystore.properties:
storeFile=release.keystore
storePassword=твой-пароль
keyAlias=твой-алиас
keyPassword=твой-пароль
Этот файл (и сам .keystore) — в .gitignore и никогда не коммитятся, живут только на твоей машине. Береги keystore: тем же ключом подписываются обновления, чтобы они ставились поверх прошлых версий.
Процесс разработки
YPtun использует родной UI каждой платформы и одно сетевое ядро:
- Android — Kotlin + Jetpack Compose.
- Windows — C# + WinUI 3 (.NET), мост к
core/yptun-coreчерез компактный C ABI. - Linux/macOS — существующий Compose Desktop остаётся рабочим до отдельных нативных оболочек.
- Локализация — русский, английский, فارسی и 简体中文 в одном файле строк.
- Общая логика — Rust (
core/yptun-core): модели, импорт, подписки, маршрутизация и конфигурации движков. - Native-движки — Go: Android получает gomobile-AAR, Windows —
yptuncoreDLL с тем же набором движков. - Тесты — Kotlin/JVM и Rust (
./gradlew :sharedUI:jvmTest,cargo test --manifest-path core/Cargo.toml). - Ветки — стабильное в
main, активная разработка вBeta, десктопная — вpc-client-beta; релизы тегируютсяvX.Y.Z.
Структура проекта
YPtun/ Kotlin Multiplatform приложение — Compose UI, Android VpnService, движки
windowsApp/ Нативное Windows-приложение — C#, WinUI 3, упаковка installer/portable
core/ Общее Rust-ядро + Android/Apple/Windows FFI
cores/ Go-связка: один gomobile-AAR из sing-box + olcRTC + Xray + AmneziaWG + VK-TURN + MasterDNS
olcrtc/ olcRTC — транспорт поверх видеозвонков (сторонний, вендорено)
sing-box/ sing-box / libbox (вендорено)
awgproxy/ обёртка AmneziaWG → локальный SOCKS5 (Go-модуль)
hysteria2proxy/ обёртка Hysteria2 (apernet) → локальный SOCKS5 (Go-модуль)
free-turn-proxy/ VK-TURN — туннель через звонки VK (Go-модуль)
masterdns/ MasterDNS — туннель поверх DNS (клиент + сервер)
wdtt/ WDTT — вариант туннеля (клиент + сервер)
amneziawg-go/ реализация AmneziaWG (вендорено)
Планы
- [x] Релиз на Android
- [x] Движки AmneziaWG, VK-TURN и MasterDNS
- [x] Профили маршрутизации (Happ-совместимые) + ASN
- [x] Сборка под Windows (x64 и ARM64)
- [x] Сборка под Linux (
.deb, x64 и ARM64) - [ ] Сборка под iOS — в бете
Участие
PR и issue приветствуются. Перед началом загляни в:
- CONTRIBUTING.md — как собрать, оформить и прислать изменения
- CODE_OF_CONDUCT.md — правила общения
- SECURITY.md — как сообщить об уязвимости
Благодарности
На плечах гигантов: Xray-core · sing-box · olcRTC · AmneziaWG · OpenFlux · qWDTT · MasterDnsVPN · free-turn-proxy · TrustTunnel · hev-socks5-tunnel · tun2socks.
Политика подписи кода
Бесплатная подпись кода — SignPath.io, сертификат — SignPath Foundation. Подписываются Windows-установщик и portable, собранные в GitHub Actions из этого репозитория.
- Коммиттеры и ревьюеры: участники репозитория
- Утверждение подписи: владелец репозитория
Лицензия
GPL-3.0 — приложение распространяется под GNU GPL v3.0, так как включает sing-box (тоже GPL-3.0): копилефт распространяется на весь продукт. Вендоренные компоненты сохраняют свои лицензии (sing-box — GPL-3.0, Xray — MPL-2.0, amneziawg-go — MIT, olcrtc — WTFPL, OpenFlux — GPL-3.0, qWDTT (wdtt) — GPL-3.0, MasterDnsVPN (masterdns) — MIT, free-turn-proxy — Happy Bunny License (MIT-подобная), Trust Tunnel — Apache-2.0, hev-socks5-tunnel — MIT, tun2socks — MIT).