如何在 AWS 网络负载均衡器上使用 TLS 运行 Stun/Turn Server (COturn)

如何在 AWS 网络负载均衡器上使用 TLS 运行 Stun/Turn Server (COturn)

我刚刚设置了一个 coturn 服务器,当使用没有负载均衡器的 ip 或 teh 域时它工作得很好,使用这个在线工具进行了测试:

https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

问题是,当我使用网络负载均衡器时,重新路由 tcp_udp 在端口 80 上有效,但当尝试对端口 443 使用 tls 时,它不起作用。

我配置了网络负载均衡器,以将端口 443 的 tls 流量路由到端口 443 下的目标组。我在网络负载均衡器中使用 letsencrypt 的 domain.com 和 *.domain.com 证书。配置文件 turnserver.conf 中添加了相同的证书。

这是我的配置:

external-ip=1.2.3.4
listening-port=80
min-port=10000
max-port=20000
log-file=/var/log/turnserver.log
verbose
tls-listening-port=443
lt-cred-mech
server-name=domain.com realm=domain.com
user=tester:12345678
total-quota=100
stale-nonce=600
cert=/opt/coturn/fullchain.pem
pkey=/opt/coturn/privkey.pem
cipher-list="ECDH+AESGCM:ECDH+CHACHA20:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS"

log-file=/var/log/coturn.log


# Specify the process user and group
proc-user=turnserver
proc-group=turnserver

这是我从日志中得到的信息:

3170: IPv4. tcp or tls connected to: 9.8.7.6:34274
3170: session 001000000000003730: TCP socket closed remotely 9.8.7.6:34274
3170: session 001000000000003730: closed (2nd stage), user <> realm <domain.com> origin <>, local 0.0.0.0:443, remote 9.8.7.6:34274, reason: TCP connection closed by client (callback)

顺便说一句,我总是从在线工具收到 701 错误。

谢谢你,

答案1

不要将负载均衡器与 STUN/TURN 服务器一起使用。您可以扩大服务器规模,或者通过在客户端应用程序中轮换服务器 IP 来实现自己的“负载均衡器”。

您似乎不了解负载均衡器的基本原理以及 STUN/TURN 的工作原理,尤其是在 HTTPS 上。TURN 不使用 HTTP/HTTPS,只使用端口 80 和 443。这是为了绕过通常打开这些端口的防火墙。

相关内容