Версия:

Проверка COTURN сервера

Для проверки работоспособности COTURN сервера, особенно по зашифрованному каналу (TURNS), выполните следующие шаги.

1. Использование Trickle ICE

Самый простой способ проверить работу — воспользоваться онлайн-инструментом Trickle ICE.

  1. Откройте страницу Trickle ICE.
  2. Удалите стандартные серверы Google.
  3. Добавьте свои настройки iceServers:

STUN:

TURNS (Encrypted):

  1. Нажмите “Add Server”, а затем “Gather candidates”.
  2. Если вы видите кандидатов типа srflx (для STUN) и relay (для TURN), значит сервер работает. Для проверки именно зашифрованного канала убедитесь, что relay кандидаты появляются при использовании turns: URI.

Пример успешного ответа:

0.003	host	3765676733	udp	266e1b73-b588-4d88-93e7-e1dce07762c5.local	57936	126 | 30 | 255		
0.259	srflx	68216299	udp	91.246.41.101	59869	100 | 30 | 255	stun:coturn.ccs.msk.ru:3478	
0.681	relay	1695796417	udp	45.12.4.228	55885	0 | 32 | 255	turns:coturn.ccs.msk.ru:5349?transport=tcp	tls
0.681	relay	1695796417	udp	45.12.4.228	61517	0 | 31 | 255	turns:coturn.ccs.msk.ru:5349?transport=tcp	tls
0.682	relay	1695796417	udp	45.12.4.228	52795	0 | 31 | 255	turns:coturn.ccs.msk.ru:5349?transport=tcp	tls
0.688	relay	1695796417	udp	45.12.4.228	63482	0 | 32 | 255	turns:coturn.ccs.msk.ru:5349?transport=tcp	tls
0.689	Done

2. Пример конфигурации в коде (JSON)

{
  "iceServers": [
    {
      "urls": [
        "stun:coturn.ccs.msk.ru:3478"
      ]
    },
    {
      "urls": [
        "turns:coturn.ccs.msk.ru:5349?transport=tcp",
        "turns:coturn.ccs.msk.ru:5349?transport=udp"
      ],
      "username": "usr_coturn.ccs.msk.ru",
      "credential": "***"
    }
  ]
}

3. Возможные проблемы и их решение

Если кандидаты типа relay не появляются или возникают ошибки TLS:

  1. Проверка сертификатов: Скорее всего, истек срок действия SSL-сертификатов или они не были обновлены в директории, которую использует coturn. Путь к сертификатам на хосте (согласно конфигурации): ~/ssl-nginx/coturn.ccs.msk.ru/

    Как проверить срок действия сертификата (Debian/Ubuntu/Rocky Linux):

    # Способ 1: Проверка локального файла сертификата
    openssl x509 -enddate -noout -in ~/ssl-nginx/coturn.ccs.msk.ru/fullchain.pem
    
    # Способ 2: Проверка удаленного сервера через сеть (если порт 5349 открыт)
    echo | openssl s_client -connect coturn.ccs.msk.ru:5349 2>/dev/null | openssl x509 -noout -dates
    
  2. Обновление сертификатов и перезапуск Nginx: Если сертификаты почему-то не обновились автоматически, попробуйте обновить их и перезапустить Nginx:

    systemctl --user restart container-nginx
    
  3. Перезапуск COTURN: После обновления сертификатов обязательно перезапустите контейнер coturn, чтобы он подтянул новые файлы:

    ~/services/coturn/main.sh coturn restart
    
  4. Проверка портов и Firewall: Убедитесь, что порты 3478 (STUN/TURN) и 5349 (TURNS) открыты для TCP и UDP. Используйте скрипт:

    sudo ~/CCS.Deployment/prepareOS/open_ports_for_coturn.sh $(whoami)
    
  5. Логи: Если проблема сохраняется, проверьте логи контейнера:

    ~/services/coturn/main.sh coturn log