Сервер coTurn за NAT
Я использую coTurn в качестве сервера своей очереди в своем приложении. Какова минимальная конфигурация, чтобы мой сервер Turn работал за NAT? какие все порты мне нужно открыть, чтобы он работал за NAT? Поскольку я прочитал, в Coturn есть встроенный STUN, поэтому я могу использовать адрес STUN в своем приложении вместо стандартного Google STUN, упомянутого здесь https://github.com/coturn/coturn/wiki/CoturnConfig Если да, то какой должна быть моя конфигурация, чтобы быть изменено в объекте javascript в RTCPeerConnection
1 ответ
Я предполагаю, что
work behind NAT
относится к серверу TURN, а не к приложению.
В этом случае вы можете обратиться к параметру external-ip в конфигурации:
Отображение публичных / частных адресов TURN-сервера, если сервер находится за NAT. В этой ситуации, если -X используется в форме «-X», то этот ip будет сообщаться как IP-адрес ретранслятора для всех выделений.
Это работает, например, в сценариях NAT, таких как AWS of GCP, где существует сопоставление 1: 1 между частным IP-адресом, по которому можно прослушивать, и эфемерным общедоступным IP-адресом.
Ваше приложение можно просто настроить для использования в
ice
настройки, как если бы слушал прямо на общедоступном IP.
например:
listening-ip=172.10.1.1
external-ip=3.3.3.3/172.10.1.1
Кроме того, будет отвечать на запросы Allocate с адресами транспорта ретрансляции с общедоступным IP-адресом в ответе Allocate Success.
Порт будет таким же, как и порт, выделенный на частном интерфейсе. Так, например, если реле размещено на
172.10.1.1:40032
, то
XOR-RELAYED-ADDRESS
будет содержать
3.3.3.3:40032
.
Излишне говорить, что любой диапазон портов, настроенный в конфигурации, должен быть доступен из приложений. Например, если
min-port
составляет 40000 и
max-port
равно 50000, для этого экземпляра EC2 должна быть группа безопасности, которая разрешает доступ к UDP 40000-50000.
По умолчанию
coturn
также действует как STUN-сервер (даже полностью совместим с RFC-5780 при прослушивании более чем одного IP-адреса).