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