Быстрая автонастройка сервера

Настрой TURN сервер за 1 минуту

Ультрабыстрый TURN/STUN сервер нового поколения со встроенной выдачей токенов через HTTP API, автоматическим обнаружением NAT, многоядерным масштабированием сокетов и защитой от SSRF.

$ curl -fsSL https://raw.githubusercontent.com/slyber-app/slyber-turn-server/main/install.sh | sudo bash
Документация Slyber Turn Server на GitHub
SLYBER TURN :3478 UDP / TLS :443 HMAC REST AUTH SYMMETRIC NAT BYPASSED
Деплой за 30 секунд
Никаких внешних баз данных и конфигурационных лабиринтов — установка systemd-сервиса, правил файрвола и sysctl-тюнинга одной командой.
Встроенный HTTP API
Готовый к использованию REST-эндпоинт /api/turn-credentials с поддержкой CORS и Rate Limiting.
Защита от SSRF-атак
Блокировка приватных сетей RFC 1918, loopback и облачных метаданных на уровне ядра с полной поддержкой TURN Hairpinning.
Встроенный Doctor и Benchmark
Встроенные утилиты slyber_turn doctor и slyber_turn bench для проверки сетевой связности, потерь пакетов, RTT и джиттера по RFC 3550.
Архитектурное превосходство

Все, что нужно для идеального WebRTC-соединения в одном бинарнике

От работы с сетевыми сокетами Linux до криптографии и телеметрии — спроектировано на Go для минимальной задержки.

01 / 03
Kernel & Network Tuning

Экстремальная производительность на базе Go и SO_REUSEPORT

Масштабирование UDP-листенеров по ядрам CPU через SO_REUSEPORT, автотюнинг буферов сокетов до 8 МБ и lock-free шейпинг трафика.

Zero-allocation аутентификация (~0 аллокаций в куче на пакет)
Zero Trust Security

Бронебойная защита от SSRF и атак на инфраструктуру

Многоуровневая фильтрация пиров блокирует доступ к loopback, локальным подсетям RFC 1918 и метаданным облачных провайдеров.

Автоматический трекинг атакующих IP
Turnkey REST API

Встроенный HTTP/HTTPS API выдачи ключей

Готовый к работе эндпоинт /api/turn-credentials с CORS-валидацией поддоменов и IP-фильтрами.

Поддержка X-Turn-Secret, Bearer-токенов и CIDR-масок
QA & Diagnostics

Самодиагностика Doctor и встроенный медиа-бенчмарк

Встроенные команды slyber_turn doctor и slyber_turn bench для проверки NAT, аллокации портов и замера джиттера по RFC 3550.

Экспорт отчетов бенчмарка в консоль или JSON для CI/CD
Observability & Persistence

Глубокая телеметрия, Prometheus-метрики и умный роуминг

Экспорт метрик Prometheus (/metrics), живой список сессий (/api/node-stats), дедупликация событий и сохранение истории на диск.

Умное определение смены сети Wi-Fi ↔ 4G/5G за 5 секунд
Zero-Config NAT & TLS

STUN Auto-Discovery и горячая перезагрузка TLS

Автоматическое обнаружение публичного IP по протоколу STUN и бесшовное обновление TLS-сертификатов без обрыва звонков.

Обход жестких корпоративных файрволов по TCP/TLS
Интеграция за 4 шага

Как развернуть и интегрировать Slyber Turn

От чистой Linux-машины до полностью защищенного продакшен TURN-сервера с мониторингом и нагрузочным отчетом — менее чем за 1 минуту.

01 / 02
ШАГ 01 · Установка

Разверните сервер одной командой

Скрипт определит архитектуру процессора (amd64/arm64), проверит контрольную сумму SHA256, увеличит сетевые буферы ядра sysctl, сгенерирует криптостойкий TURN_SECRET в /opt/slyber_turn/.env, откроет порты в файрволе и запустит systemd-службу.

