TURN и сеть
TURN-сервер (coturn) нужен, чтобы звонки и P2P-соединения работали даже при строгом NAT или файрволе. В стандартной установке его настраивает сам установщик сервера — отдельных действий не требуется.
Зачем нужен TURN
Большая часть соединений устанавливается напрямую между устройствами. Но если оба собеседника за строгим NAT, прямой канал невозможен — тогда трафик идёт через ретранслятор TURN, по-прежнему в зашифрованном виде. Без корректно настроенного TURN звонки и передача файлов за NAT работать не будут.
Настройка
Отдельных действий обычно не требуется: TURN настраивает сам
установщик сервера. При запуске
установки on-prem он ставит coturn,
генерирует и синхронизирует секрет, прописывает realm/external-ip, открывает
нужные порты в firewall и запускает coturn. Домен для realm установщик спросит
интерактивно (как лицензионный ключ), либо его можно передать переменной
TELEPORT_HOST.
Секрет static-auth-secret в конфиге coturn и TURN_SECRET в .env сервера обязаны совпадать — установщик делает это автоматически. Если настраиваете coturn вручную или держите его на отдельной машине, эти два значения нужно держать одинаковыми, иначе клиенты не получат relay-кандидатов.
Перенастройка / отдельная машина
Если TURN живёт на отдельном сервере или его нужно перенастроить, повторно запустите установщик с пропуском или используйте коробочный coturn:
# пропустить настройку TURN при установке сервера:
curl -fsSL https://teleport.enigma.page/updates/server/install-server.sh -o install-server.sh
sudo TELEPORT_SKIP_TURN=1 bash install-server.sh
Минимальный рабочий /etc/turnserver.conf:
use-auth-secret, static-auth-secret=<ваш TURN_SECRET>,
realm=<домен>, external-ip=<публичный IP>,
min-port/max-port для relay-диапазона. После правок —
systemctl restart coturn (именно restart: по reload coturn не
перечитывает секрет).
Порты
В firewall должны быть открыты:
3478/udpи3478/tcp— STUN/TURN;- диапазон relay-портов (UDP) — должен совпадать с
min-port/max-portв конфиге coturn; 443— TLS для API и сигналинга.
Проверка
После настройки выполните тестовый звонок между двумя устройствами. Если соединение устанавливается и собеседники слышат друг друга — TURN настроен корректно. При проблемах убедитесь, что секреты совпадают, публичный IP в конфиге верный, а диапазон relay-портов открыт в firewall.