Адрес сервера STUN несовместим | Код ошибки = 701: - PullRequest
0 голосов
/ 20 июня 2020

Я установил сервер TURN, все в коде сервера работает нормально. в файле журнала ошибок нет. только предупреждение, указывающее

 0: WARNING: I cannot support STUN CHANGE_REQUEST functionality because only one IP address is provided

, но сервер TURN работает на сервере.

вот что отображается, когда я проверяю lsof -i :3478

turnserve 999 root   15u  IPv4 446811411      0t0  TCP domain.com:stun (LISTEN)
turnserve 999 root   23u  IPv4 446811417      0t0  TCP domain:stun (LISTEN)
turnserve 999 root   24u  IPv4 446810998      0t0  UDP domain.com:stun
turnserve 999 root   25u  IPv4 446810999      0t0  UDP domain.com:stun

, когда я проверяю STUN в Trickle ICE выдает ошибку

The server stun:xxx.xxx.xxx.xxx:3478 returned an error with code=701:
STUN server address is incompatible.
The server stun:xxx.xxx.xxx.xxx:3478 returned an error with code=701:
STUN allocate request timed out.

что в этом не так.

Спасибо

1 Ответ

1 голос
/ 21 июня 2020

Я думаю, что ошибка 701 - это более общая ошибка подключения c, которую Trickle ICE использует, чтобы указать, что не получил ответ привязки. Запустите stunclient your.stun.ip.address с инструментами командной строки по адресу www.stunprotocol.org, чтобы узнать, доступна ли ваша служба STUN из внешнего мира.

Технически STUN требует размещения на устройстве с двумя IP-адресами. и два порта. Обычно это параметр командной строки, чтобы указать, какие IP-адреса сервер должен прослушивать. Но большинство реализаций серверов могут работать на хосте с одним IP-адресом.

Второй IP-адрес и порт на сервере используются для тестов фильтрации клиентов STUN, чтобы определить, какой тип NAT действует. Клиент отправляет запрос привязки на первичный IP-адрес и порт сервера, но с атрибутом запроса на изменение, чтобы сервер отвечал с альтернативного IP-адреса или порта. Чаще всего этот запрос привязки с атрибутом запроса на изменение не выполняется, так как NAT не пересылает трафик c с другого IP / порта.

Тест фильтрации полезен для регистрации того, какой тип NAT у клиента горит. Чтобы можно было отлаживать неудачные соединения и соотносить показатели успешности / неудачи с типом NAT. Это очень или полезно для установления связи.

Я удивлен, что Trickle ICE выдает ошибку. Я не думал, что WebRT C когда-либо использовал атрибут запроса смены. Я только что сделал трассировку Wireshark сеанса Trickle ICE на stun.stunprotocol.org. Я не вижу, чтобы клиент webrt c устанавливал атрибут запроса на изменение ни в одном из двух запросов привязки, которые он делает.

Подробнее см. RF C 5780 Раздел 3.2

...