Skeyevss FAQ:内外网 IP 与 WAN 开关配置
1. 为什么要有 INTERNAL / EXTERNAL
GB28181 信令与 SDP 中多处需要填写「对端可见的地址」。同一台服务器:
- 对 局域网设备 应呈现内网 IP;
- 对 公网设备 应呈现公网 IP(或经映射后对外声明的地址)。
平台通过环境变量区分这两类地址,并在构建 SIP/SDP 时选择正确一侧,避免「设备把码流发到不可达地址」。
2. 关键变量说明(概念)
SKEYEVSS_INTERNAL_IP:服务器在局域网中的地址,供内网终端访问信令与媒体;SKEYEVSS_EXTERNAL_IP:对公网侧声明的地址(可以是公网 IP 或统一入口 IP);SKEYEVSS_VSS_SIP_USE_EXTERNAL_WAN:是否按「外网/WAN」策略生成对设备可见的 SIP 与媒体描述(具体行为以当前版本实现为准,部署时以官方说明与实测为准)。
3. 典型部署组合
3.1 纯内网
设备与平台同一二层/三层内网:
INTERNAL_IP/EXTERNAL_IP可设为同一内网地址(常见做法);SIP_USE_EXTERNAL_WAN一般为false。
3.2 设备在公网、平台在机房公网 IP
EXTERNAL_IP填机房对外 IP;SIP_USE_EXTERNAL_WAN通常为true;- 防火墙放行 SIP 与媒体端口段。
3.3 平台在内网、仅部分设备经映射访问
需明确:设备看到的「SIP 服务器地址」 是映射后的公网 IP 还是内网 IP,并与 EXTERNAL_IP、SDP 声明一致;否则会出现注册成功但点播无流(媒体地址不可达)。
4. 常见配置错误
- 设备填公网,但
SIP_USE_EXTERNAL_WAN=false,导致 SDP 仍写内网地址; - 修改
.env后未重启 VSS,旧进程仍用旧 IP; - 多网卡机器选错绑定地址,
INTERNAL_IP与实际监听网卡不一致。
5. 验证方法
- 在 SIP 实时日志 中查看发往设备的
INVITE里 SDP 的c=是否为预期 IP; - 用
tcpdump在设备侧或平台侧看 RTP 目的地址是否一致; - 对比设备 Web 配置中的「SIP 服务器地址」与平台声明是否同拓扑语义。
内外网本质是对谁可见的问题,配置时记住 设备 → NAT/路由 → 平台 即可少踩坑。