
97.8 MB
Android 6.0+
54
armeabi-v7a, x86, x86_64, arm64-v8a
Verified safeScanned with ClamAV, APKiD, and Quark-Engine. No threats detected.
Description
Android-клиент для vk-turn-proxy — проброс WireGuard / Hysteria через TURN-серверы VK.
Принцип работы
Пакеты шифруются DTLS 1.2 (или оборачиваются в VLESS) и отправляются на TURN-сервер по протоколу STUN ChannelData (TCP или UDP). TURN пересылает трафик по UDP на ваш VPS, где он расшифровывается и уходит в WireGuard / Hysteria. Учётные данные TURN генерируются автоматически из ссылки на звонок.
Возможности
Категория Что умеет
Профили Несколько именованных конфигов, быстрое переключение
Транспорты TCP, UDP, VLESS (+ опциональный vless-bond)
Wrap Обёртка трафика общим 64-hex ключом
Управление сервером Установка, запуск/остановка, генерация wrap-ключа, логи по SSH прямо из приложения
Автоустановка Бинарник на VPS разворачивается из приложения одним нажатием
Автообновление Проверка новых релизов и установка APK без ручного скачивания
Watchdog Автопереподключение при обрыве и смене Wi-Fi / Mobile
Шифрование секретов Пароли, ключи и wrap-key в EncryptedSharedPreferences (Android Keystore)
Broadcast API START_PROXY / STOP_PROXY для автоматизации
Кастомное ядро Подмена встроенного libvkturn.so
Требования
Android 6.0+ (API 23)
ARM64 (arm64-v8a)
VPS с поднятым WireGuard или Hysteria
Ссылка на звонок VK
Как это работает в связке с VPN
FreeTurn — это не VPN. Туннель он не поднимает.
FreeTurn — транспортный слой: принимает UDP-пакеты на 127.0.0.1:9000 и пробрасывает их через TURN до вашего VPS. Сам трафик создаёт WireGuard / AmneziaWG, у которого Endpoint указан на этот локальный порт.
Без WireGuard-клиента, направленного на 127.0.0.1:9000, трафика не будет.
Настройка по шагам
Пример с AmneziaVPN. Для чистого WireGuard всё аналогично.
1. Установите APK
2. Поднимите серверную часть
При первом запуске онбординг сам предложит ввести SSH-данные VPS и развернуть сервер. Позже это всегда доступно на экране Сервер:
Сервер → SSH-данные → [Установить] → [Запустить]
Бинарник загрузится на VPS и запустится автоматически.
Ручная установка (если SSH-менеджером не пользуетесь)
3. Согласуйте порты сервера
На экране Сервер:
Поле Значение
Listen-порт 56000 по умолчанию или любой свободный. Должен совпадать с полем Адрес vk-turn-proxy сервера на экране Клиент.
Адрес TURN-клиента (-connect) 127.0.0.1:<порт_WireGuard/AmneziaWG> на VPS.
4. Подготовьте конфиг WireGuard / AmneziaWG
В AmneziaVPN добавьте нового пользователя в формате оригинального WireGuard / AmneziaWG.
Скачайте .conf на устройство.
Откройте в текстовом редакторе и замените:
- Endpoint = your.vps.ip:51820
+ Endpoint = 127.0.0.1:9000
Сохраните и импортируйте обратно в клиент AmneziaWG.
5. Исключите FreeTurn из VPN
В AmneziaWG включите раздельное туннелирование:
Режим: «Приложения из списка не должны работать через VPN» Список: добавьте FreeTurn.
Без этого пакеты самого FreeTurn зациклятся в туннель.
6. Настройте клиент FreeTurn
На экране Клиент:
Поле Значение
Ссылка URL VK-звонка
Адрес vk-turn-proxy сервера IP_VPS:<listen-порт сервера>
Локальный адрес 127.0.0.1:9000 (тот же, что Endpoint в .conf)
7. Запустите прокси
На главном экране FreeTurn нажмите Запуск.
8. Включите VPN
В AmneziaWG включите подключение. Готово — трафик идёт через TURN.
Режим полного туннеля
В Android-клиенте теперь есть два режима:
Локальный прокси: прежнее поведение. Приложение запускает встроенный libvkturn.so, слушает локальный endpoint, а внешний WireGuard/VLESS/Hysteria-клиент использует его вручную.
Полный туннель: приложение запускает libvkturn.so, ждёт хотя бы один активный TURN/DTLS-поток, затем поднимает встроенный sing-box/libbox core через VpnService.
Full-tunnel backend встроен в APK на этапе сборки как app/libs/libbox-android-2.1.0.aar; runtime download ядер не используется. Генерируемая sing-box-конфигурация использует TUN inbound и поддерживает схемы:
vless://
hysteria://
hysteria2://
hy2://
Ссылка должна уже указывать на локальный listener vk-turn-proxy, обычно 127.0.0.1:9000. FreeTurn валидирует ссылку и предупреждает, если host не выглядит локальным, но не переписывает host/SNI/TLS/obfs-параметры. Чтобы не получить цикл маршрутизации, FullTunnelVpnService всегда вызывает builder.addDisallowedApplication(packageName) и дополнительно отдаёт VpnService.protect(fd) в libbox через autoDetectInterfaceControl.
Rate this app
Ratings & reviews
No reviews yet.