CentOS 环境 sngrep 安装及使用

前言

在呼叫中心类应用开发过程中,经常需要对 SIP 信令抓包,分析排查问题。通常抓包的工具非常多样,如 Wireshark、tcpdump、ngrep 等都是可选项,但是针对 SIP 信令的抓包,sngrep 则更为好用。因为 sngrep 不仅提供了图形界面,还会将一通会话的 SIP 信令关联汇总,非常直观

1. CentOS 环境安装 sngrep

1.1 下载依赖库

执行以下命令下载 sngrep 的相关依赖库

sudo yum install ncurses-devel make libpcap-devel pcre-devel openssl-devel git gcc autoconf automake

1.2 添加 sngrep 的源并导入

  1. 执行下面的命令新增一个源仓库配置文件
    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 使用示例

  1. 执行命令 sudo sngrep -d eth0 -r 抓取指定网卡 eth0 上的 SIP 包,进入到会话列表页面

    机器上可能会有多个网卡设备,一般网络抓包时如果不指定目标网卡,默认都是抓取所有网卡上的网络包。在 Linux 系统上,机器的网卡设备可以通过 ifconfig 命令查看

    在这里插入图片描述

  2. 选定一个会话后按回车键查看一通 SIP 会话的完整交互,在该界面点击F3可以查看 RTP 交互

    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值