English version (README.en.md)
Это специализированный форк официального клиента WireGuard Android с интегрированной поддержкой VK TURN Proxy.
Проект позволяет инкапсулировать трафик WireGuard в потоки DTLS/TURN, используя инфраструктуру VK Calls. Это обеспечивает надежный способ обхода сетевых ограничений при сохранении высокой производительности и стабильности.
Данный проект создан исключительно в учебных и исследовательских целях.
Использование инфраструктуры VK Calls (TURN-серверов) без явного разрешения со стороны правообладателя может нарушать Условия использования сервиса и правила платформы VK. Автор проекта не несет ответственности за любой ущерб или нарушение правил, возникшее в результате использования данного программного обеспечения. Проект демонстрирует техническую возможность интеграции протоколов и не предназначен для нецелевого использования ресурсов сторонних сервисов.
- Нативная интеграция: TURN-клиент встроен напрямую в
libwg-go.soдля максимальной производительности и минимального расхода заряда батареи. - Два режима авторизации:
- VK Link — получение учетных данных TURN через анонимные токены VK Calls.
- WB — получение учетных данных TURN через WB Stream API (гостевая регистрация → создание комнаты → LiveKit ICE).
- Многопоточная балансировка: Высокая производительность и надежность за счет параллельных потоков DTLS, агрегации по Session ID и Round-Robin балансировки исходящего трафика.
- Кастомный DNS резолвер: Все HTTP и WebSocket запросы проходят через встроенный DNS резолвер с защитой сокетов через VPN.
- Оптимизация MTU: Автоматическая установка MTU в 1280 при использовании TURN для стабильной работы инкапсулированных пакетов.
- Автоматический рестарт при смене сети: TURN автоматически переподключается при переключении между WiFi и 4G/5G с защитой от частых перезапусков (debounce).
- Быстрое восстановление сети: Сброс DNS и HTTP-соединений при смене сети для ускоренного переподключения.
- Удобная настройка: Параметры TURN хранятся прямо в стандартных
.confфайлах WireGuard в виде специальных комментариев-метаданных (#@wgt:).
Этот проект построен на базе:
- Official WireGuard Android — основное приложение VPN и пользовательский интерфейс.
- vk-turn-proxy — автор идеи и вдохновитель проекта.
- lionheart — исходная реализация режима WB для получения TURN credentials.
Важно: Для корректной работы этого клиента (агрегация потоков по Session ID) рекомендуется использовать серверную часть v2 из форка kiper292/vk-turn-proxy.
# Требуется Go 1.25+ и Android NDK 29
$ git clone --recurse-submodules https://github.com/your-repo/wireguard-turn-android
$ cd wireguard-turn-android
$ ./gradlew assembleReleaseВы можете включить прокси в редакторе туннеля. Настройки будут добавлены в секцию Peer вашей конфигурации:
[Peer]
PublicKey = <key>
Endpoint = vpn.example.com:51820
AllowedIPs = 0.0.0.0/0
# [Peer] TURN extensions
#@wgt:EnableTURN = true
#@wgt:UseUDP = false
#@wgt:IPPort = 1.2.3.4:56000
#@wgt:VKLink = https://vk.com/call/join/...
#@wgt:Mode = vk_link # Режим авторизации: vk_link или wb
#@wgt:PeerType = proxy_v2 # proxy_v2 | proxy_v1 | wireguard
#@wgt:StreamNum = 4
#@wgt:LocalPort = 9000
#@wgt:StreamsPerCred = 4 # Потоков на один кэш credentials
# Advanced settings (optional)
#@wgt:TurnIP = 155.212.199.166 # Переопределить IP TURN сервера
#@wgt:TurnPort = 19302 # Переопределить порт TURN сервера
#@wgt:WatchdogTimeout = 30 # Таймаут неактивности (сек, 0=отключен)Примечание: Параметр PeerType определяет режим работы:
proxy_v2(по умолчанию) — DTLS с передачей Session ID для агрегации потоков (сервер: kiper292/vk-turn-proxy)proxy_v1— DTLS без Session ID handshake (сервер: cacggghp/vk-turn-proxy)wireguard— без DTLS, прямой relay (NoDTLS, для отладки или прямого подключения)
Watchdog Timeout: Параметр WatchdogTimeout активирует контроль неактивности для DTLS режима:
0(по умолчанию) — watchdog отключен≥5— таймаут в секундах; если пакеты не получаются от TURN сервера в течение указанного времени, соединение переподключается- Применяется только к режимам
proxy_v2иproxy_v1
Для получения подробной технической информации см. info/TURN_INTEGRATION_DETAILS.md.
Are welcome here:
1ERKmMSyfxtKNNpU3TeaYCaJfDKY9s8jdX
0xfa8fdae60010e3d6b446d7479a9ccacfc56c0936
TMgojRMiya1nJ2uEtw8u7p5YZ9J7Ykdmd9
0x741a8b707b75aa57dc603fa30d1c4750198866b0e9eb6d9a7a1a7dde8ec7f4d2
UQD0BQTBSVo19hrjKyXnRc61MXW0j9dTZaLEXOUJwxLT2qRQ
La2H1YD2zKxqhsziGrx74anjJYwAQJ67er
Для перевода интерфейса используйте оригинальный WireGuard Crowdin. При обнаружении технических ошибок, связанных с интеграцией TURN, пожалуйста, создавайте Issue в этом репозитории.