[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-94006":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":9,"totalLinesOfCode":9,"stars":12,"forks":13,"watchers":14,"openIssues":14,"contributorsCount":9,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":14,"stars30d":14,"stars90d":14,"forks30d":14,"starsTrendScore":14,"compositeScore":15,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":16,"fork":16,"defaultBranch":17,"hasWiki":16,"hasPages":16,"topics":9,"createdAt":9,"pushedAt":9,"updatedAt":18,"readmeContent":19,"aiSummary":9,"trendingCount":14,"starSnapshotCount":14,"syncStatus":20,"lastSyncTime":9,"discoverSource":21},94006,"proxy-turn-vk-android","amurcanov\u002Fproxy-turn-vk-android","amurcanov","WireGuard‑туннель через DTLS‑медиарелей ВК TURN‑серверов: трафик проходит от клиента к вашему личному VPS‑серверу через промежуточные медиарелей‑серверы ВК.",null,"https:\u002F\u002Fgithub.com\u002Famurcanov\u002Fproxy-turn-vk-android","Kotlin",1086,80,0,50.73,false,"main","2026-07-30 04:02:14","\u003Cdiv align=\"center\">\n  \n  # WDTT — WireGuard over TURN Tunnel\n\u003Cbr>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FAndroid-SDK_29--35-3DDC84?style=for-the-badge&logo=android&logoColor=white\" alt=\"Android SDK\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGo-1.25-00ADD8?style=for-the-badge&logo=go&logoColor=white\" alt=\"Go Version\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FKotlin-Compose-7F52FF?style=for-the-badge&logo=kotlin&logoColor=white\" alt=\"Kotlin\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Famurcanov\u002Fproxy-turn-vk-android\u002Fstargazers\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Famurcanov\u002Fproxy-turn-vk-android?style=for-the-badge&logo=github&color=ffca28&labelColor=24292e\" alt=\"Stars\">\n  \u003C\u002Fa>\n\u003C\u002Fdiv>\n\u003Cbr>\n\n\u003Cdiv align=\"center\">\n  \n**WDTT** — это Android-приложение для создания защищённого **WireGuard-туннеля поверх TURN\u002FDTLS**. Клиент поднимает локальный VPN-интерфейс на устройстве, получает WireGuard-конфигурацию от вашего VPS и передаёт транспорт через TURN-серверы VK, маскируя соединение под обычный зашифрованный медиатрафик звонка.\n\n\u003Cimg width=\"1000\" height=\"738\" alt=\"MyCollages (1)\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F549c6624-978c-4b00-aae2-d195e470a1d1\" \u002F>\n\n## Содержание\n\n### 1. Начало работы и знакомство\n*Сюда идёт всё, что нужно пользователю, чтобы понять суть проекта и быстро его запустить.*\n\n- [Как это работает](#как-это-работает)\n- [Быстрый старт](#быстрый-старт)\n- [Что нового в версии 1.2.3](#что-нового-в-версии-123)\n- [Возможности Android-версии](#возможности-android-версии)\n\n### 2. Настройка и деплой (Техническая часть)\n*Шаги по установке, настройке окружения и безопасности.*\n\n- [Деплой VPS](#деплой-vps)\n- [Получение VK-хеша](#получение-vk-хеша)\n- [Управление доступом](#управление-доступом)\n- [Дополнительные возможности](#дополнительные-возможности)\n\n### 3. Платформы и поддерживаемые клиенты\n*Разделение по операционным системам и альтернативам.*\n\n- [WIN Linux IOS совместимые клиенты для WDTT](#win-linux-ios-совместимые-клиенты-wdtt)\n\n- [Другие рабочие решения: Ядра\u002FAPK](#другие-рабочие-решения)\n\n> [!NOTE]\n> **Обратите внимание**\n> \n> Проекты, указанные в этом разделе, развиваются силами сторонних разработчиков. Как автор этого репозитория, я (**amurcanov**) делюсь ими исключительно в ознакомительных целях. \n> \n> Пожалуйста, учитывайте, что я не контролирую их разработку и безопасность. Перед использованием рекомендую ознакомиться с оригинальной документацией авторов программ.\n\n### 4. О проекте\n- [Лицензия](#лицензия)\n\n## Возможности Android-версии\n\n- **Полноценный VPN-режим:** приложение использует `VpnService` и WireGuard GoBackend, поэтому трафик выбранных приложений проходит через системный VPN-интерфейс без ручного импорта конфигов.\n- **TURN\u002FDTLS-транспорт:** нативный Go-клиент получает временные TURN-учётные данные VK-звонка и поднимает DTLS-соединения к relay-серверу, через который передаётся трафик до вашего VPS.\n- **WRAP без захардкоженного ключа:** внешний RTP AEAD\u002FChaCha20-Poly1305 слой выводится из пароля подключения через HKDF. Один пароль — один WRAP-ключ, ключ не хранится в APK.\n- **RTP AEAD обфускация:** транспорт маскируется под RTP\u002FWebRTC аудиотрафик с OPUS payload type, а полезная нагрузка шифруется AEAD-слоем поверх DTLS\u002FWireGuard.\n- **Деплой с телефона:** вкладка **«Деплой»** подключается к серверу по SSH, загружает `wdtt-server`, создаёт `systemd`-сервис, включает NAT\u002Ffirewall и открывает рабочие UDP-порты.\n- **Парольная модель доступа:** сервер поддерживает главный пароль, до 10 активных пользовательских паролей, 16-символьную генерацию, привязку пароля к устройству, истечение срока и управление через Telegram-бота.\n- **Горячее обновление WRAP-ключей:** создание, удаление и истечение паролей обновляют набор WRAP-ключей на сервере без перезапуска ядра.\n- **Исключения приложений:** можно выбрать, какие приложения идут через туннель, а какие работают напрямую. Поддерживаются режимы ЧС и БС, а изменения применяются перезагрузкой WireGuard без полного перенастраивания.\n- **Капча VK Smart Captcha:** по умолчанию включён режим **«Авто капча»**: Go v2-решатель, Auto WebView и ручной WebView используются по цепочке без выбора режима пользователем. При отключении авто-режима доступны ручные настройки метода.\n- **Живой лог-вьюер:** события Go-клиента, DTLS, WireGuard, WRAP, капчи, деплоя и статистики отображаются в приложении с группировкой одинаковых сообщений и счётчиками повторов.\n- **Фоновая устойчивость:** `Foreground Service`, `WakeLock`, `WifiLock`, мониторинг смены сети и watchdog помогают переживать Doze, смену Wi-Fi\u002FLTE и падение нативного процесса.\n- **VK Auth fallback:** клиент использует 2 проверенных VK `client_id` и переключается между ними при ошибках авторизации.\n- **DNS fallback:** сначала используются Yandex DNS `77.88.8.8` \u002F `77.88.8.1`, а при отказе или таймаутах выполняется fallback на системный провайдерский DNS устройства.\n- **Темы и оформление:** Material 3, Jetpack Compose, Inter, светлая\u002Fтёмная тема, Dynamic Colors на Android 12+ и встроенные палитры.\n- **Автообновления:** приложение проверяет GitHub releases, показывает диалог обновления и периодически повторяет проверку в фоне.\n\n## WIN Linux IOS совместимые клиенты WDTT\n**Моё любимое**\n- [luminescq\u002FPWDTT](https:\u002F\u002Fgithub.com\u002Fluminescq\u002FPWDTT) - Хороший порт WDTT на Windows & Linux\n- [anton48\u002Fvk-turn-proxy-ios](https:\u002F\u002Fgithub.com\u002Fanton48\u002Fvk-turn-proxy-ios) — Самодостаточный проект для IOS совместимый с WDTT (server core)(высокий фактор доверия у репозитория)\n  \nУлучшенные форки WDTT на андроид:\n- [Ivan4537\u002FWDTT-Plus](https:\u002F\u002Fgithub.com\u002FIvan4537\u002FWDTT-Plus)\n- [XXcipherX\u002Fproxy-turn-vk-android](https:\u002F\u002Fgithub.com\u002FXXcipherX\u002Fproxy-turn-vk-android)\n-\n\n**Альтеративный форк под Windows**\n- [IGOR7276\u002Fproxy-turn-vk-windows](https:\u002F\u002Fgithub.com\u002FIGOR7276\u002Fproxy-turn-vk-windows)\n\n*(Я не несу ответвености за ваше использование сторонних клиентов совместимых с WDTT)*\n\n## Что нового в версии 1.2.3\n\n**Новое:**\n\n- Добавлен новый тип маскировки \"Видео\" для разнообразия скрытности трафика.\n- Реализован режим анонимного потока VK Calls без капчи. #218 @XXcipherX\n\n**Исправления и оптимизация:**\n\n- Исправлена нестабильность на 32-битных Android-устройствах (падения из-за атомарных операций). #217 @XXcipherX\n- Cнижена нагрузка на сервер за счёт оптимизации выделения памяти при обфускации RTP #214 @annel0\n- Исправлена логика раздельного туннелирования — теперь работает корректно #223 @XXcipherX\n- Улучшена обработка ошибок VK Calls: неустранимые ошибки теперь не приводят к бесконечным повторным попыткам #227 @XXcipherX\n- Мелкие улучшения капчи и скриптов сборки #221 @Afteroid\n- Мелкие улучшения сборочных скриптов и DNS #190 @andbul\n\n## Другие рабочие решения\n\nРабочие решения с обходом шейпинга скорости и частыми обновлениями:\n\n**Моё любимое**\n- [samosvalishe\u002Ffree-turn-proxy](https:\u002F\u002Fgithub.com\u002Fsamosvalishe\u002Ffree-turn-proxy) — Качественные ядра клиента и сервера с частыми обновлениями\n- [Moroka8\u002Fvk-turn-proxy](https:\u002F\u002Fgithub.com\u002FMoroka8\u002Fvk-turn-proxy) — Качественные ядра клиента и сервера\n\n**Android**\n- [samosvalishe\u002Fturn-proxy-android](https:\u002F\u002Fgithub.com\u002Fsamosvalishe\u002Fturn-proxy-android) — альтернативная андроид версия\n\n*(Я не несу ответвености за ваше использование указанных в ознакомительных целях мной - репозиториев)*\n\n## Как это работает\n\n```text\nAndroid-приложение → VpnService \u002F WireGuard GoBackend → локальный UDP 127.0.0.1:9000\n      → Go-клиент WDTT → WRAP RTP AEAD → VK TURN \u002F DTLS → wdtt-server на VPS → интернет\n```\n\n1. Приложение запускает нативный Go-клиент `libclient.so` и передаёт ему адрес VPS, VK-хеши звонка, пароль туннеля и количество потоков.\n2. Go-клиент выводит WRAP-ключ из пароля подключения, получает TURN-учётные данные через VK-звонок, при необходимости решает VK Smart Captcha и устанавливает DTLS-соединения через TURN relay.\n3. Внешний WRAP-слой упаковывает DTLS-пакеты в RTP AEAD\u002FChaCha20-Poly1305, чтобы ключ не был захардкожен в APK и мог отличаться у каждого пароля.\n4. Первый рабочий канал запрашивает у VPS WireGuard-конфигурацию через `GETCONF`, передавая локальный порт, `device-id` и пароль подключения.\n5. Сервер проверяет пароль: главный пароль работает как владелец, сгенерированные пароли имеют срок действия и привязываются к первому устройству.\n6. Android-часть парсит полученный WireGuard-конфиг, поднимает системный VPN-туннель и применяет исключения приложений.\n7. Watchdog следит за Go-процессом, активными воркерами и сетевыми изменениями, перезапуская транспорт при сбоях.\n\n## Быстрый старт\n\n1. Скачайте актуальный `APK` со **[страницы релизов](https:\u002F\u002Fgithub.com\u002Famurcanov\u002Fproxy-turn-vk-android\u002Freleases)**.\n2. Установите приложение на Android-смартфон.\n3. Подготовьте айпи, логин, пароль от имеющегося VPS.\n4. В VK создайте или откройте групповой звонок и скопируйте ссылку вида `vk.com\u002Fcall\u002Fjoin\u002Fxxxxxxxxxxx`. где xxxxxxxxxxx ваш хеш, или просто вставьте ссылку.\n5. Откройте **WDTT** и перейдите во вкладку **«Деплой»**.\n6. Введите IP\u002Fдомен VPS, SSH-логин, пароль и SSH-порт.\n7. В **«Секретах»** задайте главный пароль туннеля. При необходимости добавьте Telegram `admin_id` \u002F `bot_token` для управления доступом.\n8. Нажмите **«Установить»** и дождитесь завершения деплоя.\n9. Во вкладке **«Туннель»** укажите IP\u002Fдомен сервера, VK-хеши, пароль подключения и количество потоков.\n10. Нажмите **«Подключить»** предварительно выдав все необходимые разрешения приложению.\n\n## Получение VK-хеша\n\n```text\nVK → группа → звонок → ссылка приглашения → код после \u002Fjoin\u002F\n```\n\n1. Откройте VK и создайте пустую группу или используйте существующую.\n2. Начните групповой звонок.\n3. Скопируйте ссылку приглашения.\n4. Вставьте в WDTT всю ссылку или только хеш после `\u002Fjoin\u002F`.\n5. Можно использовать до **4 хешей** одновременно для распределения нагрузки и увеличения доступного числа потоков.\n\n> [!IMPORTANT]\n> При выходе из звонка нажимайте **«Просто завершить»**, а не **«Завершить для всех»**. Если закрыть комнату для всех участников, хеш перестанет работать.\n\n## Деплой VPS\n\nСерверная часть ставится автоматически из приложения:\n\n```text\nAndroid → SSH → \u002Ftmp\u002Fdeploy.sh + \u002Ftmp\u002Fwdtt-server → \u002Fusr\u002Flocal\u002Fbin\u002Fwdtt-server\n      → systemd wdtt.service → wdtt0 + NAT + firewall\n```\n\nПо умолчанию используются:\n\n- `56000\u002Fudp` — DTLS-сервер WDTT.\n- `56001\u002Fudp` — внутренний WireGuard-порт сервера.\n- `9000\u002Fudp` — локальный порт Android-клиента.\n- `10.66.66.0\u002F24` — подсеть WireGuard-устройств.\n\nЕсли включить ручное управление портами, эти значения можно изменить в **«Секретах»**.\n\n## Управление доступом\n\nWDTT-сервер поддерживает две модели подключения:\n\n- **Главный пароль:** задаётся при деплое и используется владельцем сервера.\n- **Сгенерированные пароли:** создаются при деплое или через Telegram-бота, имеют срок действия, привязываются к первому устройству и обновляют WRAP-ключи на сервере без перезапуска.\n\nОдин сервер может держать до **10 активных паролей**. Новые пароли генерируются длиной **16 символов**.\n\nКоманда `\u002Flist` показывает активные пароли и устройства. Через inline-кнопки можно отвязать устройство или удалить пароль. При удалении или истечении пароля соответствующий WRAP-ключ удаляется из памяти сервера.\n\n## Дополнительные возможности\n\n#### Исключения приложений\n\nВкладка **«Исключ.»** показывает установленные приложения с поиском. В режиме ЧС выбранные приложения исключаются из VPN, а в режиме БС логика инвертируется: неотмеченные приложения добавляются в туннель. Само приложение WDTT и VK-клиенты исключаются автоматически, чтобы не ломать TURN-соединение.\n\n#### Капча\n\nПо умолчанию включён режим **«Авто капча»**. Оркестратор делает до двух попыток Go v2-решателя, затем две попытки Auto WebView с коротким таймаутом, затем финальную Go-попытку. Если всё это не помогло, приложение открывает ручной WebView. Авто-режим можно отключить, тогда в UI появляются ручные настройки метода и режима прохождения.\n\n#### Логирование\n\nВкладка **«Логи»** показывает статус получения VK-учётных данных, решение капчи, DTLS-handshake, WRAP-состояние, готовность WireGuard, статистику активных воркеров и ошибки. Повторяющиеся строки схлопываются в одну запись со счётчиком.\n\n> [!NOTE]\n> Если видны DTLS handshake, но `Активных: 0`, чаще всего указан неправильный пароль подключения или используется сервер без актуального WRAP-протокола. Если часть потоков уже активна, одиночные DTLS timeout больше не считаются неверным паролем и не останавливают туннель.\n\n#### Обновления\n\nПриложение проверяет **GitHub releases** репозитория [amurcanov\u002Fproxy-turn-vk-android](https:\u002F\u002Fgithub.com\u002Famurcanov\u002Fproxy-turn-vk-android), умеет показывать диалог новой версии и открывать страницу релиза в браузере. Проверка выполняется при запуске и периодически в фоне.\n\n#### Отчёт для issue\n\nВ разделе **«Информация»** есть кнопка **«Собрать отчёт»**. Она копирует версию приложения, Android SDK, ABI, модель устройства, SoC, ROM и fingerprint — эти данные полезны при разборе крашей и проблем с запуском.\n\n> [!NOTE]\n> ### Отчёты об ошибках\n> WDTT зависит от мобильной сети, Android-ограничений фоновой работы, состояния VK-звонка, TURN-квот, DNS и настроек VPS.\n>\n> Если возникла проблема, приложите к `issue` отчёт из раздела **«Информация»**, скриншот вкладки **«Логи»**, версию APK, ABI сборки и описание сети. Мелкие повторяющиеся ошибки в логах не всегда означают поломку, если туннель остаётся активным.\n## Сборка\n\n```bash\nexport ANDROID_NDK_HOME=\u002Fpath\u002Fto\u002Fandroid-ndk\n.\u002Fscripts\u002Fbuild-native-libs.sh\n.\u002Fgradlew :app:assembleDebug\n```\n\nОдна ABI: `.\u002Fscripts\u002Fbuild-go-lib.sh arm64-v8a`\n\n> [!WARNING]\n> ### Назначение проекта и дисклеймер\n> Приложение является техническим инструментом для защищённого туннелирования трафика через ваш собственный TURN-сервер. Проект WDTT носит исключительно витринно-ознакомительный характер на примере уже имеющейся структуры в целях исследования сетевых протоколов.\n> \n> Я (**amurcanov**) не призываю использовать WDTT для обхода блокировок или нарушения правил каких-либо платформ, а также не несу ответственности за финальные сценарии использования утилиты пользователями в реальной жизни или сети ИНТЕРНЕТ. Любые специфические технические особенности приложения - не более чем архитектурное совпадение, созданное без какого-либо умысла.\n>\n>Проект является полностью некоммерческим, не содержит платных функций, скрытых подписок или коммерческой выгоды.\n\n## Лицензия\n\nЭтот проект распространяется под лицензией **GNU General Public License v3.0**.\n",2,"trending"]