ШАГ 01
curl -fsSL https://raw.githubusercontent.com/slyber-app/slyber-turn-server/main/install.sh | sudo bash
ШАГ 02 · Диагностика

Проверьте сеть и NAT через встроенный Doctor

Утилита doctor автоматически проверит конфигурацию, сверит ваш внешний IP через публичные STUN-серверы, опросит эндпоинт /healthz и выполнит реальную тестовую TURN-аллокацию из пула портов 49152–65535.

ШАГ 02
sudo slyber_turn doctor
ШАГ 03 · Интеграция в код

Подключите WebRTC-клиентов через HTTP API

Подключите выдачу временных учетных данных напрямую через защищенный CORS HTTP-эндпоинт сервера или используйте официальный пакет pkg/turnclient в вашем Go-бэкенде для мгновенной локальной генерации токенов.

ШАГ 03
// Вариант А: Получение ICE-конфига во фронтенде через встроенный HTTP API
const res = await fetch('https://turn.yourdomain.com:8080/api/turn-credentials?user_id=user_777');
const ice = await res.json();
const pc = new RTCPeerConnection({
  iceServers: [{ urls: ice.uris, username: ice.username, credential: ice.password }]
});
ШАГ 04 · Бенчмарк и Мониторинг

Протестируйте под нагрузкой и включите телеметрию

Запустите встроенный нагрузочный тест для проверки пропускной способности, потерь пакетов, RTT (p50/p95/p99) и медиа-джиттера перед подачей реального трафика, а затем подключите /metrics к вашему Prometheus или читайте живую статистику из /api/node-stats.

ШАГ 04
sudo slyber_turn bench -clients 20 -duration 5s -size 1200 -pps 50
Спецификации

Полные технические характеристики Slyber Turn Server

Системные требования, поддерживаемые стандарты RFC и телеметрия.

Поддерживаемые протоколы и стандарты
STUN (RFC 5389), TURN Relay UDP / TCP / TLS (RFC 5766, RFC 6062), TURN REST API (ephemeral HMAC-SHA1), Расчет джиттера по RFC 3550
Сетевые порты по умолчанию
3478/UDP и 3478/TCP (STUN/TURN), 5349/TCP (TURNS / TLS 1.2+), 8080/TCP (HTTP/HTTPS API), 49152–65535/UDP (пул релейных портов — 16 384 сессии)
Оптимизация сокетов и многопоточность
Масштабирование UDP-листенеров через SO_REUSEPORT по числу ядер CPU (TURN_THREADS), буферы ядра SO_RCVBUF/SO_SNDBUF до 8 МБ (control) и 1 МБ (relay)
Аутентификация и криптография
Stateless HMAC-SHA1 (формат timestamp:user_id) с нулевыми аллокациями в куче, Constant-Time проверка X-Turn-Secret / Bearer, настраиваемый TTL (по умолчанию 7200 сек)
Защита от SSRF и сетевая фильтрация
Блокировка 127.0.0.0/8, ::1, 0.0.0.0/8, Cloud Metadata (169.254.0.0/16, fd00:ec2::254/128), RFC 1918, CGNAT (100.64.0.0/10) и IP хоста; поддержка TURN Hairpinning и IP/CIDR Allowlist
Управление полосой пропускания (QoS)
Неблокирующий (Lock-Free CAS) Token Bucket шейпер трафика на каждую аллокацию (MAX_KBPS_PER_SESSION / MAX_BPS_PER_ALLOCATION) с окном 10 мс
TLS и управление сертификатами
TLS 1.2+ для TURNS и HTTPS API; автоматический Hot-Reload сертификатов с диска каждую минуту без рестарта; генерация Self-Signed ECDSA P-256 одной настройкой
Встроенный HTTP API и мониторинг
GET /api/turn-credentials, GET /api/node-stats (JSON-телеметрия и 24ч история), GET /metrics (формат Prometheus), GET /events (Smart Event Logger), GET /healthz
Инструменты CLI и самодиагностика
slyber_turn server (основной демон), slyber_turn doctor (STUN-проверка NAT, Self-Test и Live Probe), slyber_turn bench (нагрузочный тест RTT/Loss/Jitter с JSON-отчетом)
Поддерживаемые платформы и деплой
Linux (x86_64 / amd64, aarch64 / arm64), автоинсталлятор systemd с проверкой SHA256SUMS, автоматической настройкой UFW / firewalld и персистентностью состояния на диск
Сценарии применения

