Настройка сервера Coturn TURN для Spreed WebRTC

Coturn — это бесплатный и открытый сервер для протоколов TURN и STUN, предназначенный для VoIP и WebRTC. В нашем предыдущем руководстве мы рассматривали процесс установки сервера Spreed WebRTC и его интеграцию с NextCloud.

Существует проблема: WebRTC не сможет функционировать, если пользователи находятся за различными NAT-устройствами, так как это будет заблокировано. Для обхода NAT необходимо установить сервер TURN, который будет служить реле между веб-браузерами. TURN расшифровывается как Traversal Using Relays around NAT. Подробности о том, как это работает, выходят за рамки этого руководства.

Данное руководство поможет вам установить coturn, открытую версию TURN, на Ubuntu, а также подключить Spreed WebRTC к coturn.

Примечание: Для снижения задержки сервер TURN должен располагаться в непосредственной близости от пользователей. Важно учитывать, что данный сервер требует значительных объемов пропускной способности, поскольку будет обрабатывать как аудио, так и видео. Coturn можно установить на том же устройстве, что и Spreed WebRTC, или на отдельном компьютере, который не находится за NAT.

Настройка сервера Coturn на Ubuntu.

Coturn можно установить из репозитория Ubuntu, используя следующую команду:

Читайте также:  Простой способ очистки терминала в Linux

sudo apt install coturn

После установки он запустится автоматически. Вы можете проверить его статус с помощью:

systemctl status coturn

Если он не активен, активируйте его вручную с помощью:

sudo systemctl start coturn

Также добавьте автоматический запуск при загрузке системы.

sudo systemctl enable coturn

Конфигурация Coturn для Spreed WebRTC.

Измените основной файл настроек.

sudo nano /etc/turnserver.conf

Все строки в данном файле по умолчанию закомментированы. Ниже представлен пример настройки, который вы можете скопировать и вставить в свой файл.

  • Подмените your-domain.com на название домена вашего NextCloud или Spreed WebRTC.
  • Подставьте публичный IP-адрес сервера вместо 12.34.56.78.
  • Создайте длинный и надежный пароль для подтверждения вашей личности. (Вы можете воспользоваться командой openssl rand — base64 20 для генерации случайной строки.)

# Запускать только как TURN-сервер, все запросы STUN будут игнорироваться. no-stun # Указать порт прослушивания. Измените на 80 или 443, чтобы обойти некоторые строгие NAT. listening-port=8443 tls-listening-port=5349 # Указать IP для прослушивания, если не установлен, то Coturn прослушивает все системные IP. listening-ip=12.34.56.78 relay-ip=12.34.56.78В следующих строках представлена поддержка WebRTC

Применять отпечатки в TURN-сообщениях. fingerprint

Активировать механизм долгосрочных учетных данных lt-cred-mech realm=your-domain.comМетод аутентификации: use-auth-secret static-auth-secret=your-auth-secret total-quota=100 # Общая пропускная способность в байтах в секунду, которую TURN-сервер может выделить # для сессий, совместно (входящие и исходящие сетевые потоки обрабатываются отдельно). bps-capacity=0 # Эта строка обеспечивает дополнительную безопасность. stale-nonce log-file=/var/log/turnserver/turn.log no-loopback-peers no-multicast-peers

Сохраните изменения и закройте файл. После этого перезапустите сервер coturn с помощью:

sudo systemctl restart coturn

Coturn функционирует под учетной записью пользователя turnserver. Запустите следующую команду, и вы должны заметить, что он принимает соединения на порту 8443.

sudo ss - lnpt | grep turnserver

Теперь приступим к редактированию конфигурационного файла Spreed WebRTC.

sudo nano /etc/spreed/server.conf

Включите следующие две строки в раздел [app]. Замените текст на красный цвет в соответствии с указаниями.

turnURIs = turn:coturn-server-ip8443?transport=udp turnSecret =your-auth-secrect

Сохраните изменения и закройте файл. После этого перезапустите контейнер Docker для Spreed WebRTC с помощью

sudo docker restart my-spreed-webrtc

Или выполните следующую команду, если вы установили Spreed с помощью PPA для Ubuntu.

sudo systemctl restart spreed-webrtc

После активации Coturn и перезагрузки Spreed WebRTC, пользователи, находящиеся за NAT, должны беспрепятственно осуществлять аудио — и видеозвонки.

Настройка доступа к портам в межсетевом экране.

Для корректной работы Coturn необходимо разблокировать TCP и UDP порт 8843 в брандмауэре. Если у вас установлен брандмауэр UFW, используйте следующие команды.

sudo ufw allow 8443/tcp sudo ufw allow 8443/udp

Заключение

На этом все! Надеюсь, данный учебник оказался полезным для вас при настройке сервера coturn для Spreed WebRTC. Если вам понравился этот материал, подписывайтесь на нашу бесплатную рассылку. Также вы можете следить за нами в Google+, Twitter или поставить лайк нашей странице в Facebook.

На этом все! Надеюсь, данный учебник оказался полезным для вас при настройке сервера coturn для Spreed WebRTC. Если вам понравился этот материал, подписывайтесь на нашу бесплатную рассылку. Также вы можете следить за нами в Google+, Twitter или поставить лайк нашей странице в Facebook.