From b4255cf8121ce1538df16eb8013d307c82753cb6 Mon Sep 17 00:00:00 2001 From: Moroka8 Date: Thu, 7 May 2026 15:04:15 +0700 Subject: [PATCH] docs: rewrite README --- README.md | 694 +++++++++++++++++++++--------------------------------- 1 file changed, 266 insertions(+), 428 deletions(-) diff --git a/README.md b/README.md index eef4dc4..18be0ae 100644 --- a/README.md +++ b/README.md @@ -1,553 +1,392 @@ -# Good TURN +# VK TURN Proxy -Проброс трафика WireGuard/Hysteria через TURN сервера VK звонков или ~~Яндекс телемоста~~. Пакеты шифруются DTLS 1.2, затем параллельными потоками через TCP или UDP отправляются на TURN сервер по протоколу STUN ChannelData. Оттуда по UDP отправляются на ваш сервер, где расшифровываются и передаются в WireGuard. Логин/пароль от TURN генерируются из ссылки на звонок. +VK TURN Proxy - клиент и сервер для прокидывания локального UDP/TCP-трафика через TURN-реле, получаемые из ссылки на VK Calls. Типичный сценарий - поднять небольшой `server` на VPS рядом с WireGuard или Xray, а на клиентском устройстве запустить `client`, который слушает локальный адрес вроде `127.0.0.1:9000`. > [!CAUTION] -> Только для учебных целей! +> Проект предназначен для обучения, исследований и администрирования собственных стендов. Используйте его только там, где у вас есть право запускать такой трафик и менять сетевую конфигурацию. ## Содержание -- [Похожие проекты](#похожие-проекты) -- [Настройка](#настройка) - - [Подготовка](#подготовка) - - [Сервер](#сервер) - - [Клиент](#клиент) + +- [Как это работает](#как-это-работает) +- [Возможности](#возможности) +- [Что нужно](#что-нужно) +- [Быстрый старт: WireGuard](#быстрый-старт-wireguard) + - [Запуск сервера на VPS](#1-запустите-сервер-на-vps) + - [Настройка WireGuard](#2-настройте-wireguard-на-клиенте) + - [Запуск клиента](#3-запустите-клиент) +- [Android через Termux](#android-через-termux) +- [iOS через iSH](#ios-через-ish) +- [systemd-сервис](#сервер-как-systemd-сервис) +- [Docker](#docker) +- [VLESS / Xray](#vless--xray) +- [WRAP-режим](#wrap-режим) +- [Яндекс Телемост](#яндекс-телемост) +- [Флаги клиента](#флаги-клиента) +- [Флаги сервера](#флаги-сервера) +- [Captcha](#captcha) +- [Сборка из исходников](#сборка-из-исходников) - [Решение проблем](#решение-проблем) -- [Дополнительные режимы](#дополнительные-режимы) - - [Яндекс Телемост](#яндекс-телемост) - - [v2ray / Xray](#v2ray) - - [VLESS-режим](#vless-режим) - - [Direct mode](#direct-mode) +- [Похожие проекты](#похожие-проекты) +- [Лицензия](#лицензия) -## Похожие проекты +## Как Это Работает -> [!WARNING] -> Авторы данного репозитория не несут ответственности за другие похожие проекты. +Схема для WireGuard: -#### Server -- https://github.com/Urtyom-Alyanov/turn-proxy - реализация на Rust -- https://github.com/jaykaiperson/lionheart - аналог для https://stream.wb.ru (статья: https://habr.com/ru/articles/1017410/) -- https://github.com/kulikov0/whitelist-bypass - проброс через медиасервер SFU ВК и Яндекс Телемоста -- https://github.com/NedgNDG/vk-proxy-auto-installer - автоустановщик VK TURN Proxy (TUI) +```text +WireGuard client -> 127.0.0.1:9000 -> VK TURN Proxy client + -> VK TURN relay -> VK TURN Proxy server на VPS + -> 127.0.0.1:<порт WireGuard> -> WireGuard server +``` -#### Android -##### Мои любимые -- https://github.com/samosvalishe/turn-proxy-android - клиент для андроида c Material 3 UI и автоапдейтами (Kotlin) -- https://github.com/MYSOREZ/vk-turn-proxy-android - клиент для андроида -- https://github.com/kiper292/wireguard-turn-android - клиент для андроида интегрированный в WireGuard -##### Ещё -- https://github.com/WINGS-N/WINGSV - клиент для андроида с One UI, WireGuard, раздачей VPN с root -- https://github.com/oxsidee/vkpn - клиент для андроида (кроссплатформенный Flutter) -- https://github.com/amurcanov/proxy-turn-vk-android - клиент для андроида с WireGuard +Клиент берет временные TURN-учетные данные из ссылки VK Calls, открывает одно или несколько соединений к TURN-реле и отправляет через них трафик к вашему `server`. Между `client` и `server` используется DTLS. Для WireGuard сервер пересылает данные в UDP backend, для VLESS/Xray - в TCP backend через KCP и smux. -#### iOS -- https://github.com/nullcstring/turnbridge - клиент для iOS +## Возможности -#### macOS -- https://github.com/denny4-user/vk-turn-proxy-macos-gui - клиент для macOS +- VK Calls как основной источник TURN-учетных данных. +- TCP или UDP подключение клиента к TURN-реле. +- Несколько параллельных TURN-потоков через `-n`. +- WireGuard/Hysteria-подобный UDP backend. +- VLESS/Xray TCP backend через `-vless`. +- Bonding для VLESS через `-vless-bond`. +- Дополнительная WRAP-обфускация DTLS-пакетов через `-wrap`. +- Автоматическое и ручное прохождение VK captcha. +- Docker-образ для серверной части. -## Настройка +## Что Нужно -### Подготовка -Нам понадобится: +- VPS с публичным IP. +- На VPS уже должен слушать backend: + - WireGuard: обычно `127.0.0.1:51820/udp`; + - Xray/VLESS: обычно `127.0.0.1:443/tcp`. +- Ссылка на активный VK Calls вида `https://vk.com/call/join/...`. +- На клиенте: WireGuard, Xray или другой локальный клиент, который будет ходить в `127.0.0.1:9000`. -1. Ссылка на действующий ВК звонок: создаём свой (нужен аккаунт вк), или гуглим `"https://vk.com/call/join/"`. - Ссылка действительна вечно, если не нажимать "завершить звонок для всех" -2. Или ссылка на звонок Яндекс телемоста: `"https://telemost.yandex.ru/j/"`. Её лучше не гуглить, так как видно подключение к конференции -3. VPS с установленным WireGuard -4. Для андроида: скачать Termux из F-Droid +Ссылку VK Calls лучше создать самостоятельно. Не завершайте звонок для всех, если хотите использовать эту ссылку дальше. -### Сервер +## Быстрый Старт: WireGuard -
Рекомендуется tmux +### 1. Запустите Сервер На VPS -На сервере запустить tmux: +Скачайте бинарник для Linux amd64: ```bash -# Создание сессии tmux -tmux new -s vkturn +curl -L -o server https://github.com/cacggghp/vk-turn-proxy/releases/latest/download/server-linux-amd64 +chmod +x server ``` -Внутри сессии tmux запустить команду сервера ниже. Далее нажать `Ctrl+B` `D`, чтобы свернуть сессию, не завершая её. Прокси процесс останется запущенным, сервер будет доступен для новых команд или безопасного выхода из него. +Запустите `server`, указав локальный адрес WireGuard: ```bash -# Войти в ранее созданную сессию tmux -tmux a -t vkturn +./server -listen 0.0.0.0:56000 -connect 127.0.0.1:51820 ``` -
- -Скачать бинарник, в данном примере используется самый популярный сервер `server-linux-amd64`: - -```bash -# Скачать бинарник -curl -L -o server https://github.com/cacggghp/vk-turn-proxy/releases/latest/download/server-linux-amd64 && chmod +x server -``` +Порт `56000/udp` должен быть доступен снаружи. Если WireGuard слушает другой порт, замените `51820`. -```bash -# Запуск сервера -./server -listen 0.0.0.0:56000 -connect 127.0.0.1:<порт wg> -``` -#### Установка демона -На сервере в файле `/etc/systemd/system/vk-turn-proxy.service` -``` -[Unit] -Description=VK Turn Proxy Service -After=network.target +### 2. Настройте WireGuard На Клиенте -[Service] -Type=simple -ExecStart=/opt/vk-turn-proxy/server-linux-amd64 -listen 0.0.0.0:56000 -connect 127.0.0.1: -KillMode=process -Restart=always -RestartSec=5 -User=nobody -Group=nogroup -StandardOutput=append:/var/log/vk-turn-proxy/vk-turn-proxy.log -StandardError=append:/var/log/vk-turn-proxy/vk-turn-proxy_error.log -SyslogIdentifier=vk-turn-proxy +В клиентском конфиге WireGuard замените endpoint сервера на локальный адрес VK TURN Proxy: -[Install] -WantedBy=multi-user.target +```ini +Endpoint = 127.0.0.1:9000 +MTU = 1280 ``` -Где `/opt/vk-turn-proxy/server-linux-amd64` - путь к файлу, `` - порт сервера wg -``` -systemctl daemon-reload -systemctl enable vk-turn-proxy.service -systemctl start vk-turn-proxy.service -``` -#### Docker -Образ Docker публикуется в GitHub Container Registry: +На Android добавьте Termux или приложение-клиент в исключения WireGuard. На Windows, Linux и macOS перед включением WireGuard нужно добавить маршрут до TURN-реле, иначе клиент может попытаться подключаться к TURN уже через сам VPN. -``` -docker pull ghcr.io/cacggghp/vk-turn-proxy:latest -docker tag ghcr.io/cacggghp/vk-turn-proxy:latest vkt -``` +### 3. Запустите Клиент -Для Linux-сервера, где `xray` или WireGuard слушает локально, удобнее запускать через host network: +Linux: -``` -docker run --rm --network host -e CONNECT_ADDR=127.0.0.1:<порт wg> vkt -``` - -Если нужен bridge mode: - -``` -docker run --rm -p 56000:56000/udp -e CONNECT_ADDR=:<порт wg> vkt +```bash +curl -L -o client https://github.com/cacggghp/vk-turn-proxy/releases/latest/download/client-linux-amd64 +chmod +x client +./client -listen 127.0.0.1:9000 -peer :56000 -vk-link "" | ./routes.sh ``` -Сборка образа вручную: +Windows PowerShell от администратора: -``` -git clone https://github.com/cacggghp/vk-turn-proxy.git -cd vk-turn-proxy -docker build -t vk-turn-proxy . +```powershell +Invoke-WebRequest -Uri https://github.com/cacggghp/vk-turn-proxy/releases/latest/download/client-windows-amd64.exe -OutFile client.exe +.\client.exe -listen 127.0.0.1:9000 -peer :56000 -vk-link "" | .\routes.ps1 ``` -Переменная окружения **CONNECT_ADDR** — адрес WireGuard (обязательный), например `192.168.1.10:51820`. +macOS: -Пример запуска: - -``` -docker run -p 56000:56000/udp -e CONNECT_ADDR=192.168.1.10:51820 vk-turn-proxy +```bash +curl -L -o client https://github.com/cacggghp/vk-turn-proxy/releases/latest/download/client-darwin-arm64 +chmod +x client +./client -listen 127.0.0.1:9000 -peer :56000 -vk-link "" | ./routes-macos.sh ``` -### Клиент - -#### Android +После появления соединения включите WireGuard. -См. [клиенты](#android). +Если вы скачали только бинарник, но не клонировали репозиторий, возьмите нужный route-скрипт из этого репозитория: `routes.sh`, `routes.ps1` или `routes-macos.sh`. -**Альтернативный способ (через Termux):** +## Android Через Termux -- В клиентском конфиге WireGuard меняем адрес сервера на `127.0.0.1:9000`, ставим MTU 1280 -- **Добавляем Termux в исключения WireGuard. Нажимаем "сохранить".** - В Termux: +1. Установите Termux из F-Droid. +2. В WireGuard укажите `Endpoint = 127.0.0.1:9000` и `MTU = 1280`. +3. Добавьте Termux в исключения WireGuard. +4. Запустите в Termux: -``` +```bash termux-wake-lock +curl -L -o client https://github.com/cacggghp/vk-turn-proxy/releases/latest/download/client-android-arm64 +chmod +x client +./client -listen 127.0.0.1:9000 -peer :56000 -vk-link "" ``` -Телефон не будет уходить в глубокий сон, так что на ночь ставьте на зарядку. Чтобы отключить: +Чтобы снять wake lock: -``` +```bash termux-wake-unlock ``` -Скачиваем бинарник в локальную папку, даём права на исполнение, в команде указана самая популярная архитектура `client-android-arm64`: +## iOS Через iSH + +Это запасной вариант, если нет нативного клиента. ```bash -curl -L -o client https://github.com/cacggghp/vk-turn-proxy/releases/latest/download/client-android-arm64 && chmod +x client +apk update +apk add curl +curl -L -o client https://github.com/cacggghp/vk-turn-proxy/releases/latest/download/client-linux-386 +chmod +x client +GOMAXPROCS=1 GODEBUG=asyncpreemptoff=1 ./client -listen 127.0.0.1:9000 -peer :56000 -vk-link "" ``` -Запускаем: +Чтобы iSH дольше жил в фоне, можно в начале сессии выполнить: -``` -./client -listen 127.0.0.1:9000 -peer :56000 -vk-link +```bash +cat /dev/location > /dev/null & ``` -Или +## Сервер Как systemd-Сервис -``` -./client -udp -turn 5.255.211.241 -peer :56000 -yandex-link -listen 127.0.0.1:9000 -``` +Пример `/etc/systemd/system/vk-turn-proxy.service`: -#### iOS +```ini +[Unit] +Description=VK TURN Proxy server +After=network.target -См. [клиенты](#ios). +[Service] +Type=simple +ExecStart=/opt/vk-turn-proxy/server -listen 0.0.0.0:56000 -connect 127.0.0.1:51820 +Restart=always +RestartSec=5 +User=nobody +Group=nogroup -**Альтернативный способ (через iSH Shell):** +[Install] +WantedBy=multi-user.target +``` -Скачать приложение [iSH Shell](https://apps.apple.com/ru/app/ish-shell/id1436902243): +Применить: ```bash -# Установить curl, если его нет -apk update -apk add curl +sudo systemctl daemon-reload +sudo systemctl enable --now vk-turn-proxy.service +sudo systemctl status vk-turn-proxy.service ``` -```bash -# Скачать бинарник и дать права на запуск -curl -L -o client https://github.com/cacggghp/vk-turn-proxy/releases/latest/download/client-linux-386 && chmod +x client -``` +## Docker + +Образ публикуется в GitHub Container Registry: ```bash -# Запустить клиент -GOMAXPROCS=1 GODEBUG=asyncpreemptoff=1 ./client -listen 127.0.0.1:9000 -peer :56000 -vk-link +docker pull ghcr.io/cacggghp/vk-turn-proxy:latest ``` -> [!TIP] -> Чтобы iSH не закрывался в фоне, рекомендуется в начале сессии прописать команду `cat /dev/location > /dev/null &` — это заставит iOS поддерживать активность приложения в фоне через запрос геолокации. - -#### Настройка AllowedIPs -В конфиге WireGuard (WG) есть строка `AllowedIPs = 0.0.0.0/0, ::0`, что означает разрешить весь интернет. Для данной утилиты, нужно исключить IP адреса ВК. +Если backend слушает на хосте, удобнее использовать host network: -В конфиге WG, замените строку AllowedIPs: +```bash +docker run --rm --network host \ + -e CONNECT_ADDR=127.0.0.1:51820 \ + ghcr.io/cacggghp/vk-turn-proxy:latest +``` -
-Развернуть список IP адресов (AllowedIPs) +Bridge mode: +```bash +docker run --rm -p 56000:56000/udp \ + -e CONNECT_ADDR=:51820 \ + ghcr.io/cacggghp/vk-turn-proxy:latest ``` -AllowedIPs = 0.0.0.0/1, 128.0.0.0/4, 144.0.0.0/5, 152.0.0.0/7, 154.0.0.0/8, 155.0.0.0/9, 155.128.0.0/10, 155.192.0.0/12, 155.208.0.0/14, 155.212.0.0/17, 155.212.128.0/18, 155.212.208.0/20, 155.212.224.0/19, 155.213.0.0/16, 155.214.0.0/15, 155.216.0.0/13, 155.224.0.0/11, 156.0.0.0/6, 160.0.0.0/3, 192.0.0.0/2, 0.0.0.0/6, 4.0.0.0/8, 5.0.0.0/11, 5.32.0.0/12, 5.48.0.0/13, 5.56.0.0/14, 5.60.0.0/16, 5.61.0.0/20, 5.61.24.0/21, 5.61.32.0/19, 5.61.64.0/18, 5.61.128.0/18, 5.61.192.0/19, 5.61.224.0/21, 5.61.240.0/20, 5.62.0.0/15, 5.64.0.0/11, 5.96.0.0/14, 5.100.0.0/16, 5.101.0.0/19, 5.101.32.0/21, 5.101.44.0/22, 5.101.48.0/20, 5.101.64.0/18, 5.101.128.0/17, 5.102.0.0/15, 5.104.0.0/13, 5.112.0.0/12, 5.128.0.0/11, 5.160.0.0/12, 5.176.0.0/14, 5.180.0.0/16, 5.181.0.0/19, 5.181.32.0/20, 5.181.48.0/21, 5.181.56.0/22, 5.181.64.0/18, 5.181.128.0/17, 5.182.0.0/15, 5.184.0.0/14, 5.188.0.0/17, 5.188.128.0/21, 5.188.136.0/22, 5.188.144.0/20, 5.188.160.0/19, 5.188.192.0/18, 5.189.0.0/16, 5.190.0.0/15, 5.192.0.0/10, 6.0.0.0/7, 8.0.0.0/5, 16.0.0.0/5, 24.0.0.0/6, 28.0.0.0/7, 30.0.0.0/8, 31.0.0.0/9, 31.128.0.0/11, 31.160.0.0/12, 31.176.0.0/16, 31.177.0.0/18, 31.177.64.0/19, 31.177.96.0/21, 31.177.108.0/22, 31.177.112.0/20, 31.177.128.0/17, 31.178.0.0/15, 31.180.0.0/14, 31.184.0.0/13, 31.192.0.0/10, 32.0.0.0/6, 36.0.0.0/8, 37.0.0.0/9, 37.128.0.0/13, 37.136.0.0/15, 37.138.0.0/16, 37.139.0.0/19, 37.139.36.0/22, 37.139.44.0/22, 37.139.48.0/20, 37.139.64.0/18, 37.139.128.0/17, 37.140.0.0/14, 37.144.0.0/12, 37.160.0.0/11, 37.192.0.0/10, 38.0.0.0/7, 40.0.0.0/6, 44.0.0.0/8, 45.0.0.0/10, 45.64.0.0/12, 45.80.0.0/14, 45.84.0.0/17, 45.84.132.0/22, 45.84.136.0/21, 45.84.144.0/20, 45.84.160.0/19, 45.84.192.0/18, 45.85.0.0/16, 45.86.0.0/15, 45.88.0.0/13, 45.96.0.0/11, 45.128.0.0/13, 45.136.0.0/20, 45.136.16.0/22, 45.136.24.0/21, 45.136.32.0/19, 45.136.64.0/18, 45.136.128.0/17, 45.137.0.0/16, 45.138.0.0/15, 45.140.0.0/14, 45.144.0.0/12, 45.160.0.0/11, 45.192.0.0/10, 46.0.0.0/7, 48.0.0.0/5, 56.0.0.0/6, 60.0.0.0/7, 62.0.0.0/9, 62.128.0.0/10, 62.192.0.0/12, 62.208.0.0/13, 62.216.0.0/16, 62.217.0.0/17, 62.217.128.0/19, 62.217.176.0/20, 62.217.192.0/18, 62.218.0.0/15, 62.220.0.0/14, 62.224.0.0/11, 63.0.0.0/8, 64.0.0.0/5, 72.0.0.0/6, 76.0.0.0/7, 78.0.0.0/8, 79.0.0.0/9, 79.128.0.0/13, 79.136.0.0/16, 79.137.0.0/17, 79.137.128.0/20, 79.137.144.0/21, 79.137.152.0/22, 79.137.156.0/24, 79.137.158.0/23, 79.137.160.0/21, 79.137.168.0/22, 79.137.172.0/23, 79.137.176.0/20, 79.137.192.0/19, 79.137.224.0/20, 79.137.248.0/21, 79.138.0.0/15, 79.140.0.0/14, 79.144.0.0/12, 79.160.0.0/11, 79.192.0.0/10, 80.0.0.0/7, 82.0.0.0/8, 83.0.0.0/9, 83.128.0.0/11, 83.160.0.0/14, 83.164.0.0/15, 83.166.0.0/17, 83.166.128.0/18, 83.166.192.0/19, 83.166.224.0/21, 83.166.240.0/21, 83.167.0.0/16, 83.168.0.0/13, 83.176.0.0/12, 83.192.0.0/12, 83.208.0.0/13, 83.216.0.0/16, 83.217.0.0/17, 83.217.128.0/18, 83.217.192.0/20, 83.217.208.0/21, 83.217.220.0/22, 83.217.224.0/19, 83.218.0.0/15, 83.220.0.0/15, 83.222.0.0/20, 83.222.16.0/21, 83.222.24.0/22, 83.222.32.0/19, 83.222.64.0/18, 83.222.128.0/17, 83.223.0.0/16, 83.224.0.0/11, 84.0.0.0/12, 84.16.0.0/14, 84.20.0.0/15, 84.22.0.0/16, 84.23.0.0/19, 84.23.32.0/20, 84.23.48.0/22, 84.23.56.0/21, 84.23.64.0/18, 84.23.128.0/17, 84.24.0.0/13, 84.32.0.0/11, 84.64.0.0/10, 84.128.0.0/9, 85.0.0.0/9, 85.128.0.0/10, 85.192.0.0/19, 85.192.36.0/22, 85.192.40.0/21, 85.192.48.0/20, 85.192.64.0/18, 85.192.128.0/17, 85.193.0.0/16, 85.194.0.0/15, 85.196.0.0/14, 85.200.0.0/13, 85.208.0.0/12, 85.224.0.0/11, 86.0.0.0/8, 87.0.0.0/9, 87.128.0.0/10, 87.192.0.0/11, 87.224.0.0/13, 87.232.0.0/14, 87.236.0.0/15, 87.238.0.0/16, 87.239.0.0/18, 87.239.64.0/19, 87.239.96.0/21, 87.239.112.0/20, 87.239.128.0/17, 87.240.0.0/15, 87.242.0.0/18, 87.242.64.0/19, 87.242.96.0/20, 87.242.116.0/22, 87.242.120.0/21, 87.242.128.0/17, 87.243.0.0/16, 87.244.0.0/14, 87.248.0.0/13, 88.0.0.0/8, 89.0.0.0/9, 89.128.0.0/10, 89.192.0.0/12, 89.208.0.0/18, 89.208.64.0/20, 89.208.80.0/22, 89.208.88.0/21, 89.208.96.0/19, 89.208.128.0/18, 89.208.192.0/22, 89.208.200.0/21, 89.208.212.0/22, 89.208.224.0/22, 89.208.232.0/21, 89.208.240.0/20, 89.209.0.0/16, 89.210.0.0/15, 89.212.0.0/14, 89.216.0.0/14, 89.220.0.0/16, 89.221.0.0/17, 89.221.128.0/18, 89.221.192.0/19, 89.221.224.0/22, 89.221.240.0/20, 89.222.0.0/15, 89.224.0.0/11, 90.0.0.0/9, 90.128.0.0/12, 90.144.0.0/13, 90.152.0.0/14, 90.156.0.0/17, 90.156.128.0/20, 90.156.144.0/22, 90.156.152.0/21, 90.156.160.0/19, 90.156.192.0/20, 90.156.208.0/22, 90.156.220.0/22, 90.156.224.0/21, 90.156.240.0/20, 90.157.0.0/16, 90.158.0.0/15, 90.160.0.0/11, 90.192.0.0/10, 91.0.0.0/9, 91.128.0.0/10, 91.192.0.0/12, 91.208.0.0/13, 91.216.0.0/15, 91.218.0.0/16, 91.219.0.0/17, 91.219.128.0/18, 91.219.192.0/19, 91.219.228.0/22, 91.219.232.0/21, 91.219.240.0/20, 91.220.0.0/14, 91.224.0.0/14, 91.228.0.0/15, 91.230.0.0/16, 91.231.0.0/17, 91.231.128.0/22, 91.231.136.0/21, 91.231.144.0/20, 91.231.160.0/19, 91.231.192.0/18, 91.232.0.0/13, 91.240.0.0/12, 92.0.0.0/11, 92.32.0.0/14, 92.36.0.0/15, 92.38.0.0/17, 92.38.128.0/18, 92.38.192.0/20, 92.38.208.0/21, 92.38.216.0/24, 92.38.218.0/23, 92.38.220.0/22, 92.38.224.0/19, 92.39.0.0/16, 92.40.0.0/13, 92.48.0.0/12, 92.64.0.0/10, 92.128.0.0/9, 93.0.0.0/8, 94.0.0.0/10, 94.64.0.0/11, 94.96.0.0/14, 94.100.0.0/17, 94.100.128.0/19, 94.100.160.0/20, 94.100.192.0/18, 94.101.0.0/16, 94.102.0.0/15, 94.104.0.0/13, 94.112.0.0/12, 94.128.0.0/13, 94.136.0.0/15, 94.138.0.0/16, 94.139.0.0/17, 94.139.128.0/18, 94.139.192.0/19, 94.139.224.0/20, 94.139.240.0/22, 94.139.248.0/21, 94.140.0.0/14, 94.144.0.0/12, 94.160.0.0/11, 94.192.0.0/10, 95.0.0.0/9, 95.128.0.0/11, 95.160.0.0/15, 95.162.0.0/16, 95.163.0.0/19, 95.163.64.0/18, 95.163.128.0/22, 95.163.132.0/24, 95.163.134.0/23, 95.163.136.0/21, 95.163.144.0/20, 95.163.160.0/20, 95.163.176.0/22, 95.163.184.0/21, 95.163.192.0/20, 95.163.220.0/22, 95.163.224.0/20, 95.163.240.0/21, 95.164.0.0/14, 95.168.0.0/13, 95.176.0.0/12, 95.192.0.0/10, 96.0.0.0/5, 104.0.0.0/6, 108.0.0.0/8, 109.0.0.0/10, 109.64.0.0/11, 109.96.0.0/12, 109.112.0.0/13, 109.120.0.0/17, 109.120.128.0/19, 109.120.160.0/20, 109.120.176.0/22, 109.120.184.0/22, 109.120.192.0/18, 109.121.0.0/16, 109.122.0.0/15, 109.124.0.0/14, 109.128.0.0/9, 110.0.0.0/7, 112.0.0.0/4, 128.0.0.0/9, 128.128.0.0/13, 128.136.0.0/14, 128.140.0.0/17, 128.140.128.0/19, 128.140.160.0/21, 128.140.176.0/20, 128.140.192.0/18, 128.141.0.0/16, 128.142.0.0/15, 128.144.0.0/12, 128.160.0.0/11, 128.192.0.0/10, 129.0.0.0/8, 130.0.0.0/11, 130.32.0.0/12, 130.48.0.0/16, 130.49.0.0/17, 130.49.128.0/18, 130.49.192.0/19, 130.50.0.0/15, 130.52.0.0/14, 130.56.0.0/13, 130.64.0.0/10, 130.128.0.0/9, 131.0.0.0/8, 132.0.0.0/6, 136.0.0.0/5, 144.0.0.0/7, 146.0.0.0/9, 146.128.0.0/11, 146.160.0.0/12, 146.176.0.0/13, 146.184.0.0/16, 146.185.0.0/17, 146.185.128.0/18, 146.185.192.0/20, 146.185.212.0/22, 146.185.216.0/21, 146.185.224.0/20, 146.185.244.0/22, 146.185.248.0/21, 146.186.0.0/15, 146.188.0.0/14, 146.192.0.0/10, 147.0.0.0/8, 148.0.0.0/6, 152.0.0.0/7, 154.0.0.0/8, 155.0.0.0/9, 155.128.0.0/10, 155.192.0.0/12, 155.208.0.0/14, 155.212.0.0/17, 155.212.128.0/18, 155.212.208.0/20, 155.212.224.0/19, 155.213.0.0/16, 155.214.0.0/15, 155.216.0.0/13, 155.224.0.0/11, 156.0.0.0/6, 160.0.0.0/8, 161.0.0.0/10, 161.64.0.0/11, 161.96.0.0/13, 161.104.0.0/18, 161.104.64.0/19, 161.104.96.0/21, 161.104.112.0/20, 161.104.128.0/17, 161.105.0.0/16, 161.106.0.0/15, 161.108.0.0/14, 161.112.0.0/12, 161.128.0.0/9, 162.0.0.0/7, 164.0.0.0/6, 168.0.0.0/5, 176.0.0.0/10, 176.64.0.0/11, 176.96.0.0/12, 176.112.0.0/17, 176.112.128.0/19, 176.112.160.0/21, 176.112.176.0/20, 176.112.192.0/18, 176.113.0.0/16, 176.114.0.0/15, 176.116.0.0/14, 176.120.0.0/13, 176.128.0.0/9, 177.0.0.0/8, 178.0.0.0/12, 178.16.0.0/14, 178.20.0.0/15, 178.22.0.0/18, 178.22.64.0/20, 178.22.80.0/21, 178.22.96.0/19, 178.22.128.0/17, 178.23.0.0/16, 178.24.0.0/13, 178.32.0.0/11, 178.64.0.0/10, 178.128.0.0/10, 178.192.0.0/11, 178.224.0.0/13, 178.232.0.0/14, 178.236.0.0/16, 178.237.0.0/20, 178.237.32.0/19, 178.237.64.0/18, 178.237.128.0/17, 178.238.0.0/15, 178.240.0.0/12, 179.0.0.0/8, 180.0.0.0/6, 184.0.0.0/8, 185.0.0.0/14, 185.4.0.0/16, 185.5.0.0/17, 185.5.128.0/21, 185.5.140.0/22, 185.5.144.0/20, 185.5.160.0/19, 185.5.192.0/18, 185.6.0.0/15, 185.8.0.0/13, 185.16.0.0/17, 185.16.128.0/20, 185.16.144.0/22, 185.16.152.0/21, 185.16.160.0/19, 185.16.192.0/19, 185.16.224.0/20, 185.16.240.0/22, 185.16.248.0/21, 185.17.0.0/16, 185.18.0.0/15, 185.20.0.0/14, 185.24.0.0/13, 185.32.0.0/11, 185.64.0.0/12, 185.80.0.0/14, 185.84.0.0/15, 185.86.0.0/17, 185.86.128.0/20, 185.86.148.0/22, 185.86.152.0/21, 185.86.160.0/19, 185.86.192.0/18, 185.87.0.0/16, 185.88.0.0/13, 185.96.0.0/14, 185.100.0.0/18, 185.100.64.0/19, 185.100.96.0/21, 185.100.108.0/22, 185.100.112.0/20, 185.100.128.0/17, 185.101.0.0/16, 185.102.0.0/15, 185.104.0.0/13, 185.112.0.0/12, 185.128.0.0/15, 185.130.0.0/18, 185.130.64.0/19, 185.130.96.0/20, 185.130.116.0/22, 185.130.120.0/21, 185.130.128.0/17, 185.131.0.0/18, 185.131.64.0/22, 185.131.72.0/21, 185.131.80.0/20, 185.131.96.0/19, 185.131.128.0/17, 185.132.0.0/14, 185.136.0.0/13, 185.144.0.0/12, 185.160.0.0/12, 185.176.0.0/14, 185.180.0.0/17, 185.180.128.0/18, 185.180.192.0/21, 185.180.204.0/22, 185.180.208.0/20, 185.180.224.0/19, 185.181.0.0/16, 185.182.0.0/15, 185.184.0.0/15, 185.186.0.0/16, 185.187.0.0/19, 185.187.32.0/20, 185.187.48.0/21, 185.187.56.0/22, 185.187.60.0/23, 185.187.62.0/24, 185.187.64.0/18, 185.187.128.0/17, 185.188.0.0/14, 185.192.0.0/11, 185.224.0.0/15, 185.226.0.0/19, 185.226.32.0/20, 185.226.48.0/22, 185.226.56.0/21, 185.226.64.0/18, 185.226.128.0/17, 185.227.0.0/16, 185.228.0.0/14, 185.232.0.0/13, 185.240.0.0/16, 185.241.0.0/17, 185.241.128.0/18, 185.241.196.0/22, 185.241.200.0/21, 185.241.208.0/20, 185.241.224.0/19, 185.242.0.0/15, 185.244.0.0/14, 185.248.0.0/13, 186.0.0.0/7, 188.0.0.0/10, 188.64.0.0/12, 188.80.0.0/13, 188.88.0.0/14, 188.92.0.0/16, 188.93.0.0/19, 188.93.32.0/20, 188.93.48.0/21, 188.93.64.0/18, 188.93.128.0/17, 188.94.0.0/15, 188.96.0.0/11, 188.128.0.0/9, 189.0.0.0/8, 190.0.0.0/7, 192.0.0.0/8, 193.0.0.0/9, 193.128.0.0/10, 193.192.0.0/13, 193.200.0.0/15, 193.202.0.0/16, 193.203.0.0/19, 193.203.32.0/21, 193.203.44.0/22, 193.203.48.0/20, 193.203.64.0/18, 193.203.128.0/17, 193.204.0.0/14, 193.208.0.0/12, 193.224.0.0/11, 194.0.0.0/9, 194.128.0.0/11, 194.160.0.0/12, 194.176.0.0/13, 194.184.0.0/15, 194.186.0.0/19, 194.186.32.0/20, 194.186.48.0/21, 194.186.56.0/22, 194.186.60.0/23, 194.186.62.0/24, 194.186.64.0/18, 194.186.128.0/17, 194.187.0.0/16, 194.188.0.0/14, 194.192.0.0/10, 195.0.0.0/9, 195.128.0.0/10, 195.192.0.0/12, 195.208.0.0/15, 195.210.0.0/16, 195.211.0.0/20, 195.211.16.0/22, 195.211.24.0/21, 195.211.32.0/19, 195.211.64.0/18, 195.211.128.0/17, 195.212.0.0/14, 195.216.0.0/15, 195.218.0.0/17, 195.218.128.0/19, 195.218.160.0/20, 195.218.176.0/21, 195.218.184.0/22, 195.218.188.0/23, 195.218.192.0/18, 195.219.0.0/16, 195.220.0.0/14, 195.224.0.0/11, 196.0.0.0/6, 200.0.0.0/5, 208.0.0.0/6, 212.0.0.0/10, 212.64.0.0/11, 212.96.0.0/13, 212.104.0.0/14, 212.108.0.0/15, 212.110.0.0/16, 212.111.0.0/18, 212.111.64.0/20, 212.111.80.0/22, 212.111.88.0/21, 212.111.96.0/19, 212.111.128.0/17, 212.112.0.0/12, 212.128.0.0/10, 212.192.0.0/11, 212.224.0.0/13, 212.232.0.0/16, 212.233.0.0/18, 212.233.64.0/21, 212.233.80.0/21, 212.233.100.0/22, 212.233.104.0/21, 212.233.112.0/21, 212.233.124.0/22, 212.233.128.0/17, 212.234.0.0/15, 212.236.0.0/14, 212.240.0.0/12, 213.0.0.0/9, 213.128.0.0/10, 213.192.0.0/12, 213.208.0.0/13, 213.216.0.0/15, 213.218.0.0/16, 213.219.0.0/17, 213.219.128.0/18, 213.219.192.0/20, 213.219.208.0/22, 213.219.216.0/21, 213.219.224.0/19, 213.220.0.0/14, 213.224.0.0/11, 214.0.0.0/7, 216.0.0.0/8, 217.0.0.0/12, 217.16.0.0/20, 217.16.32.0/19, 217.16.64.0/18, 217.16.128.0/17, 217.17.0.0/16, 217.18.0.0/15, 217.20.0.0/17, 217.20.128.0/20, 217.20.160.0/19, 217.20.192.0/18, 217.21.0.0/16, 217.22.0.0/15, 217.24.0.0/13, 217.32.0.0/11, 217.64.0.0/14, 217.68.0.0/16, 217.69.0.0/17, 217.69.144.0/20, 217.69.160.0/19, 217.69.192.0/18, 217.70.0.0/15, 217.72.0.0/13, 217.80.0.0/12, 217.96.0.0/11, 217.128.0.0/11, 217.160.0.0/13, 217.168.0.0/14, 217.172.0.0/15, 217.174.0.0/17, 217.174.128.0/19, 217.174.160.0/20, 217.174.176.0/21, 217.174.184.0/22, 217.174.192.0/18, 217.175.0.0/16, 217.176.0.0/12, 217.192.0.0/10, 218.0.0.0/7, 220.0.0.0/6, 224.0.0.0/3 -``` -
-Утилита, где самому можно добавить ещё свои адреса в исключения: https://www.procustodibus.com/blog/2021/03/wireguard-allowedips-calculator/ +Переменные окружения: -Конфиг WG с изменённым полем `AllowedIPs` добавить в любом клиенте WG и запустить. +| Переменная | По умолчанию | Описание | +| --- | --- | --- | +| `CONNECT_ADDR` | обязательна | backend, куда сервер пересылает трафик | +| `LISTEN_ADDR` | `0.0.0.0:56000` | адрес прослушивания сервера | +| `VLESS_MODE` | `false` | включает `-vless` | +| `VLESS_BOND` | `false` | включает `-vless-bond` | +| `WRAP_MODE` | `false` | включает `-wrap` | +| `WRAP_KEY` | пусто | ключ для `-wrap-key` | -#### Linux +Сборка образа вручную: -В клиентском конфиге WireGuard меняем адрес сервера на `127.0.0.1:9000`, ставим MTU 1280 +```bash +docker build -t vk-turn-proxy . +``` -Скрипт будет добавлять маршруты к нужным ip: +## VLESS / Xray -``` -./client-linux -peer :56000 -vk-link -listen 127.0.0.1:9000 | sudo routes.sh -``` +В режиме `-vless` VK TURN Proxy прокидывает TCP-соединения. На VPS `server` подключается к локальному TCP backend, например к Xray inbound на `127.0.0.1:443`. На клиенте `client` слушает локальный TCP адрес, на который должен смотреть ваш Xray/v2rayN/sing-box клиент. -``` -./client-linux -udp -turn 5.255.211.241 -peer :56000 -yandex-link -listen 127.0.0.1:9000 | sudo routes.sh +Сервер: + +```bash +./server -listen 0.0.0.0:56000 -connect 127.0.0.1:443 -vless ``` -Не включайте впн, пока программа не установит соединение! В отличие от андроида, здесь часть запросов будет идти через впн (dns и запрос подключения к turn) +Клиент: -#### macOS +```bash +./client -listen 127.0.0.1:9000 -peer :56000 -vk-link "" -vless +``` -См. [клиенты](#macos). +С bonding: -**Альтернативный способ (через Terminal):** +```bash +./server -listen 0.0.0.0:56000 -connect 127.0.0.1:443 -vless -vless-bond +./client -listen 127.0.0.1:9000 -peer :56000 -vk-link "" -vless -vless-bond -n 4 +``` -- В клиентском конфиге WireGuard меняем адрес сервера на 127.0.0.1:9000, ставим MTU 1280. -- Добавляем Terminal в исключения WireGuard. Нажимаем "сохранить". +## WRAP-Режим -В Terminal: +`-wrap` дополнительно оборачивает DTLS-пакеты ChaCha20-XOR перед отправкой в TURN ChannelData. Ключ должен совпадать на клиенте и сервере. -Скачать бинарник (Apple Silicon): +Сгенерировать ключ: ```bash -curl -L -o client https://github.com/cacggghp/vk-turn-proxy/releases/latest/download/client-darwin-arm64 && chmod +x client +./server -gen-wrap-key ``` -Скачать бинарник (Intel): +Запуск: ```bash -curl -L -o client https://github.com/cacggghp/vk-turn-proxy/releases/latest/download/client-darwin-amd64 && chmod +x client +./server -listen 0.0.0.0:56000 -connect 127.0.0.1:51820 -wrap -wrap-key <64-hex-key> +./client -listen 127.0.0.1:9000 -peer :56000 -vk-link "" -wrap -wrap-key <64-hex-key> ``` -Запустить клиент +`-wrap` нельзя использовать вместе с `-no-dtls`. + +## Яндекс Телемост + +Поддержка `-yandex-link` оставлена в коде, но этот режим считается нестабильным и может не работать. Если используете его, обычно нужен `-udp` и ручной TURN IP: ```bash -./client -listen 127.0.0.1:9000 -peer :56000 -vk-link -``` +./client -udp -turn 5.255.211.241 -listen 127.0.0.1:9000 -peer :56000 -yandex-link "" +``` + +## Флаги Клиента + +| Флаг | По умолчанию | Описание | +| --- | --- | --- | +| `-listen` | `127.0.0.1:9000` | локальный адрес для WireGuard или Xray клиента | +| `-peer` | обязательный | адрес VK TURN Proxy server на VPS, например `:56000` | +| `-vk-link` | пусто | ссылка VK Calls | +| `-yandex-link` | пусто | ссылка Яндекс Телемоста, legacy-режим | +| `-n` | VK: `10`, Yandex: `1` | количество TURN-соединений | +| `-udp` | `false` | подключаться к TURN-реле по UDP вместо TCP | +| `-turn` | из ссылки | переопределить IP TURN-сервера | +| `-port` | из ссылки | переопределить порт TURN-сервера | +| `-vless` | `false` | TCP/VLESS режим | +| `-vless-bond` | `false` | распределять одно TCP-соединение по активным smux-сессиям | +| `-wrap` | `false` | включить WRAP-обфускацию | +| `-wrap-key` | пусто | 32-байтный ключ в hex, 64 символа | +| `-gen-wrap-key` | `false` | напечатать новый WRAP-ключ и выйти | +| `-manual-captcha` | `false` | сразу использовать ручное прохождение captcha | +| `-captcha-solver` | `v2` | авто-решатель captcha: `v1` или `v2` | +| `-streams-per-cred` | `10` | сколько потоков используют один кеш TURN-учетных данных | +| `-debug` | `false` | подробные логи | +| `-no-dtls` | `false` | прямой режим без DTLS, не рекомендуется | + +Нужно указать ровно одну ссылку: `-vk-link` или `-yandex-link`. + +## Флаги Сервера + +| Флаг | По умолчанию | Описание | +| --- | --- | --- | +| `-listen` | `0.0.0.0:56000` | адрес прослушивания | +| `-connect` | обязательный | backend-адрес, например `127.0.0.1:51820` или `127.0.0.1:443` | +| `-vless` | `false` | TCP/VLESS режим | +| `-vless-bond` | `false` | bonding для VLESS | +| `-wrap` | `false` | включить WRAP-обфускацию | +| `-wrap-key` | пусто | 32-байтный ключ в hex, 64 символа | +| `-gen-wrap-key` | `false` | напечатать новый WRAP-ключ и выйти | + +## Captcha + +Для VK Calls клиент умеет автоматически проходить captcha. Если автоматика не сработала, включается ручной сценарий через локальный браузер. Можно сразу запросить ручной режим: +```bash +./client -manual-captcha -listen 127.0.0.1:9000 -peer :56000 -vk-link "" +``` -#### Windows +Профиль браузера сохраняется в `vk_profile.json` рядом с бинарником и может помочь последующим запросам выглядеть последовательнее. -В клиентском конфиге WireGuard меняем адрес сервера на `127.0.0.1:9000`, ставим MTU 1280 +## Сборка Из Исходников -В PowerShell от Администратора (чтобы скрипт прописывал маршруты): +Нужен Go 1.25.x. -``` -./client.exe -peer :56000 -vk-link -listen 127.0.0.1:9000 | routes.ps1 +```bash +go build -o client ./client +go build -o server ./server +go test ./... ``` -``` -./client.exe -udp -turn 5.255.211.241 -peer :56000 -yandex-link -listen 127.0.0.1:9000 | routes.ps1 -``` +Кросс-сборка примера для Linux amd64: -Не включайте впн, пока программа не установит соединение! В отличие от андроида, здесь часть запросов будет идти через впн (dns и запрос подключения к turn) - -## Решение проблем - -Если у вас возникли трудности с подключением, попробуйте следующие шаги: - -- **DNS ошибки**: Если после включения VPN вылезают ошибки DNS, попробуйте в Wireguard включить VPN только для нужных приложений. -- **Порядок включения**: Не включайте VPN, пока программа не установит соединение! Часть запросов (DNS и запрос к TURN) должна пройти без туннеля. -- **Флаг `-udp`**: Если не работает стандартный режим (TCP), попробуйте добавить флаг `-udp`. -- **Ручной TURN**: С помощью опции `-turn` можно указать адрес TURN сервера вручную. Это должен быть сервер ВК или Яндекса. -- **Стабильность**: Добавьте флаг `-n 1` для более стабильного подключения (ограничение 5 МБит/с для ВК). -- **Капча**: - - Для прохождения капчи вручную используйте флаг `-manual-captcha`. - - По умолчанию работает **Slider Solver** (авто-решение пазла). - - При ручном решении сохраняется отпечаток браузера в `vk_profile.json` для последующих авто-запросов. - ---- - -## Дополнительные режимы - -### Яндекс Телемост -> [!WARNING] -> **UPD. ТЕЛЕМОСТ ЗАКРЫЛИ** (временно или постоянно). - -В отличие от ВК, сервера Яндекса не ограничивали скорость, поэтому по умолчанию стоит `-n 1`. -- В режиме `-udp` скорость обычно выше. -- Большинство диапазонов IP TURN серверов Яндекса не работают, указывайте рабочие вручную через `-turn`. - -
-Рабочие IP Яндекса (для справки) - -5.255.211.241 -5.255.211.242 -5.255.211.243 -5.255.211.245 -5.255.211.246 -
- -Спасибо https://github.com/KillTheCensorship/Turnel за часть кода :) - -### v2ray / Xray -Вместо WireGuard можно использовать любое V2Ray-ядро, которое его поддерживает (например, xray или sing-box) и любой V2Ray-клиент, который использует это ядро (например, v2rayN или v2rayNG). С помощью их вы сможете добавить больше входящих интерфейсов (например, SOCKS) и реализовать точечный роутинг. - -Пример конфигов: - -
- - -Клиент - - -```json -{ - "inbounds": [ - { - "protocol": "socks", - "listen": "127.0.0.1", - "port": 1080, - "settings": { - "udp": true - }, - "sniffing": { - "enabled": true, - "destOverride": ["http", "tls"] - } - }, - { - "protocol": "http", - "listen": "127.0.0.1", - "port": 8080, - "sniffing": { - "enabled": true, - "destOverride": ["http", "tls"] - } - } - ], - "outbounds": [ - { - "protocol": "wireguard", - "settings": { - "secretKey": "", - "peers": [ - { - "endpoint": "127.0.0.1:9000", - "publicKey": "" - } - ], - "domainStrategy": "ForceIPv4", - "mtu": 1280 - } - } - ] -} +```bash +GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -o server-linux-amd64 ./server +GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -o client-linux-amd64 ./client ``` -
- -
- - -Сервер - - -```json -{ - "inbounds": [ - { - "protocol": "wireguard", - "listen": "0.0.0.0", - "port": 51820, - "settings": { - "secretKey": "", - "peers": [ - { - "publicKey": "" - } - ], - "mtu": 1280 - }, - "sniffing": { - "enabled": true, - "destOverride": ["http", "tls"] - } - } - ], - "outbounds": [ - { - "protocol": "freedom", - "settings": { - "domainStrategy": "UseIPv4" - } - } - ] -} -``` +## Решение Проблем -
+- Сначала запускайте VK TURN Proxy client, потом включайте WireGuard. +- Если WireGuard забирает весь трафик, добавьте маршрут до IP TURN-реле через `routes.sh`, `routes.ps1` или `routes-macos.sh`. +- Если TCP до TURN не работает, попробуйте `-udp`. +- Если соединение нестабильное, попробуйте уменьшить `-n`, например `-n 1`. +- Если VK просит captcha слишком часто, попробуйте `-manual-captcha`, затем повторите обычный запуск. +- Если клиент зависает на получении TURN-данных, проверьте, что ссылка VK Calls живая и не была завершена для всех. +- Если сервер запущен в Docker bridge mode, `CONNECT_ADDR=127.0.0.1:51820` укажет внутрь контейнера, а не на хост. Используйте host network или IP хоста. +- Если включен `-wrap`, убедитесь, что и клиент, и сервер используют одинаковый `-wrap-key`. -### VLESS-режим -Можно использовать VLESS через флаг `-vless`. В этом режиме вместо UDP-пакетов пробрасываются TCP-соединения через TURN-туннель с помощью KCP и smux. +## Похожие Проекты -### Настройка -1. На VPS установить Xray с VLESS inbound -2. Запустить `server` с флагом `-vless` -3. На клиенте запустить `client` с флагом `-vless` -4. Настроить Xray/v2rayN клиент с VLESS outbound на `127.0.0.1:9000` +Авторы этого репозитория не отвечают за работу сторонних проектов. -### Сервер (VPS) -``` -./server -listen 0.0.0.0:56000 -connect 127.0.0.1:443 -vless -``` +Server: -#### Docker -``` -docker run -p 56000:56000/udp -e CONNECT_ADDR=127.0.0.1:443 -e VLESS_MODE=true vk-turn-proxy -``` +- https://github.com/Urtyom-Alyanov/turn-proxy - реализация на Rust. +- https://github.com/jaykaiperson/lionheart - похожий подход для `stream.wb.ru`. +- https://github.com/kulikov0/whitelist-bypass - проброс через медиасерверы. +- https://github.com/NedgNDG/vk-proxy-auto-installer - автоустановщик VK TURN Proxy. -### Клиент -``` -./client -peer :56000 -vk-link -listen 127.0.0.1:9000 -vless -``` +Android: -
- - -Xray клиент (config.json) - - -```json -{ - "inbounds": [ - { - "protocol": "socks", - "listen": "127.0.0.1", - "port": 1080, - "settings": { - "udp": true - }, - "sniffing": { - "enabled": true, - "destOverride": ["http", "tls"] - } - } - ], - "outbounds": [ - { - "protocol": "vless", - "settings": { - "vnext": [ - { - "address": "127.0.0.1", - "port": 9000, - "users": [ - { - "id": "", - "encryption": "none" - } - ] - } - ] - }, - "streamSettings": { - "network": "tcp", - "security": "none" - } - } - ] -} -``` +- https://github.com/samosvalishe/turn-proxy-android +- https://github.com/MYSOREZ/vk-turn-proxy-android +- https://github.com/kiper292/wireguard-turn-android +- https://github.com/WINGS-N/WINGSV +- https://github.com/oxsidee/vkpn +- https://github.com/amurcanov/proxy-turn-vk-android -
- -
- - -Xray сервер (config.json) - - -```json -{ - "inbounds": [ - { - "protocol": "vless", - "listen": "127.0.0.1", - "port": 443, - "settings": { - "clients": [ - { - "id": "<тот же UUID>", - "level": 0 - } - ], - "decryption": "none" - } - } - ], - "outbounds": [ - { - "protocol": "freedom", - "settings": { - "domainStrategy": "UseIPv4" - } - } - ] -} -``` +iOS: -
+- https://github.com/nullcstring/turnbridge +macOS: -### Direct mode -С флагом `-no-dtls` можно отправлять пакеты без обфускации DTLS и подключаться к обычным серверам Wireguard. Может привести к бану от вк/яндекса. +- https://github.com/denny4-user/vk-turn-proxy-macos-gui + +## Лицензия + +GPL-3.0. См. [LICENSE](LICENSE). @@ -556,4 +395,3 @@ Xray сервер (config.json) Star History Chart -