5349 是什么
5349 是 STUN 与 TURN 的加密端口。WebRTC 用 STUN 发现自己的公网映射,用 TURN 在直连失败时经过服务器中继媒体;默认的 3478 承载明文 UDP 与 TCP,5349 则承载 TLS 与 DTLS 变体,在封锁 UDP 或要求加密的企业网络中成为主要通道。
和 3478 的关系
典型部署中两者同时开启:客户端先尝试直连与 UDP 中继,失败后回退到基于 TCP 与 TLS 的 5349。视频会议在受限网络里黑屏或只有声音没有画面,往往就与只放行 3478 有关。
基本信息
| 服务 | STUN 与 TURN 的 TLS 与 DTLS 变体 |
|---|---|
| 协议 | TCP/TLS 或 UDP/DTLS |
| 规范 | RFC 5389(STUN)、RFC 5766(TURN) |
| 典型实现 | coturn |
| 安全等级 | 面向公网,必须启用鉴权 |
典型使用场景
- 为自建视频会议或在线课堂提供穿透与中继服务
- 企业网络封锁 UDP 时让客户端改走加密 TCP 通道完成中继
- 排查「能登录但看不到画面」时确认 5349 是否放行
- 为公网可用的实时音视频应用估算中继带宽
- 安全核查时确认中继服务是否启用临时凭据鉴权
中继服务配置要点
中继服务配置要点
# /etc/turnserver.conf
# listening-port=3478 # 默认通道
# tls-listening-port=5349 # 加密通道
# fingerprint
# use-auth-secret # 临时凭据鉴权
# static-auth-secret=<随机串>
# cert=/etc/ssl/turn.crt
# pkey=/etc/ssl/turn.key连通与证书检查
连通与证书检查
openssl s_client -connect turn.example.com:5349 </dev/null | head -5 # TLS 握手
nc -zv turn.example.com 3478 # 基础端口连通性
systemctl status coturn | head -5 # 服务状态端口分工
| 端口 | 协议 | 用途 |
|---|---|---|
| 3478 | UDP 与 TCP | 默认 STUN/TURN 通道 |
| 5349 | TCP/TLS 或 UDP/DTLS | 加密通道,UDP 被封锁时的主要路径 |
| 中继端口段 | UDP | 媒体中继使用,需一并放行 |
中继服务除了 3478 与 5349,还需要一段媒体中继端口范围。只放行信令端口会出现「连接建得起来但没有声音画面」,规划网络策略时要把这段一起确认。
鉴权方式怎么选
公网可用的中继服务必须依赖临时凭据而不是固定账号:客户端先申请有有效期的凭据,再据此申请中继地址,凭据过期即失效。固定账号一旦写进前端代码,任何打开页面的人都能免费使用你的中继带宽,账单会在月底才显现。
容量规划:中继带宽约等于同时中继的并发路数乘以单路码率,直连成功的会话不会消耗中继资源,因此按并发峰值的三到五成预留通常够用,具体以实际统计为准。