Котурн: Нужна помощь в настройке моего сервера правильно

Я пытаюсь настроить сервер STUN/TURN на локальном компьютере для моего приложения webrtc. Я решил использовать Coturn. Обратите внимание, что мой сервер работает за NAT.

Итак, я запустил свою Ubuntu VM и установил ее. Прочитав вики, я запустил его, по крайней мере, в моей локальной сети. В целях тестирования я использую этот сайт. Поэтому, когда я пробую это с 192.168.178.25:3478, это работает. Когда я пытаюсь сделать это с "public-ip":3478, это не так.

Это сказало мне, это работает локально, и это должно быть проблемой порта /NAT. Что я сделал:

1) Я установил виртуальную машину на мостовое соединение

2) Я открыл порт 3478 на моем роутере. Чтобы проверить, действительно ли это работает, я использовал telnet на удаленной машине, и это сработало. Другой тест состоял в том, что я установил быстрый сервер Apache на моей локальной машине через порт 3478, и к нему можно было получить доступ извне. Это сказало мне, что есть или должно быть, не проблема порта /NAT, и мой сервер очереди должен работать.

Есть идеи?

Я запускаю свой сервер с помощью следующей команды:

"sudo turnserver -X" public-ip "-listening-port = 3478 -v

Turnserver.conf выглядит примерно так:

  • отпечаток пальца

  • область ="myRealm"

  • л-креди-Mech

  • Пользователь = тест: Тест

Поскольку telnet и сервер apache работают, я почти уверен, что у меня проблема с конфигурацией. Я в основном провел выходные, пытаясь, и я действительно потерял то, что могло быть не так.

Спасибо за любую помощь!

1 ответ

Решение

Из документации токарного сервера

-X, --external-ip [/ private-ip] TURN Отображение публичного / частного адреса сервера, если сервер находится за NAT. В этой ситуации, если -X используется в форме "-X ", тогда этот ip будет сообщаться как IP-адрес ретранслятора всех распределений. Этот сценарий работает только в простом случае, когда должен использоваться один адрес ретрансляции, и функциональность CHANGE_REQUEST STUN не требуется. Этот единственный ретрансляционный адрес должен быть сопоставлен NAT с "внешним" IP. Значение "external-ip", если оно не пустое, возвращается в поле XOR-RELAYED-ADDRESS. Для этого "внешнего" IP NAT должен перенаправлять порты напрямую (ретранслируемый порт 12345 всегда должен быть привязан к одному и тому же "внешнему" порту 12345). В более сложном случае, когда задействовано более одного IP-адреса, эта опция должна использоваться несколько раз, каждая запись должна иметь форму "-X ", чтобы отобразить все задействованные адреса. Функция STUN CHANGE_REQUEST NAT discovery будет работать правильно, если адреса сопоставлены правильно, даже если сам сервер TURN находится за NAT. По умолчанию это значение пустое, и сопоставление адресов не используется.

Таким образом, недостаточно, чтобы вы выставляли только публичный порт прослушивающего порта из внутренней локальной сети, но все порты, которые вы собираетесь использовать для ретрансляции. Пожалуйста, обратите внимание, что сказано в той же документации:

--min-port Нижняя граница диапазона портов UDP для распределения конечных точек ретрансляции. Значение по умолчанию - 49152, согласно RFC 5766.
--max-port Верхняя граница диапазона портов UDP для распределения конечных точек ретрансляции. Значение по умолчанию 65535, согласно RFC 5766.

Вы должны выбрать диапазон портов на сервере, настроить с ними параметры --min-port и --max-port и создать правило NAT для предоставления этих портов открытой стороне маршрутизатора без изменений.

Другие вопросы по тегам