SIP抓包工具 SIP抓包 SIP抓包
CentOS 环境 sngrep 安装及使用
在呼叫中心类应用开发过程中,经常需要对 SIP 信令抓包,分析排查问题。通常抓包的工具非常多样,如 Wireshark、tcpdump、ngrep 等都是可选项,但是针对 SIP 信令的抓包,sngrep 则更为好用。因为 sngrep 不仅提供了图形界面,还会将一通会话的 SIP 信令关联汇总,非常直观
————————————————
1.1 下载依赖库
sudo yum install ncurses-devel make libpcap-devel pcre-devel openssl-devel git gcc autoconf automake
1.2 添加 sngrep 的源并导入
sudo vim /etc/yum.repos.d/irontec.repo
然后在该文件中写入以下配置内容
[irontec]
name=Irontec RPMs repository
baseurl=http://packages.irontec.com/centos/$releasever/$basearch/
2.执行命令导入源仓库的公钥
sudo rpm --import http://packages.irontec.com/public.key
1.3 安装 sngrep
以上步骤处理完毕,执行以下命令即可下载安装 sngrep
sudo yum install sngrep
2. sngrep 使用
2.1 sngrep 可选参数列表
sngrep 常用的参数如下表所示,需注意 sngrep 只能抓取本机网卡上的出入流量
参数 功能
-d 指定需要抓包的网卡
-r 捕获 RTP 媒体包
-I 从 pacp 文件中解析 SIP 包
-O 输出捕获的包到 pacp 文件中
-c 仅显示以 INVITE 消息开始的 SIP 会话,可用于过滤掉心跳检测类消息
-l 限制捕获对话的数量
————————————————
2.2 sngrep 使用示例
执行命令 sudo sngrep -d eth0 -r 抓取指定网卡 eth0 上的 SIP 包,进入到会话列表页面
机器上可能会有多个网卡设备,一般网络抓包时如果不指定目标网卡,默认都是抓取所有网卡上的网络包。在 Linux 系统上,机器的网卡设备可以通过 ifconfig 命令查看
————————————————