Files
free-turn-proxy/docs/modes.md
T
samosvalishe 74241de764 break!: выпил tcp-режим туннеля
убраны флаги -mode и -bond: остался только udp-релей для wireguard.
удалены tcpfwd, tcpfwdserver, bondclient, bondserver, bondframe, kcptun,
wire/relay; proxy/common переехал в udprelay/dial.

BREAKING CHANGE: флаги -mode и -bond удалены; конфиги и ссылки freeturn://
с tcp-режимом больше не принимаются.
2026-08-17 00:27:23 +03:00

4.4 KiB

Режимы

UDP-Релей (WireGuard / AmneziaWG / Hysteria)

Клиент слушает локальный UDP-порт, сервер прозрачно форвардит UDP-пакеты в backend (например, WG 127.0.0.1:51820). Отлично подходит для VPN-протоколов, работающих поверх UDP: WireGuard, AmneziaWG, Hysteria.

OBF (wire-профили обфускации)

Warning

Обфускация обязательна для хорошей скорости. VK агрессивно шейпит (режет) любой трафик, который не похож на медиаданные звонка (даже если он зашифрован в DTLS). Обфускация маскирует ваши пакеты под голосовой RTP-трафик, позволяя обходить шейпинг.

-obf-profile выбирает wire-профиль маскировки TURN-payload. Профиль и ключ должны совпадать на клиенте и сервере.

Доступные профили:

  • none (default) - обфускация выключена (скорость может быть сильно урезана).
  • rtpopus - RTP/opus-заголовок + ChaCha20-Poly1305 AEAD на теле. Идеально для обхода шейпов.
  • rtpopus2 - rtpopus + RTP header extension (RFC 8285): X=1, ssrc-audio-level + transport-cc. Ближе к современному WebRTC. Wire несовместим с rtpopus - профиль должен совпадать на обеих сторонах.

Сгенерировать ключ:

./server -gen-obf-key

Запуск:

./server ... -obf-profile rtpopus -obf-key <64-hex>
./client ... -obf-profile rtpopus -obf-key <64-hex>

TURN Транспорт

По умолчанию клиент подключается к TURN-реле по TCP/TLS. Флаг -transport udp переключает на UDP:

./client ... -transport udp

Warning

Транспорт UDP часто режется или блокируется системами DPI (особенно на мобильных операторах). Если у вас нестабильная связь - используйте стандартный TCP/TLS (просто не указывайте этот флаг).

Потоки и Лимиты (-n)

Параметр -n задает количество параллельных потоков к TURN-серверу (по умолчанию 10). Увеличение потоков может помочь поднять скорость или улучшить стабильность, но не стоит этим злоупотреблять. Слишком высокое значение (например, больше 15-20) повышает риск получения бана со стороны VK. Практика показывает, что значений от 6 до 12 зачастую достаточно для комфортной работы. То же самое касается параметра -streams-per-cred - используйте разумные значения.

Captcha

Клиент сам проходит VK captcha. Если автоматика не справилась - открывается локальный браузер. Принудительно ручной:

./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]...].