颓哀
2025-7-6 21:42:13
对讲终端脱机抓包通用分析指南
目录
- 抓包准备阶段
- 抓包操作步骤
- Wireshark分析关键点
- 常见问题解决方案
- 高级分析技巧
- 无法解决时的进一步操作
1. 抓包准备阶段
1.1 确定抓包位置
- 关键接口:在服务器上抓取与问题终端通信的网卡流量(通常是对讲系统使用的业务网卡)
- 辅助接口:若服务器有多个网卡(如管理网卡、业务网卡),需确认目标终端连接的物理端口或VLAN
1.2 安装Wireshark
- Windows服务器:
- 官网下载安装包:https://www.wireshark.org/
- 安装时勾选 Npcap(WinPcap的替代品,支持现代Windows)
- Linux服务器:
- # Ubuntu/Debian
- sudo apt update
- sudo apt install wireshark
- sudo usermod -aG wireshark $USER # 将当前用户加入wireshark组
- newgrp wireshark # 刷新组权限 # 刷新组权限
复制代码 1.3 配置镜像端口(如需跨设备抓包)
- 若问题终端与服务器不在同一设备:
- 在交换机上配置端口镜像,将目标终端的流量镜像到服务器网卡
- 示例命令(华为交换机):
- observe-port 1 interface GigabitEthernet0/0/1 # 镜像到服务器所连端口
- interface GigabitEthernet0/0/2 # 问题终端所连端口
- port-mirroring to observe-port 1 both # 镜像进出双向流量
复制代码
2. 抓包操作步骤
2.1 启动Wireshark并选择网卡
- sudo wireshark # Linux需提权,Windows直接打开
复制代码
- 选择服务器与终端通信的网卡(如 eth0 或 192.168.1.x 对应的接口)
2.2 设置抓包过滤器(减少噪声)
- 基础过滤(根据终端IP):
- ip.addr == 192.168.1.100 # 替换为目标终端的IP
复制代码 - 协议过滤(常见对讲协议):
- udp.port == 5060 || udp.port == 10000-20000 # SIP+语音端口范围
- || tcp.port == 80 || udp.port == 5061 # HTTP/HTTPS/SIPS
复制代码 2.3 开始抓包并重现问题
- 点击 鲨鱼鳍图标 开始捕获
- 立即操作:从问题终端发起一次呼叫(触发"目标脱机"提示)
- 问题复现后,点击 红色停止按钮 结束抓包
2.4 保存抓包数据
- File > Save As 保存为 广播服务器_目标脱机.pcapng
3. Wireshark分析关键点
3.1 检查目标终端可达性
- ARP解析:搜索目标终端IP的ARP请求(过滤 arp)
- ICMP检测(若允许ping):
- icmp && ip.addr == 目标终端IP
复制代码
3.2 分析呼叫信令流程
- SIP协议分析(常见对讲系统协议):
- 过滤:sip 或 sip.Call-ID contains "会话ID"
- 正常流程:INVITE → 100 Trying → 180 Ringing → 200 OK → ACK
- 异常场景:
- INVITE 无响应 → 目标终端未收到请求(防火墙拦截/终端离线)
- INVITE 返回 404 Not Found → 终端未注册到服务器
- INVITE 返回 503 Service Unavailable → 服务器路由错误
3.3 检查终端注册状态
- 过滤终端IP的注册请求:
- sip.Method == "REGISTER" && ip.src == 目标终端IP
复制代码 - 若最后一次 REGISTER 过期(查看 Expires 头),服务器会标记终端为离线
3.4 排查防火墙/中间设备干扰
- 查找 TCP RST 或 ICMP Destination Unreachable 数据包:
- tcp.flags.reset == 1 || icmp.type == 3
复制代码 - 此类包表明流量被中间设备(防火墙、路由器)拦截
3.5 分析会话超时
- 若呼叫建立后突然断开:
- 检查 SIP BYE 发起方(终端主动退出?)
- 查看 RTP流(语音流)是否中断:
- Telephony > RTP > Stream Analysis → 检查丢包率和抖动
4. 常见问题解决方案
问题根因解决方案目标终端未注册1. 检查终端网络配置
2. 确认终端到服务器的5060/5061端口可达
3. 抓取终端侧日志SIP信令被防火墙拦截1. 在服务器/防火墙上放行UDP 5060-5080端口
2. 关闭服务器临时防火墙:sudo ufw disable(测试用)NAT穿透失败1. 服务器配置STUN/TURN服务
2. 修改SIP Contact 头为公网IP(如FreeSWITCH中设置external_sip_ip)终端心跳超时1. 延长SIP注册有效期(修改 Expires 值)
2. 配置OPTIONS心跳检测服务器路由表错误1. 检查SIP服务器配置(如FreeSWITCH的 dialplan)
2. 确认目标终端在注册数据库中的状态5. 高级分析技巧
- 绘制呼叫流程图:
Statistics > Flow Graph → 选择 "Limit to display filter"
- 追踪特定会话:
右键SIP数据包 → Follow > UDP Stream
- 解码自定义协议:
若使用私有协议,通过 Analyze > Decode As 指定端口和协议类型
- 时间分析:
在问题时间点右键标记 → Set Time Reference,计算响应延迟
6. 无法解决时的进一步操作
- 交叉验证:
- 在 目标终端侧抓包,对比服务器流量
- 在 交换机镜像口抓包,确认流量是否到达网络设备
- 收集日志:
- 服务器日志(如FreeSWITCH的 /var/log/freeswitch/freeswitch.log)
- 终端日志(联系设备厂商获取)
- 协议模拟测试:
使用 sipsak 或 sipp 工具模拟呼叫,隔离终端故障:- sipsak -s sip:目标终端IP -v -U 问题终端IP
复制代码 最后更新日期:2025年7月6日
来源:豆瓜网用户自行投稿发布,如果侵权,请联系站长删除 |
|
|
|
相关推荐
|
|