【问题标题】:Turn-server running on AWS is unresponsive在 AWS 上运行的 Turn-server 没有响应
【发布时间】:2015-08-20 08:45:57
【问题描述】:

我在这个问题上苦苦挣扎了将近一个月,我能够在 EC2 实例上设置一个 rfc5766-turn-server(v3.2.3.1) 没有任何问题。

当 TURN 在 3478 上侦听时,一切正常,但在端口 80 上,它大部分时间都可以工作,但在某些时间间隔(不规律地发生)它变得无响应,即使重新启动该进程也不会改变任何东西。我在 3478 端口上并行运行的进程没有遇到这个问题。

80端口运行命令:

sudo turnserver -L INTERNAL_IP -X EXTERNAL_IP/INTERNAL_IP -r "someRealm" -a -o --no-udp -u test:test -n -a --no-sslv2 --no-sslv3 -v --cert cert.pem --pkey key.pem  --tls-listening-port 80

3478端口运行命令:

sudo turnserver -L INTERNAL_IP -X EXTERNAL_IP/INTERNAL_IP -r "someRealm" -a -o --no-udp -u test:test -n -a --no-sslv2 --no-sslv3 -v --cert cert.pem --pkey key.pem  --tls-listening-port 80

我认为,这个问题更多地与 AWS 网络相关,较少涉及转向服务器,但话说回来,我对 AWS 或 TURN 服务器知之甚少。有没有人在端口 80 上遇到过这个问题。我认为在端口 80 上运行很重要,尤其是当对等点位于阻止大多数端口的公司防火墙后面时。

能够成功分配的日志(我已经通过INTERNAL_IP更改了EC2的内部IP):

342: IPv4. Server relay addr: INTERNAL_IP:0
342: IPv4. Local relay addr: INTERNAL_IP:56216
342: session 000000000000000005: new, username=<test>, lifetime=600
342: session 000000000000000005: user <test>: incoming packet ALLOCATE processed, success
342: session 000000000000000005: user <test>: incoming packet ALLOCATE processed, success
342: session 000000000000000005: user <test>: incoming packet CREATE_PERMISSION processed, success
342: session 000000000000000005: user <test>: incoming packet CREATE_PERMISSION processed, success
343: session 000000000000000005: user <test>: incoming packet CHANNEL_BIND processed, success
343: session 000000000000000005: user <test>: incoming packet CHANNEL_BIND processed, success
353: session 000000000000000005: usage: username=<test>, rp=1039, rb=551685, sp=1009, sb=526100

无响应时记录(我注意到它仍然显示连接尝试,一个区别是,它显示对等连接的 IP,而不是成功场景中的 INTERNAL_IP):

392: IPv4. tcp or tls connected to: SOME_IP:41107
392: session 000000000000000007: user <>: incoming packet message processed, error 401
392: session 000000000000000007: user <>: incoming packet message processed, error 401
392: IPv4. tcp or tls connected to: SOME_IP:41108
392: session 000000000000000008: user <>: incoming packet message processed, error 401
392: session 000000000000000008: user <>: incoming packet message processed, error 401

【问题讨论】:

    标签: amazon-web-services amazon-ec2 webrtc turn rfc5766turnserver


    【解决方案1】:

    由于防火墙,您不需要使用 80(防火墙只阻止传入而不是传出通信)

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      您没有提到您在端口上运行的 TURN 传输协议,但从您的端口​​ 3478 的日志显示,您似乎正在使用 3478 作为您的 UDP 传输类型中继候选者。希望您也没有将端口 80 用于 UDP,它可能是 TCP/TLS。在这种情况下,您可以检查客户端发送到 TURN 服务器的分配请求的传输协议。如果客户端没有使用正确的传输协议来请求中继候选,您可能无法获得成功的分配响应,TCP/TLS 控制连接可用于收集 UDP 中继候选作为 RFC-5766 的回退机制,因为您使用的 TURN 服务器支持该回退机制,否则客户端/服务器应该有 ICE-TCP 实现来获取 TCP 类型的中继候选,但你仍然应该得到未知协议的错误响应。打印为错误 401 的日志是 TURN 协议日志吗?那么这意味着它有一些身份验证问题。如果为正确的入站协议流量启用了 EC2 实例,那么您可能不会因为使用 EC2 实例而遇到任何其他问题,这可能与您的 TURN 服务器配置或支持有关。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-18
        • 1970-01-01
        • 2018-09-17
        • 2022-10-20
        • 2020-02-26
        相关资源
        最近更新 更多