Где Slyber Turn раскрывает максимум возможностей

01 / 03
01 UCaaS & Корпоративная связь

Видеоконференции и защищенные корпоративные мессенджеры

Гарантированное соединение сотрудников в закрытых банковских и корпоративных сетях, где заблокирован UDP-трафик, за счет автоматического фоллбэка на TURN over TCP и TLS (порт 5349).

02 Telehealth & EdTech

Телемедицина и интерактивные образовательные платформы

Стабильные видеоконсультации «врач — пациент» и онлайн-уроки без обрывов при переключении смартфона с домашнего Wi-Fi на мобильную сеть 4G/5G благодаря быстрому детектированию смены сокета.

03 Low Latency Streaming

Cloud Gaming, удаленные рабочие столы (VDI) и стриминг

Ультранизкий джиттер и отсутствие буферизации при передаче интерактивного видеопотока и команд управления за счет увеличенных ядерных буферов сокетов (8 МБ) и многопоточности SO_REUSEPORT.

04 AI Voice & Video Agents

Голосовые и видео ИИ-агенты реального времени

Надежная доставка двустороннего аудиопотока с минимальной задержкой между браузером/приложением пользователя и серверными голосовыми ИИ-ассистентами (Realtime Multimodal AI Agents).

05 IoT & Robotics

Видеонаблюдение, умный дом и телеметрия дронов

Безопасный проброс видеопотока с IP-камер, умных домофонов, дронов и промышленных роботов, работающих за симметричным операторским CGNAT сотовых сетей по всему миру.

06 FinTech & Remote KYC

Банковская видеоидентификация (KYC) и контакт-центры

Контролируемая полоса пропускания (MAX_KBPS_PER_SESSION), строгая изоляция внутренней инфраструктуры от SSRF-атак и полный аудит событий авторизации для соответствия требованиям безопасности.

База знаний и FAQ

Часто задаваемые вопросы о Slyber Turn

Ответы на частые технические вопросы инженеров по архитектуре, безопасности, нагрузочному тестированию и миграции с классических TURN-серверов.

