我在我的应用程序中使用 coTurn 作为轮流服务器。使我的 Turn 服务器在 NAT 后面工作的最低配置是什么?我必须打开哪些端口才能在 NAT 后面工作?正如我所读到的,coturn 带有内置 STUN,所以我可以在我的应用程序中使用 STUN 地址而不是这里提到的默认谷歌 STUN https://github.com/coturn/coturn/wiki/CoturnConfig 如果是这样,我的配置应该是什么在 RTCPeerConnection 中的 javascript 对象中修改
1 回答
我假设work behind NAT
指的是 TURN 服务器,而不是应用程序。
这种情况可以参考配置中的external-ip参数coturn
:
TURN 服务器公共/私有地址映射,如果服务器在 NAT 之后。在这种情况下,如果以“-X”形式使用 -X,则该 ip 将被报告为所有分配的中继 IP 地址。
例如,这适用于 GCP 的 AWS 等 NAT 场景,其中在coturn
可以监听的私有 IP 地址和临时公共 IP 地址之间存在 1:1 映射。
您的应用程序可以配置为coturn
在ice
设置中使用,就好像coturn
直接在公共 IP 上监听一样。
例如:
listening-ip=172.10.1.1
external-ip=3.3.3.3/172.10.1.1
此外,将在分配成功响应coturn
中使用具有公共 IP 的中继传输地址响应分配请求。XOR-RELAYED-ADDRESS
该端口将与专用接口上分配的端口相同。因此,例如,如果继电器分配在172.10.1.1:40032
,XOR-RELAYED-ADDRESS
则将包含3.3.3.3:40032
.
不用说,在coturn
的配置中配置的任何端口范围都需要可以从应用程序访问。例如,如果min-port
是 40000 和max-port
50000,则该 EC2 实例必须有一个允许访问 UDP 40000-50000 的安全组。
默认情况下coturn
还充当 STUN 服务器(如果侦听多个 IP 地址,甚至完全兼容 RFC-5780)。