asi*_*dev 3 stun webrtc turn coturn
我已经安装了 TURN 服务器,服务器代码中的一切工作正常。日志文件中没有错误。只是一个警告说明
0: WARNING: I cannot support STUN CHANGE_REQUEST functionality because only one IP address is provided
Run Code Online (Sandbox Code Playgroud)
但是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
Run Code Online (Sandbox Code Playgroud)
当我在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.
Run Code Online (Sandbox Code Playgroud)
这有什么问题。
谢谢
我认为 701 错误是一种更通用的连接错误,Trickle ICE 用它来表示它没有得到绑定响应。运行stunclient your.stun.ip.address与命令行工具www.stunprotocol.org,看看你的STUN服务是从外部世界访问。
STUN 技术上要求托管在具有两个 IP 地址和两个端口的设备上。它通常是一个命令行参数,用于指定服务器应该侦听哪些 IP 地址。但是大多数服务器实现可以在具有单个 IP 地址的主机上运行。
服务器上的第二个 IP 地址和端口用于 STUN 客户端过滤测试,以检测有效的 NAT 类型。客户端在服务器的主 IP 和端口上发送绑定请求,但具有更改请求属性,以使服务器从备用 IP 地址或端口进行响应。通常情况下,这个带有更改请求属性的绑定请求会失败,因为 NAT 不会转发来自其他 IP/端口的流量。
过滤测试对于记录客户端所在的 NAT 类型很有用。这样可以调试失败的连接,并且可以将成功/失败指标与 NAT 类型相关联。
由于大多数 ICE 实现将交换所有可用的候选地址(本地、映射和中继),因此过滤测试对连接建立不是非常有用。
我很惊讶 Trickle ICE 给你一个错误。我不认为 WebRTC 曾经使用过 changer-request 属性。我刚刚对 stun.stunprotocol.org 的 Trickle ICE 会话进行了 Wireshark 跟踪。我没有看到 webrtc 客户端在它发出的两个绑定请求中的任何一个中设置更改请求属性。
RFC 5780 第 3.2 节中的更多详细信息
| 归档时间: |
|
| 查看次数: |
6649 次 |
| 最近记录: |