Чем Slyber Turn Server отличается от классического coturn? +
В отличие от устаревшего coturn, который требует сложной настройки десятков флагов, внешних скриптов для выдачи токенов и сторонних экспортеров, Slyber Turn поставляется как единый статический Go-бинарник по принципу «всё включено». Он уже содержит встроенный HTTP/HTTPS API для выдачи временных учетных данных (/api/turn-credentials), автоматическое определение внешнего IP через STUN (PUBLIC_IP=auto), строгую защиту от SSRF «из коробки», встроенный нагрузочный бенчмарк (slyber_turn bench), утилиту самодиагностики (slyber_turn doctor) и нативную телеметрию Prometheus.
Как выдавать временные учетные данные (TURN credentials) клиентам в браузере и мобильных приложениях? +
Сервер поддерживает два режима работы. Первый — встроенный HTTP API (/api/turn-credentials), который защищен проверкой CORS (Origin с поддержкой поддоменов), белыми списками IP/CIDR, встроенным Rate Limiter (Token Bucket) и заголовком X-Turn-Secret. Второй — полностью локальная (stateless) генерация на стороне вашего бэкенда с помощью нашего Go SDK (pkg/turnclient) по стандарту TURN REST API (HMAC-SHA1 от timestamp:user_id) без единого сетевого запроса к TURN-серверу.
Защищен ли сервер от SSRF-атак и сканирования внутренней сети облачного провайдера? +
Да, защита от SSRF (Server-Side Request Forgery) встроена на уровне ядра (PeerFilter) и активна по умолчанию. Сервер автоматически блокирует любые попытки релея на loopback (127.0.0.1, ::1), приватные подсети RFC 1918 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), CGNAT и адреса облачных метаданных AWS/GCP/DigitalOcean (169.254.169.254, fd00:ec2::254), а также защищает локальные сетевые интерфейсы самого хоста. При этом корректно поддерживается TURN Hairpinning для связи двух клиентов через публичный IP одного и того же сервера.
Какую нагрузку выдерживает сервер и как он оптимизирован под высоконагруженный медиа-трафик? +
На ОС Linux Slyber Turn использует масштабирование сокетов через SO_REUSEPORT, создавая независимые UDP-листенеры по числу ядер процессора (параметр TURN_THREADS), а также автоматически увеличивает буферы ядра SO_RCVBUF и SO_SNDBUF до 8 МБ для управляющих сокетов и до 1 МБ для каждого релейного порта. Учет трафика ведется с батчингом по 64 КБ, а ограничение скорости (MAX_KBPS_PER_SESSION) реализовано через неблокирующий атомарный алгоритм CAS Token Bucket без мьютексов.
Как проверить реальную пропускную способность, задержку (RTT) и джиттер сервера перед запуском в продакшен? +
В Slyber Turn встроена профессиональная утилита нагрузочного тестирования: достаточно выполнить команду «slyber_turn bench -clients 40 -duration 10s». Она поднимет реальные конкурентные TURN-аллокации, прогонит двусторонний UDP-поток и выдаст детальный отчет (в текстовом или JSON-формате) со временем аллокации, пропускной способностью в Мбит/с, процентом потерь пакетов, перцентилями задержки (RTT p50/p95/p99), односторонней задержкой релея и медиа-джиттером по стандарту RFC 3550.
Как сервер обрабатывает переключение пользователя между сетями (Wi-Fi ↔ 4G/5G) во время звонка? +
При переключении мобильного клиента с Wi-Fi на 4G/5G (ICE Restart) стандартные TURN-серверы продолжают удерживать старый «мертвый» сокет до истечения длинного таймаута, искажая статистику и занимая порты. Slyber Turn отслеживает активность потоков в реальном времени: как только у того же user_id появляется свежий активный сокет в новой сети, старый замолчавший сокет автоматически помечается как замещенный уже через 5 секунд тишины.
Поддерживается ли шифрование TLS (turns:) и нужно ли перезапускать сервер при обновлении SSL-сертификатов? +
Сервер поддерживает полноценный TURN over TLS (turns: на порту 5349 по умолчанию) и HTTPS для встроенного API. Модуль reloadableCert автоматически проверяет время модификации файлов сертификата на диске раз в минуту и выполняет горячую перезагрузку (Hot-Reload) ключей Let's Encrypt без перезапуска процесса и без обрыва текущих аудио/видеозвонков. Для тестовых стендов также доступна автогенерация самоподписанного сертификата ECDSA P-256 флагом TLS_SELF_SIGNED=true.
Как настроить сервер за NAT в облаке (AWS, GCP, Hetzner), если публичный IP неизвестен заранее? +
Если ваш сервер находится за 1:1 NAT (например, в AWS EC2, Google Cloud или Yandex Cloud), вам не нужно искать и прописывать внешний IP вручную. Достаточно оставить PUBLIC_IP=auto в файле .env. При старте Slyber Turn автоматически опросит пул быстрых STUN-серверов (Google, Cloudflare), определит свой внешний IPv4-адрес через XOR-MAPPED-ADDRESS и проверит корректность сетевого маппинга через утилиту slyber_turn doctor.
Архитектура и руководство по WebRTC NAT Traversal

