当前位置: 首页 > news >正文

NAT导致视频监控平台无法拉取视频流故障一例

工作需要访问一个外网视频监控平台,之前一直使用没有问题,突然有一天发现平台能正常访问,但无法看到监控视频。联系了平台方也没有找到问题原因,最后对方说不能做NAT。网络一直在做NAT,怎么会突然有问题?

同事把公网IP配置在本地计算机上,跳过NAT后故障消失,说明确实NAT导致问题。这个网络的NAT配置在了紫光防火墙上,可以通过抓包可以分析下问题。

一、抓包分析原因

先在本机计算机上用wireshark进行抓包,看看和服务器是如何通信的。

通过抓包,可以找到很多通信报文,其中比较特别的是SIP协议报文,我以为监控平台直接用的HTTP协议通信。把SIP协议报文发给AI帮忙分析一下,AI确实很有帮助,解释的很清楚但没有真的解决问题,这是个伏笔。

通过AI帮助分析,得知提供监控视频的服务器,采用了SIP协议注册,RTP协议拉监控视频流的方式工作。通过上图中的SIP注册报文可以看到,携带的注册信息Via部分为局域网本地ip x.x.x.217(箭头处)。如果SIP服务器收到的注册报文该字段也是局域网ip x.x.x.217,sip可能会把此IP地址作为回包地址。RTP的视频流会给到此局域网IP,而非实际通信的公网IP,则会出现通信故障。是否是这么回事,需要在防火墙的外网口上抓包进一步查看。

在防火墙外网口抓包,同样抓到SIP注册报文。通过上图注册报文可以看到,报文源IP已经经过防火墙的NAT转换替换成了公网IP x.x.x.252,但是报文中的Via注册信息仍显示局域网IP x.x.x.217。如果SIP服务器没有特殊设置,或者本地计算机上程序没有特殊设置,SIP会使用这个注册IP地址进行通信导致故障。

二、故障解决

之前了解sip协议还是在视频会议系统中有SIP、H.323两个协议,视频会议终端有会有nat穿越设置,应该就是视频会议终端发起SIP注册时使用公网IP注册,规避NAT问题。

联系了平台方,对方还是说不能NAT,只能从防火墙上想办法。实际上,一般防火墙有一个ALG功能就是解决NAT后FTP、H.323、SIP等协议通信问题的。像sip alg会在报文NAT转换时,同时把注册信息中的ip替换成公网ip。但是紫光防火墙的ALG功能好像没生效,紫光防火墙web界面也没有alg相关配置。

联系了紫光400售后客服,提醒39824不是sip标准端口,可以自定义SIP端口。按售后建议修改后,故障解决。SIP ALG生效后在出接口抓包如下图。

上面这个NAT后的报文可以看到,注册IP已经是公网IP x.x.x.252,这样SIP回包也就正常了。很奇怪,查了一下39824确实不是标准sip端口,但wireshark却能正确识别协议,让我一开始没往非标准端口上考虑。

总结一下,因非标准SIP端口,防火墙SIP ALG未生效,导致监控视频流异常。

http://www.jsqmd.com/news/1068063/

相关文章:

  • 上下文窗口、KV Cache 与长上下文问题
  • Kubernetes 之资源对象 Pod详解
  • Celery 和 Apache Airflow 都可用于定时任务调度与全量数据批量分析,但定位、架构和适用场景有显著区别
  • Java 集合 - Java集合框架详解与应用
  • 毕业设计 深度学习yolo藻类细胞检测识别(科研辅助系统)(源码+论文)
  • pikachu详细通关教程
  • YOLO系列目标检测数据集大全【第四十一期】
  • 基于 Harmony 6.0 应用的乡村助农直播应用首页实现
  • UniLaViRA/HumanoidMimicGen/VERA/Tabero/S-Cheetah/FGO六大具身SOTA全网独家复现|零样本跨体导航/人形数据扩增/视频动作映射/触觉柔顺控力/仿生四足
  • 视频协议传输全解析:从 HTTP/HTTPS 到 HLS/DASH 的完整旅程
  • Java 集合 - 用好 SortedMap 和 NavigableMap,优化 Java 集合排序与操作效率
  • 后端常见问题
  • 继电器项目
  • RAG 系统化学习教程(含查询改写、混合检索、重排序、上下文增强与评估闭环)
  • 2026山东大学软件学院项目实训-宠物情绪识别(七)
  • 震动感应灯
  • Kimi LeetCode 3343. 统计平衡排列的数目 Java实现
  • 手把手教你学Simulink——基于单周期控制(One‑Cycle Control, OCC)的无桥 PFC 整流器仿真
  • 告别重复操作!OpenClaw 2.7.9 电脑自动化完整落地实操
  • 3PEAK思瑞浦 TPA8101-SOAR WSOP8 隔离放大器和调制器
  • 鸿蒙 NDK开发:使用命令行CMake构建工程(三)
  • Windows系统文件FM20.DLL丢失找不到问题解决
  • 为什么你越讨好别人,越没人把你当回事?
  • 腾讯犀牛鸟开源计划启动!一行命令部署 OpenTenBase,速通 issue 拿面试绿通
  • 监督学习与无监督学习是什么?关键区别在有没有答案
  • 【HarmonyOS 6】仿AI唤起屏幕边缘流光特效
  • 基于 Harmony 6.0 应用的车辆保养提醒管家实现
  • Shell脚本为何成为AI智能体视觉(TVA)的“反射弧”(7)
  • 衍射-全息混合架构:实现被动光学实时图像分类的光子AI系统
  • 卫星联邦学习CroSatFL:跨聚合机制如何破解星上智能节能难题