SIP抓包工具-sngrep的使用

一、什么是sngrep?

sngrep 是专门用于 SIP 信令抓包和分析 的终端工具,比 tcpdump 更直观,特别适合调试 VoIP、FreeSWITCH、Asterisk、Kamailio 等 SIP 系统

简单来说:就是当你拨打 VoIP 电话时,电话的信令(比如谁打电话、谁接电话、如何建立连接、如何挂断等)就是通过 SIP 协议来管理的。

二、sngrep的呼叫流程:

INVITE → 呼叫发起

100 Trying → 服务器收到请求

180 Ringing → 对方在响铃

200 OK → 对方接听

ACK → 确认接听,建立通话

BYE → 挂断通话

三、常见SIP错误状态码:

|-------------|---------------------------------|------------------------|
| 错误码 | 含义 | 可能原因 |
| 403 | Forbidden(禁止访问) | 认证失败、权限不足 |
| 404 | Not Found(未找到) | 目标号码不存在、号码格式错误、目标设备未注册 |
| 480 | Temporarily Unavailable(暂时无法使用) | 目标设备忙、无法连接网络、设备离线 |
| 486 | Busy Here(目标忙线) | 目标设备正在通话中 |

403:检查账号和密码是否正确,确保用户有权限拨打此号码。

404:确认目标号码是否正确,确保该号码已在服务器上注册并存在。

480:目标设备可能忙线或不可达,检查目标设备的状态。

486:目标设备正在通话中,稍后再拨。

四、安装sngrep

在 Debian 或 Ubuntu 系统上安装sngrep

复制代码
命令:
apt update
apt install sngrep

五、常用的命令

1.在默认网卡上抓所有 SIP 包

sngrep

2.抓指定端口(SIP 5060)

sngrep udp port 5060

3.抓 UDP 的 SIP(常用)

sngrep udp port 5060

4.抓某个网卡

sngrep -d ens33

5.抓 RTP(语音流)

sngrep 默认不显示 RTP,但可以显示呼叫的 RTP 信息。

sngrep -d any port 5060 or portrange 10000-20000

(FreeSWITCH 的 RTP 默认是 16384--32768)

6.保存为 pcap 供 Wireshark 分析

sngrep -O sip.pcap

三、常用的过滤方式

1.基于IP地址过滤

源 IP 地址过滤:

sngrep src host <IP 地址>

目标 IP 地址过滤:

sngrep dst host <IP 地址>

某一 IP 地址过滤:

sngrep host <IP 地址>

  1. 基于端口过滤

源端口过滤:

sngrep src port <端口号>

目标端口过滤:

sngrep dst port <端口号>

某一端口过滤:

sngrep port <端口号>

  1. 基于协议过滤

SIP 消息过滤:

sngrep -d sip

  1. 基于请求类型过滤

可以根据 SIP 请求的类型来过滤消息

过滤 INVITE 请求:

sngrep 'INVITE'

过滤 BYE 请求:

sngrep 'BYE'

过滤 REGISTER 请求:

sngrep 'REGISTER'

  1. 基于状态码过滤

过滤 200 OK 响应:

sngrep '200 OK'

过滤 404 Not Found 响应:

sngrep '404'

  1. 时间范围过滤

通过指定时间范围来查看特定时间段内的 SIP 流量

sngrep -t '2025-11-27 08:00:00' -T '2025-11-27 09:00:00'

  1. 基于会话过滤

过滤某个会话(会话 ID):

sngrep -s <会话ID>

  1. 其他常用过滤选项

过滤某个特定用户代理:

sngrep 'User-Agent: <某个代理>'

  1. 组合过滤

结合多个过滤条件来进一步缩小显示的范围,如:

过滤某个 IP 地址和特定请求类型:

sngrep host <IP 地址> 'INVITE'

相关推荐
Seoyoneh1 天前
呼叫中心系统上云还是本地部署?架构、成本与运维全维度技术对比
人工智能·信息与通信·通信
企业通信技术笔记1 天前
私有化即时通讯软件有哪些?商用IM、开源IM与安全通信方案对比
信息与通信·即时通讯·企业im·企业即时通信·通讯软件
爱研究的小梁1 天前
告别实验室理想网络,真实场景下具身智能远程操控怎么干?
网络·人工智能·机器人·信息与通信
Seoyoneh2 天前
智能客服意图识别实战:深度学习与规则引擎融合架构与落地实践
人工智能·信息与通信·通信
霍格沃兹测试学院-小舟畅学2 天前
UI 测试的语义断言:Midscene aiAssert 比像素比对稳在哪、又会骗在哪
人工智能·测试工具
zuozewei2 天前
附录 A:主流工具对比选型表
人工智能·测试工具
我的xiaodoujiao2 天前
Django 基础知识详细图文教程 10-Django 模板引擎 3
后端·python·测试工具·django
霍格沃兹测试学院-小舟畅学2 天前
Google 开源 ARTEMIS:AI Agent 如何接管 Android 真机测试?
人工智能·测试工具
Liaiyang662 天前
# 自研 AST 容错初筛工具:横向评测 Django、PyTorch、TensorFlow 三大开源 Python 框架异常收容风险
python·测试工具·自动化·开源软件·代码规范·devops·代码复审
捷烽2 天前
光纤熔接机是什么?工作原理与马达结构(2026)
运维·网络·信息与通信