Почему современным WebRTC-проектам в 2026 году нужен специализированный TURN-сервер на Go

Технология WebRTC (Web Real-Time Communication) позволяет передавать аудио, видео и произвольные данные (DataChannels) с минимальной задержкой напрямую между браузерами и мобильными устройствами. Однако в реальных сетях до 20–30% прямых P2P-соединений блокируются из-за симметричных NAT (Symmetric NAT), операторского CGNAT мобильных сетей (4G/5G) и строгих корпоративных файрволов, запрещающих входящий UDP-трафик. Именно здесь ключевую роль играет Slyber Turn Server — высокопроизводительный мультипротокольный STUN/TURN-релей, гарантирующий доставку медиапотоков в любых сетевых условиях.

Проблема классических решений и преимущества Slyber Turn

Долгое время стандартом де-факто оставался coturn, написанный на C. В современной облачной инфраструктуре его эксплуатация сопряжена с высокими накладными расходами: необходимость поднимать отдельный бэкенд для генерации временных HMAC-ключей, ручная настройка десятков правил блокировки приватных подсетей для защиты от SSRF-уязвимостей, отсутствие встроенных инструментов тестирования качества канала и сложность диагностики при деплое за облачным NAT. Slyber Turn Server решает эти задачи архитектурно:

  • Единый бинарный файл без зависимостей: Сервер написан на Go на базе проверенного стека pion/turn/v4 и компилируется в один исполняемый файл для linux/amd64 и linux/arm64. Встроенный инсталлятор автоматически настраивает буферы ядра Linux (net.core.rmem_max=8388608, net.core.wmem_max=8388608), открывает порты в ufw или firewalld и регистрирует отказоустойчивый systemd-сервис с лимитом дескрипторов LimitNOFILE=1048576.
  • Встроенный HTTP/HTTPS API и клиентский Go SDK: Эндпоинт /api/turn-credentials выдает полностью сформированный JSON с временными учетными данными и массивом URI (stun:, turn:?transport=udp, turn:?transport=tcp, turns:?transport=tcp). Доступ защищен валидатором Origin с автоматическим распознаванием поддоменов, белыми списками IP/CIDR, алгоритмом Token Bucket Rate Limiting и проверкой секретного ключа X-Turn-Secret в константное время (subtle.ConstantTimeCompare).
  • Бескомпромиссная защита от SSRF (Server-Side Request Forgery): TURN-сервер по своей природе является сетевым прокси. Без должной защиты злоумышленник может использовать его для сканирования внутренней сети дата-центра или кражи ключей из сервиса метаданных облака (AWS IMDS 169.254.169.254 / fd00:ec2::254). В Slyber Turn фильтр PeerFilter на уровне ядра отсекает loopback, link-local, мультикаст, подсети RFC 1918 и локальные интерфейсы хоста, одновременно разделяя в телеметрии безобидные пропуски браузерных LAN-кандидатов (ICE_LAN_SKIP) и реальные попытки атак (SSRF_BLOCK).
  • Интеллектуальная работа с мобильными сетями и наблюдаемость: При переходе смартфона из зоны Wi-Fi в LTE/5G Slyber Turn мгновенно фиксирует появление нового сокета пользователя и скрывает старую «зависшую» аллокацию уже через 5 секунд тишины, сохраняя точность метрик в /api/node-stats и /metrics (Prometheus). Все счетчики, 24-часовая история нагрузки и журнал событий атомарно сохраняются на диск каждые 10 секунд, переживая любые перезагрузки сервера.
Production-Ready WebRTC Infrastructure

Готовы обеспечить 99.9% успешных WebRTC-соединений?

Забудьте о сложных конфигурациях coturn, утечках сокетов и ручной генерации токенов. Разверните единый бинарник Slyber Turn со встроенным HTTP API, защитой от SSRF и готовой аналитикой прямо сейчас.