📡 GB28181 PCAP 分析工具

上传 .pcap 抓包文件,自动解析 SIP 信令和 RTP 码流,检测问题并给出排查建议

📁

点击上传 PCAP 文件

支持 .pcap / .pcapng / .cap,单个最大 300MB

未选择文件

📖 使用说明

📟 常用抓包命令

🔹 抓取所有 SIP + RTP(推荐)
tcpdump -i any -w gb28181.pcap -s 0 -W 5 -C 100 'udp port 5060 or udp portrange 10000-40000 or tcp port 5060'
抓取 GB28181 默认 SIP 端口 5060 + 常用 RTP 端口范围 10000-40000。每次 100MB 切分,保留 5 个文件。
🔹 按 IP 抓取某台设备流量
tcpdump -i any -w device.pcap -s 0 host 192.168.1.100
只抓指定 IP 的所有报文。适合怀疑单台设备有问题时使用。
🔹 抓取特定端口范围
tcpdump -i any -w rtp.pcap -s 0 'udp portrange 20000-25000'
只抓 RTP 码流报文。端口范围根据实际 SDP 协商结果调整。
🔹 抓取 TCP SIP 信令
tcpdump -i any -w tcpsip.pcap -s 0 'tcp port 5060'
部分平台使用 TCP 传输 SIP 信令(如 GB28181-2016+ 的 TCP 模式)。
🔹 只抓信令(排除码流)
tcpdump -i any -w siponly.pcap -s 0 'udp port 5060 or tcp port 5060'
仅抓 SIP 信令报文。文件小、分析快,但会丢失码流分析能力。
🔹 抓取多个设备(多播/级联场景)
tcpdump -i any -w multi.pcap -s 0 'host 192.168.1.100 or host 192.168.1.101 or host 192.168.1.102'
同时抓取多台设备的流量,适合级联场景或平台间对接。
🔹 抓取特定网段
tcpdump -i any -w subnet.pcap -s 0 'net 192.168.1.0/24 and (udp port 5060 or udp portrange 10000-40000)'
抓取整个网段的 GB28181 流量,适合大规模部署环境。
🔹 排除特定流量(减少噪音)
tcpdump -i any -w filtered.pcap -s 0 'udp port 5060 and not host 192.168.1.1'
排除网关或其他无关设备的流量,减少抓包文件大小。
🔹 限制抓包数量(快速测试)
tcpdump -i any -w quick.pcap -s 0 -c 10000 'udp port 5060 or udp portrange 10000-40000'
只抓 10000 个包后自动停止。适合快速复现问题场景。
🔹 后台持续抓包(守护模式)
nohup tcpdump -i any -w /var/log/gb28181.pcap -s 0 -W 10 -C 50 'udp port 5060 or udp portrange 10000-40000' > /dev/null 2>&1 &
后台持续抓包,每 50MB 切分,保留 10 个文件滚动覆盖。适合长期监控。
🔹 按时间范围抓包
timeout 300 tcpdump -i any -w timed.pcap -s 0 'udp port 5060 or udp portrange 10000-40000'
使用 timeout 限制抓包时长(300秒=5分钟)。适合定时复现周期性问题。
🔹 抓包同时实时预览
tcpdump -i any -nn -vvv 'udp port 5060' 2>&1 | tee /tmp/sip_debug.log
不保存文件,直接在终端输出 SIP 信令内容并写入日志。适合实时调试注册/心跳问题。
🔹 合并多个抓包文件
mergecap -w merged.pcap signaling.pcap stream.pcap
将分别抓取的信令和码流文件合并为一个文件,再上传分析。需要安装 wireshark/tshark。
🔹 读取已有 pcap 文件
tcpdump -nn -r gb28181.pcap 'udp port 5060' | head -50
离线分析已抓的 pcap 文件,查看前 50 条 SIP 信令。可替换过滤条件缩小范围。
🔹 停止后台抓包
pkill -f 'tcpdump.*gb28181' && echo '已停止抓包'
安全停止后台 tcpdump 进程,已抓取的 pcap 文件不会丢失。

📋 参数说明

