AIAI 学习 · 专题库

RTC 与网络

验证 STUN、TURN 与网络连通性

强制中继测试,再检查认证、传输路径和流量口径。

资料复核:2026-09-083 份直接来源含操作步骤与记录模板
先做什么

STUN 帮助发现候选地址,TURN 提供中继,ICE 决定可用候选对。看到 STUN 请求成功,不能证明受限网络下音频能传通。

理解这条链路

候选收集认证分配中继连通性检查提名候选对双向媒体分配释放
参考流程:根据公开能力整理的操作顺序;分支、重试和回退以正文说明为准,不代表厂商内部实现。

强制中继是必要的测试

普通测试可能一直走直连,掩盖 TURN 错误。客户端使用 relay 策略进行专项验收,并从实际 selected candidate pair 确认中继路径。分别测试 UDP 可用、UDP 被阻断、TCP/TLS 路径及认证过期,验证双向可听而不只是 allocation 成功。

计费与容量看真实流向

统计中继比例、平均媒体码率、并发和媒体时长。传输协议开销、双向流、跨区流量与带宽计费方式都可能影响成本;不要默认所有云厂商都按同样的入站、出站口径计费。开放中继需要正确认证和目标访问约束。

按这个顺序操作

  1. 核对 DNS、证书、监听端口、对外地址和媒体端口范围。
  2. 使用短期凭据执行强制 relay 测试,并记录被选中的候选对。
  3. 让双方播放不同测试音频,检查 TCP/TLS 与凭据失效情况。
  4. 检查挂断后 allocation 和会话是否按配置释放,再估算负载。

可直接复用的记录模板

iceTransportPolicy: "relay"  // 仅用于强制中继验收
候选记录:localCandidateType / remoteCandidateType / protocol / relayProtocol
测试:有效凭据 / 无效凭据 / 过期凭据 / UDP 阻断 / TLS 路径
媒体证据:双方可听、丢包、缓冲、结束后的资源释放
部署配置以实际 coturn 或 RTC 服务版本为准。

做到什么程度才算通过

  • 选中路径确为 relay。
  • 无效凭据不能使用中继。
  • 不同网络条件均验证双向音频。
  • 流量估算写明双向与出入站口径。
当前证据的限制

本轮没有安装、重启或开放任何 TURN 服务;生产配置与防火墙需要在目标环境验证。

本轮确认的事实与来源

以下为公开资料支持的具体结论;操作流程和验收建议属于工程推导。仓库说明或厂商效果表述不等于独立实测。

[1] IETF RFC 8445 · ICE

RFC 8445 定义候选对检查与提名流程,包含 ICE restart。

资料日期:2018-07 · 复核:2026-09-08

阅读原始来源 ↗
[2] IETF RFC 8656 · TURN

RFC 8656 描述 TURN allocation、permission、channel 与 refresh,TURN 分配与媒体传输均有状态生命周期。

资料日期:2020-02 · 复核:2026-09-08

阅读原始来源 ↗
[3] coturn · 官方仓库

coturn 官方仓库列出支持的 STUN/TURN 协议与认证机制;应以所部署版本的具体支持项为准。

资料日期:页面未统一标注;以复核日期为准 · 复核:2026-09-08

阅读原始来源 ↗

这次更新了什么

将长篇部署罗列改成连通性验收与容量计算;不提供脱离网络和版本的万能配置。

合并前的内容入口

以下旧地址仍可访问,并会带你来到本篇。完整重构前材料已留存本地备份。

  • research-hub/stun-turn-selfhost.html

接着解决下一个问题