Profile
Back to NewsBack
GitHub Trending 4 min
Reader Mode
yanisplugg/yptun: YPtun — fast, versatile VPN client to bypass censorship. Two cores (Xray & sing-box), all major protocols, plus olcRTC support that disguises traffic as a video call. Android is out now; Windows, Linux and more are coming. Grab the

yanisplugg/yptun: YPtun — fast, versatile VPN client to bypass censorship. Two cores (Xray & sing-box), all major protocols, plus olcRTC support that disguises traffic as a video call. Android is out now; Windows, Linux and more are coming. Grab the

12 hours ago

YPtun

Мультипротокольный сетевой клиент · Android, Windows и Linux · iOS в бете

VLESS · Reality · XHTTP поверх Xray и sing-box, OpenVPN, Hysteria2 (QUIC), обфусцированный AmneziaWG, туннель через звонки VK-TURN, DNS-туннель MasterDNS, отдельный Telegram-прокси через WARP — и olcRTC — транспорт поверх сервисов видеосвязи.


Последний релиз</a> Загрузки</a> Звёзды</a>

💎 Поддержать проект — TON или USDT (сеть TON):

UQAPC9J9UY8oaYV4AwjEAYIIJMswo7qVzJDkf4pzY8kVtzJ-

🇷🇺 Поддержать из России — через DonationAlerts:
DonationAlerts</a>

!Платформа !Платформа !Платформа !Платформа !Ядра !Лицензия


Русский · English · فارسی · 简体中文


Зачем 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 — только если в подписке есть Happ providerid: раз в сутки, как и 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) + NDK 28.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 — yptuncore DLL с тем же набором движков.
  • Тесты — Kotlin/JVM и Rust (./gradlew :sharedUI:jvmTest, cargo test --manifest-path core/Cargo.toml).
  • Ветки — стабильное в main, активная разработка в Beta, десктопная — в pc-client-beta; релизы тегируются vX.Y.Z.
Нашёл баг или хочешь фичу — открывай issue или PR, см. CONTRIBUTING.md.

Структура проекта

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 приветствуются. Перед началом загляни в:


Благодарности

На плечах гигантов: 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 из этого репозитория.

Конфиденциальность: приложение само не передаёт данные в другие сетевые системы, кроме тех, что выбрал пользователь (его серверы, подписки, выбранные им сервисы подключения), и проверки обновлений на GitHub. Подробности — в разделе «Разрешения и зачем они нужны».

Лицензия

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).

Chat with me