sngrep 安装与使用教程

 

sngrep 是一款轻量级的 SIP 抓包工具,专门用于 实时分析 SIP 呼叫流,可以在终端中 可视化 SIP INVITE、REGISTER、BYE 等消息,并支持保存和过滤流量。
本教程适用于 CentOS(FreePBX)、Debian、Ubuntu 等 Linux 服务器。


1. 安装 sngrep

1.1 CentOS / RHEL(适用于 FreePBX)

  1. 启用 EPEL 源并安装 sngrep:
    yum install epel-release -y
    yum install sngrep -y
    

1.2 Debian / Ubuntu

  1. 直接使用 apt 安装:
    apt update && apt install sngrep -y
    

1.3 从源码安装(适用于所有 Linux)

如果你想安装最新版本,可以从 GitHub 编译:

git clone https://github.com/irontec/sngrep.git
cd sngrep
./bootstrap.sh
./configure
make && make install

安装完成后,运行 sngrep 以确认是否成功安装:

sngrep -v

如果返回版本号,说明安装成功。


2. 使用 sngrep 进行 SIP 抓包

2.1 运行 sngrep

默认情况下,运行以下命令即可 实时查看 SIP 流量

sngrep

界面说明:

  • 显示所有 SIP 会话(REGISTER、INVITE、BYE 等)。
  • 你可以选择某个 SIP 通话,按 Enter 进入详细分析。

2.2 过滤特定 SIP 端口

SIP 默认使用 UDP 5060 端口,你可以指定端口抓包:

sngrep -f "port 5060"

如果你使用 PJSIP,可能会使用 TCP/TLS 端口 5061

sngrep -f "port 5061"

2.3 只抓取 INVITE(呼叫请求)

sngrep -t INVITE

或者:

sngrep -f "udp port 5060 and sip.Method == INVITE"

这样可以只显示 呼叫 而不显示 REGISTER、OPTIONS 等 SIP 消息。


2.4 只抓取特定 IP 地址的 SIP 流量

如果你想查看某个 FreePBX 服务器或外部 VoIP 设备的 SIP 流量:

sngrep -IP 192.168.1.100

或者:

sngrep -f "host 192.168.1.100"

这样可以过滤 特定 IP 的 SIP 注册和通话


2.5 保存抓包数据

你可以将 SIP 流量保存为 .pcap 文件,稍后用 Wireshark 分析:

sngrep -O /tmp/sip_capture.pcap

然后你可以用 Wireshark 打开 /tmp/sip_capture.pcap 进行详细分析。


2.6 仅抓取 RTP 语音流

如果你想要抓取 RTP(语音流),可以使用:

sngrep -R

但是 sngrep 主要用于 SIP 协议分析,如果你需要详细 RTP 数据,建议使用 tcpdump

tcpdump -i eth0 udp -w /tmp/rtp_capture.pcap

3. 进阶功能

3.1 以后台模式运行(记录 SIP 流量)

你可以让 sngrep 在后台运行,并保存 SIP 会话:

sngrep -O /var/log/sngrep.pcap -d

当你需要分析数据时,可以使用:

sngrep -I /var/log/sngrep.pcap

这样你可以在稍后分析存储的 SIP 抓包数据。


3.2 结合 grep 过滤特定号码

如果你想查找特定号码的 SIP 呼叫(例如 1001):

sngrep | grep 1001

或者:

sngrep -f "sip contains 1001"

这样你就能快速找到 该号码的所有 SIP 呼叫


3.3 结合 Wireshark 分析

如果你需要详细 RTP 分析,可以先用 sngrep 抓取数据:

sngrep -O /tmp/sip_capture.pcap

然后将数据下载到本地:

scp root@your_freepbx_ip:/tmp/sip_capture.pcap .

最后用 Wireshark 打开并使用 siprtp 过滤数据。


4. 总结

命令 作用
sngrep 监听所有 SIP 流量
sngrep -f "port 5060" 只抓取 SIP 5060 端口数据
sngrep -t INVITE 只显示 INVITE 呼叫
sngrep -IP 192.168.1.100 只监听指定 IP
sngrep -O /tmp/sip_capture.pcap 保存抓包数据
sngrep -R 抓取 RTP 语音流
sngrep -d 后台运行并记录数据

 

 

 

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