我想为基于WebRTC的应用程序设置COTURN服务器。不过,我遇到了一些我无法理解的错误消息,并且无法在互联网上找到任何帮助。Coturn服务器 - 中继不起作用
以下是有关应用程序的一些细节:
两个用户登录到应用程序,用户可以与其他分享他们的屏幕 - 所以流仅在一个方向
将在我可以让应用程序在Intranet和某些外部网络中工作。所以我相信,只要STUN模式足够,应用程序就能正常工作。
对于一些网络STUN候选人不断失败,所以我需要一个TURN服务器来中继流。
我收集来自服务器的一些服务器日志,万一有人能确定基于这些问题:
handle_udp_packet: New UDP endpoint: local addr <IP Address>:3478, remote addr <IP Address2>:59942
handle_turn_command: STUN method 0x1 ignored
handle_udp_packet: New UDP endpoint: local addr <IP Address>:3478, remote addr <IP Address2>:59944
handle_turn_command: STUN method 0x1 ignored
session 128000000000000096: realm <server URL> user <>: incoming packet message processed, error 401: Unauthorised
session 128000000000000097: realm <server URL> user <>: incoming packet message processed, error 401: Unauthorised
handle_turn_command: STUN method 0x1 ignored
handle_turn_command: STUN method 0x1 ignored
session 128000000000000096: realm <server URL> user <>: incoming packet message processed, error 401: Unauthorised
session 128000000000000097: realm <server URL> user <>: incoming packet message processed, error 401: Unauthorised
IPv4. Local relay addr: <IP Address>:64306
session 128000000000000096: new, realm=<server URL>, username=<username>, lifetime=600
session 128000000000000096: realm <server URL> user <username>: incoming packet ALLOCATE processed, success
IPv4. Local relay addr: <IP Address>:65384
session 128000000000000097: new, realm=<server URL>, username=<username>, lifetime=600
session 128000000000000097: realm <server URL> user <username>: incoming packet ALLOCATE processed, success
handle_turn_command: STUN method 0x1 ignored
handle_turn_command: STUN method 0x1 ignored
session 128000000000000096: realm <server URL> user <username>: incoming packet ALLOCATE processed, success
session 128000000000000097: realm <server URL> user <username>: incoming packet ALLOCATE processed, success
handle_turn_command: STUN method 0x1 ignored
handle_turn_command: STUN method 0x1 ignored
handle_turn_command: STUN method 0x1 ignored
handle_turn_command: STUN method 0x1 ignored
handle_turn_command: STUN method 0x1 ignored
handle_turn_command: STUN method 0x1 ignored
handle_turn_command: STUN method 0x1 ignored
handle_turn_command: STUN method 0x1 ignored
handle_turn_command: STUN method 0x1 ignored
handle_turn_command: STUN method 0x1 ignored
handle_turn_command: STUN method 0x1 ignored
handle_turn_command: STUN method 0x1 ignored
session 128000000000000096: refreshed, realm=<server URL>, username=<username>, lifetime=0
session 128000000000000096: realm <server URL> user <username>: incoming packet REFRESH processed, success
session 128000000000000097: refreshed, realm=<server URL>, username=<username>, lifetime=0
session 128000000000000097: realm <server URL> user <username>: incoming packet REFRESH processed, success
session 128000000000000096: closed (2nd stage), user <username> realm <server URL> origin <>, local <IP Address>:3478, remote <IP Address2>:59942, reason: allocation timeout
session 128000000000000096: delete: realm=<server URL>, username=<username>
session 128000000000000097: closed (2nd stage), user <username> realm <server URL> origin <>, local <IP Address>:3478, remote <IP Address2>:59944, reason: allocation timeout
session 128000000000000097: delete: realm=<server URL>, username=<username>
这里我有多么turnserver.conf文件看起来'S:
listening-port=3478
#tls-listening-port=443
realm=subdomain.domain.com
server-name=subdomain.domain.com
lt-cred-mech
userdb=/etc/turnserdb.conf
cert=/home/ubuntu/certificate.crt
pkey=/home/ubuntu/qc.key
pkey-pwd=L1ght!t
no-stdout-log
Verbose
我特别关注以下几点:
我应该假设,因为我的代码正在与STUN服务器,它会用工作 TURN服务器以及工作?因此,错误意味着问题出在TURN服务器上?
我可以看到一些错误,指出'分配超时'。这是否意味着任何可能不足的RAM/CPU /网络分配?
一些请求具有用户名部分空“<>”而不是“”,它后面是“401未授权”,而我已经三重检查的RTCPeerConnection配置 - 它们确实包含用户名和密码。
除了上面的日志,我还看到'438错误的随机数'也经常出现。我搜索了一下,但它似乎并不是我可以通过JS控制的东西。它与任何服务器配置有关吗?
谢谢!感谢你的帮助。
我的监听端口是3478,因此url中的端口是3478。我没有指纹,失效随机数,总配额,bps容量,无回送对等体,无组播对等体。我将在问题中发布我当前的配置。此外,服务器通过了Trickle ICE的测试。但是当我的应用程序使用它时仍然有错误。 – Nisarg
你的答案并不完整,但它帮助我解决了这个问题。我会很快发布一个答案。谢谢! – Nisarg