-i any监听所有网卡。也可以用 eth0、br0 等指定网卡名。
-w xxx.pcap保存抓包结果到指定文件,用于上传分析。
-s 0抓取完整报文,不截断。GB28181 XML 消息体可能很长。
-W 5结合 -C 使用,保留最近 5 个切分文件(滚动覆盖旧文件)。
-C 100每个 pcap 文件最大 100MB,满了自动切换。避免单文件过大。
-c N抓取 N 个包后自动停止。
host x.x.x.x只抓特定 IP 的流量。也可以用 src/dst host 指定方向。
net x.x.x.x/24抓取整个网段的流量。
port 5060GB28181 默认 SIP 信令端口。部分平台可能使用其他端口。
portrange A-B匹配端口范围。RTP 端口通常在 10000-65535 之间动态分配。
udp / tcp指定协议类型。SIP 通常 UDP,RTP 一定是 UDP,部分平台 SIP 用 TCP。
and / or / not逻辑运算符,组合多个过滤条件。

🎯 场景化排查指南

设备无法注册 平台侧抓包,过滤 host 设备IP。检查 REGISTER 是否到达,平台是否回复 200 OK 或 401 Unauthorized。
预览无画面 同时抓信令+码流。检查 INVITE/200 OK 是否成功,SDP 中 y= 字段(SSRC)是否与 RTP 包一致。
画面卡顿/花屏 抓至少30秒码流。重点检查丢包率、关键帧间隔、抖动值。对比上下级抓包文件。
云台控制失效 抓信令即可。检查 INFO 方法的 PTZ 控制消息(XML 格式)是否发送,设备是否回复 200 OK。
录像回放失败 检查 INVITE 中是否携带 u= 字段(回放起始时间),设备是否回复 200 OK 并发送码流。
语音对讲异常 双向语音需要检查两路 RTP 流。平台→设备(PCMA/G.711A)和设备→平台。
告警不上传 检查设备是否发送 MESSAGE 方法(Alarm 事件),平台是否回复 200 OK。
级联故障 上级平台下级平台同时抓包,对比 SIP 消息差异。检查 Via/Record-Route 头域。
设备频繁掉线 抓包查看心跳间隔是否稳定(通常 60s)。检查网络是否有丢包导致 REGISTER 超时。
目录查询为空 检查 MESSAGE 中的 Catalog 请求,设备回复的 DeviceList 是否为空,SN 序列号是否匹配。
音频无声/杂音 检查 SDP 协商的编码格式(PCMA/PCMU/G.726),双方是否一致。抓码流查看 RTP 负载类型是否匹配。
国标编码错误 检查 SIP 头中的 From/To 字段,设备编码必须是 20 位数字。检查平台 SIP 服务器编码是否正确。

💡 排查技巧

  • 码流故障 → 信令+码流一起抓,缺一不可
  • SIP 超时 → 抓到好几分钟没响应的报文即可
  • 码流不清晰 → 至少抓15秒以上确保抓到关键帧
  • 上下级定位 → 分别在上级和下级同时抓包对比
  • 偶发问题 → 使用 -W -C 参数持续抓包,保留问题现场
  • 大流量环境 → 使用 hostport 精确过滤,避免文件过大
  • 心跳排查 → 关注 MESSAGE Keepalive 间隔,设备通常 60s,平台 30s
  • 注册失败 → 先确认 401 质询是否正常,再检查 Digest 认证计算
  • SDP 协商 → 关注媒体 IP、端口、编码格式,上下行必须一致
  • RTP 诊断 → 关注 SSRC、PT(负载类型)、丢包率、抖动、关键帧间隔
  • 信令对比 → 正常设备和故障设备同时抓包,对比 SIP 消息差异快速定位
⚠️ 注意:上传的 pcap 文件必须包含 SIP 信令(端口 5060),否则无法解析设备信息和呼叫关系。如需码流分析,还需包含 RTP 码流数据。 tcpdump 抓包时建议在上级平台侧进行,可以同时抓到上下行信令和码流。
⚙️ 告警阈值设置
🔍 数据筛选
筛选结果: 0 条 SIP 消息, 0 条码流
排序:

🤖 AI 智能分析

本地 AI
🔒 您的 API Key 仅限本次会话使用,本站不会保存任何密钥和分析数据。
📋 检测到上次的分析结果,是否恢复?