试用安装包下载 | SMS | 在线演示
项目源码地址:https://github.com/openskeye/go-vss
1. 典型问题
- 信令注册成功,点播无画面或 RTP 单通;
- 外网客户端能收目录,拉流超时;
- 内网预览正常,跨 NAT 失败;
- SDP 中
c=/m=地址为私网段,对端无法路由。
以上多与SDP 中的媒体地址未改写为对端可达地址或RTP 端口未映射有关。
2. 基本概念
- 信令 NAT与媒体 NAT是两层问题:SIP 路径通了,RTP 仍可能走错网卡或私网地址。
- ALG:部分路由器 SIP ALG 会错误改写包头,导致Contact/Via 错乱;疑难时可对比开关 ALG 的表现。
- Symmetric NAT下单纯端口映射可能不够,需STUN/TURN或平台侧统一媒体代理(视架构而定)。
3. 平台侧配置要点(通用)
- 配置对外媒体 IP,确保 SDP 中携带的地址与端口对播放端/上级平台可达;
- 若多网卡,明确SIP 绑定地址与RTP 出口是否一致;
- 核对防火墙放行 UDP 端口段(RTP 常用偶数端口范围),不要只放信令端口。
具体键名以当前版本的.env或配置文档为准。
4. 设备侧
- 确认设备本地网络与平台填写的 SIP 服务器是否同一可达路径;
- 部分 IPC 需在 Web 里填STUN 服务器或开启NAT 穿透选项;
- 若设备在多层 CGNAT 后,优先考虑平台侧集中转发而非端到端直连。
5. 抓包与验证
- 在平台出口或客户端侧抓包,看INVITE/200 OK 的 SDP中外层 IP 是否为预期公网;
- 抓RTP/RTCP是否有双向流;若只有单向,检查对端是否向错误 IP 发包;
- 对比内网直连与跨 NAT两种场景的 SDP 差异。
6. 级联与上级平台
上级拉流时,若下级返回的 SDP 仍为下级内网地址,上级无法建链。级联场景要统一媒体地址发布策略(由哪一层做改写、哪一层做代理)。
NAT 问题先读 SDP,再抓 RTP;信令成功只说明找对对应设备,不代表媒体对接成功。