Files
free-turn-proxy/docs/modes.md
T
samosvalishe 065385e656 feat(installer): раздача QR-кодов и конфигов по веб-ссылкам без вывода в терминал
- Полный отказ от вывода громоздких QR-кодов в терминал
- Автоматический фоновый веб-сервер для раздачи файлов и картинок QR из каталога clients
- Компактная карточка M3 со списком прямых кликабельных ссылок и каталогом файлов
- Прямой вывод ссылок на первого клиента в финальной рамке без подтверждения
- Добавлена опция --web-port (по умолчанию 8080) и сохранение в install.conf
- Обновлена документация и CLI команды freeturn client qr
2026-09-07 19:17:35 +03:00

96 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Режимы
## UDP-Релей (WireGuard / AmneziaWG / Hysteria)
Дефолтный режим (`-mode udp`). Клиент слушает локальный UDP-порт, сервер прозрачно форвардит UDP-пакеты в backend (например, WG `127.0.0.1:51820`).
Отлично подходит для VPN-протоколов, работающих поверх UDP: **WireGuard, AmneziaWG, Hysteria**.
## Прямой туннель (Direct AWG)
Если на VPS поднят сервис `freeturn-awg` и порт `51820/udp` открыт наружу, клиенты AmneziaWG/AmneziaVPN подключаются **напрямую к серверу**, минуя релей:
- **VK Calls не участвует**: звонки и TURN-серверы не используются, клиент подключается напрямую к VPS.
- **Маскировка**: вместо `rtpopus3` работает встроенная обфускация **AmneziaWG 3.1** (`Jc`, `Jmin`, `Jmax`, `S1`..`S4`, `H1`..`H4`, `HeaderProtectionKey`).
- **Скорость и пинг**: нативный прямой UDP без накладных расходов релея.
- **Импорт**: импорт конфига или сканирование QR-кода по веб-ссылке (`freeturn client qr <name>`).
## TCP-Форвардер (Xray / sing-box / VLESS)
Включается флагом `-mode tcp` на обеих сторонах. Сервер подключается к локальному TCP-бэкенду (например, Xray inbound `127.0.0.1:443`). Клиент слушает локальный TCP-порт, на который вы натравливаете свой Xray/v2rayN/sing-box.
Подходит для TCP-прокси: **VLESS, VMess, Trojan, Shadowsocks**.
Relayed-данные TURN - всегда датаграммы, даже при `-transport tcp`, поэтому поверх DTLS трафик инкапсулируется через KCP (ARQ) + smux. Тюнинг ARQ - флаги `-kcp-*` (см. `docs/flags.md`).
```bash
./server -listen 0.0.0.0:56000 -connect 127.0.0.1:443 -mode tcp
./client -listen 127.0.0.1:9000 -peer <vps>:56000 -link "<vk-link>" -mode tcp
```
`-n` в этом режиме задаёт число сессий пула: каждое локальное TCP-соединение уходит целиком в одну из них (round-robin).
Встроенный WireGuard (`-tunnel`) с `-mode tcp` не сочетается: он гонит датаграммы.
Режим должен совпадать на обеих сторонах: клиент помечает им первую запись, и сервер с другим `-mode` закрывает соединение с явной ошибкой вместо молчаливого зависания.
## OBF (wire-профили обфускации)
> [!WARNING]
> **Обфускация обязательна для хорошей скорости.** VK агрессивно шейпит (режет) любой трафик, который не похож на медиаданные звонка (даже если он зашифрован в DTLS). Обфускация маскирует ваши пакеты под голосовой RTP-трафик, позволяя обходить шейпинг.
`-obf-profile` выбирает wire-профиль маскировки TURN-payload. Профиль и ключ должны совпадать на клиенте и сервере.
Доступные профили:
- **`rtpopus3`** (рекомендуется) - RTP/opus + RFC 8285 extension (`ssrc-audio-level` + `transport-cc`) + ChaCha20-Poly1305. Полная эмуляция современного WebRTC-аудиопотока звонков VK.
- **`rtpopus2`** - RTP/opus + базовый RFC 8285 header extension.
- **`rtpopus`** - базовый RTP/opus-заголовок + ChaCha20-Poly1305 AEAD.
- **`none`** - обфускация выключена (скорость может быть сильно урезана шейпингом).
Сгенерировать ключ:
```bash
./server -gen-obf-key
```
Запуск:
```bash
./server ... -obf-profile rtpopus3 -obf-key <64-hex>
./client ... -obf-profile rtpopus3 -obf-key <64-hex>
```
## TURN Транспорт
По умолчанию клиент подключается к TURN-реле по TCP/TLS. Флаг `-transport udp` переключает на UDP:
```bash
./client ... -transport udp
```
> [!WARNING]
> Транспорт UDP часто режется или блокируется системами DPI (особенно на мобильных операторах). Если у вас нестабильная связь - используйте стандартный TCP/TLS (просто не указывайте этот флаг).
## Потоки и Лимиты (-n)
Параметр `-n` задает количество параллельных потоков к TURN-серверу (по умолчанию 10).
Увеличение потоков может помочь поднять скорость или улучшить стабильность, **но не стоит этим злоупотреблять**. Слишком высокое значение (например, больше 15-20) повышает риск получения бана со стороны VK. Практика показывает, что значений от `6` до `12` зачастую достаточно для комфортной работы.
То же самое касается параметра `-streams-per-cred` - используйте разумные значения.
## Captcha
Клиент сам проходит VK captcha. Если автоматика не справилась - открывается локальный браузер. Принудительно ручной:
```bash
./client -manual-captcha ...
```
Персона auth-запросов (UA + TLS JA3 + client hints + порядок заголовков + device) - всегда Chrome; флаг `-platform` выбирает класс устройства (desktop/mobile). Значения самосогласованы, без внешнего состояния. Ручная captcha ходит на VK через ту же персону.
## DNS
Флаг `-dns-mode` управляет транспортом резолвера самого клиента (VK API, токены, captcha) - не DNS-маршрутизацией пользовательского трафика.
- `plain` - только UDP/53;
- `doh` - только DNS-over-HTTPS (Yandex DoH);
- `auto` (дефолт) - сначала UDP/53, sticky-fallback на DoH при полном отказе.
Свои UDP/53 резолверы: `-dns-servers ip[:port][,ip[:port]...]`.