webrtc - STUN 服务器地址不兼容 |错误代码=701 :

标签 webrtc stun turn coturn

我已经安装了 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
当我在 Trickle ICE 中检查 STUN 时它引发错误
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.
这有什么问题。
谢谢

最佳答案

我认为 701 错误是一种更通用的连接错误,Trickle ICE 用它来表示它没有得到绑定(bind)响应。运行 stunclient your.stun.ip.address使用命令行工具 www.stunprotocol.org查看您的 STUN 服务是否可以从外部访问。
STUN 技术上要求托管在具有两个 IP 地址和两个端口的设备上。它通常是一个命令行参数,用于指定服务器应该监听哪些 IP 地址。但是大多数服务器实现都可以在具有单个 IP 地址的主机上运行。
服务器上的第二个 IP 地址和端口用于 STUN 客户端过滤测试,以检测有效的 NAT 类型。客户端在服务器的主 IP 和端口上发送绑定(bind)请求,但具有更改请求属性,以使服务器从备用 IP 地址或端口进行响应。通常情况下,这个带有更改请求属性的绑定(bind)请求会失败,因为 NAT 不会转发来自其他 IP/端口的流量。
过滤测试对于记录客户端所在的 NAT 类型很有用。这样可以调试失败的连接,并且可以将成功/失败指标与 NAT 类型相关联。
由于大多数 ICE 实现将交换所有可用的地址候选(本地、映射和中继),因此过滤测试对连接建立不是非常有用。
我很惊讶 Trickle ICE 给你一个错误。我不认为 WebRTC 曾经使用过 changer-request 属性。我刚刚对 stun.stunprotocol.org 的 Trickle ICE session 进行了 Wireshark 跟踪。我没有看到 webrtc 客户端在它发出的两个绑定(bind)请求中的任何一个中设置更改请求属性。
更多详情请见 RFC 5780 Section 3.2

关于webrtc - STUN 服务器地址不兼容 |错误代码=701 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62484280/

相关文章:

android - 无法访问 android webview 上的本地媒体

javascript - Webrtc为什么ontrack从不调用调用者?

java - 如何使用 java 创建我自己的 STUN 或 TURN 服务器

ubuntu - Ubuntu 上的配置 CoTurn 不起作用

webrtc - 如何使用替代监听端口配置 coturn?

javascript - 使用 RecordRTC 进行 WebRTC 视频录制在 IE 和 Safari 中显示错误

webrtc - Kurento 媒体服务器中的重新协商

webrtc - 在 TURN 配置中无法访问 NAT 后面的 Coturn

webrtc - ICE失败的原因是什么?