- 当对等点位于不同的 NAT 后面时,我们使用 STUN 来让事情顺利进行
- 当直接点对点失败时,我们转向TURN服务器,
- 当系统中所有 UDP 端口都被阻塞时,我们使用 TCP 传输连接到 TURN 服务器
- 但是如果除 80 之外的所有端口都被阻止(公司代理后面的对等),那会怎样?上面的 TURN 服务器还能用吗?还是我应该获得一个 webrtc 网关并依赖 RTMP 作为后备?还有其他选择吗?
以前,我错误地假设 TCP 只需要 80 端口,但这个讨论让我怀疑事情。
这取决于您的网络的阻塞程度。如果有一个代理正在检查 HTTP 标头,则 TCP 上的 TURN (STUN) 将不起作用。但是,如果代理(例如仅防火墙)没有检查端口 80 上的流量,则 TURN over TCP 应该可以工作。
如果您的 TURN 允许通过端口 443 上的 TLS 访问,则加密层应绕过代理/防火墙。实际上代理会认为流是 HTTPS 请求。但是,如果代理能够“破坏” SSL 层(MITM,例如Burp 代理),它可能会拒绝您的通信,因为它不会将 TURN 请求理解为 HTTP 请求。
443也应该可用。80 用于信令,443 用于 TURN。