上传 .pcap 抓包文件,自动解析 SIP 信令和 RTP 码流,检测问题并给出排查建议
支持 .pcap / .pcapng / .cap,单个最大 300MB
tcpdump -i any -w gb28181.pcap -s 0 -W 5 -C 100 'udp port 5060 or udp portrange 10000-40000 or tcp port 5060'
tcpdump -i any -w device.pcap -s 0 host 192.168.1.100
tcpdump -i any -w rtp.pcap -s 0 'udp portrange 20000-25000'
tcpdump -i any -w tcpsip.pcap -s 0 'tcp port 5060'
tcpdump -i any -w siponly.pcap -s 0 'udp port 5060 or tcp port 5060'
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)'
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'
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 &
timeout 300 tcpdump -i any -w timed.pcap -s 0 'udp port 5060 or udp portrange 10000-40000'
tcpdump -i any -nn -vvv 'udp port 5060' 2>&1 | tee /tmp/sip_debug.log
mergecap -w merged.pcap signaling.pcap stream.pcap
tcpdump -nn -r gb28181.pcap 'udp port 5060' | head -50
pkill -f 'tcpdump.*gb28181' && echo '已停止抓包'
| -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 5060 | GB28181 默认 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 服务器编码是否正确。 |
-W -C 参数持续抓包,保留问题现场host 或 port 精确过滤,避免文件过大