Исправление конфигурации TURN сервера (relay-ip)

Дата: 2026-01-09
Проблема: Ошибка ICE 1010 - тайм-аут согласования соединения
Причина: Неправильная конфигурация relay-ip в TURN сервере

Проблема

Пользователи получают ошибку:
- "Попытка переподключения аудио. Тайм-аут согласования соединения (Ошибка ICE 1010)"
- "Обнаружена потеря соединения и звук не появляется"

В логах TURN сервера видны таймауты:

INFO: session ... closed (2nd stage), reason: allocation timeout

Причина

Для серверов, находящихся за NAT, конфигурация TURN сервера должна быть следующей:
- external-ip - внешний IP адрес (для STUN)
- relay-ip - внутренний IP адрес контейнера (для relay трафика)

Неправильная конфигурация relay-ip приводит к тому, что TURN сервер не может ретранслировать трафик между клиентами.

Решение

1. Исправление конфигурации TURN сервера

Файл: /etc/turnserver.conf

Исправления:

listening-port=3478
listening-ip=0.0.0.0
external-ip=89.179.242.240
relay-ip=10.218.14.37
min-port=32769
max-port=65535
static-auth-secret=8e3f6c01a3bbac78ad826d04c03cd4ab3de2fba747943005af2427e7865a09fa
realm=school.cdto.life

Важно:
- external-ip=89.179.242.240 - внешний IP для STUN
- relay-ip=10.218.14.37 - внутренний IP контейнера для relay трафика

2. Перезапуск TURN сервера

lxc exec BBB-CONT22-1 -- systemctl restart coturn
lxc exec BBB-CONT22-1 -- systemctl status coturn

3. Проверка портов на роутере

Убедитесь, что на роутере проброшены следующие порты:
- 3478 UDP/TCP - TURN сервер
- 32769-65535 UDP - relay порты для TURN

Автоматизация

Скрипт для автоматического исправления:

/home/cdto/DENKART/scripts/fix-bbb-turn-relay-ip.sh

Использование:

./scripts/fix-bbb-turn-relay-ip.sh [BBB_CONTAINER] [CONTAINER_IP] [EXTERNAL_IP]

Пример:

./scripts/fix-bbb-turn-relay-ip.sh BBB-CONT22-1 10.218.14.37 89.179.242.240

Проверка

1. Проверка конфигурации TURN сервера

lxc exec BBB-CONT22-1 -- cat /etc/turnserver.conf | grep -E "relay-ip|external-ip"

Ожидаемый результат:

external-ip=89.179.242.240
relay-ip=10.218.14.37

2. Проверка статуса TURN сервера

lxc exec BBB-CONT22-1 -- systemctl status coturn

Ожидаемый результат: Active: active (running)

3. Проверка логов TURN сервера

lxc exec BBB-CONT22-1 -- tail -f /var/log/turnserver/turnserver.log

Ожидаемый результат: Успешные подключения без таймаутов

4. Проверка работы в браузере

  1. Откройте BigBlueButton в браузере
  2. Подключитесь к конференции с микрофоном
  3. Откройте about:webrtc в Firefox
  4. Проверьте, что используются TURN candidates
  5. Проверьте, что соединение стабильно

Связанные исправления

  1. FreeSWITCH конфигурация (external_rtp_ip, external_sip_ip)
  2. См. /home/cdto/DENKART/docs/operations/bbb-audio-fix.md

  3. mediasoup конфигурация (webrtc.announcedIp, plainRtp.listenIp)

  4. См. /home/cdto/DENKART/docs/operations/bbb-ice-1010-fix.md

  5. TURN сервер в bbb-webrtc-sfu

  6. См. /home/cdto/DENKART/docs/operations/bbb-ice-1010-turn-fix.md

Примечания

  • Для серверов за NAT relay-ip должен быть внутренним IP
  • Для серверов без NAT relay-ip может быть внешним IP
  • Порты для relay (32769-65535) должны быть проброшены на роутере
  • TURN сервер необходим для обхода ограничений NAT

Следующие шаги

  1. Протестируйте звук в BigBlueButton
  2. Проверьте логи TURN сервера на наличие ошибок
  3. Если проблема сохраняется:
  4. Проверьте порты на роутере
  5. Проверьте файрвол
  6. Проверьте логи bbb-webrtc-sfu