一文教你如何使用sngrep跟踪分析sip信令

sngrep是一个用于分析SIP信令的工具,它可以捕获和解码SIP信令也是一款专业的sip抓包工具,且可以解析tcpdump抓出来的包。 sip协议(会话初始协议),是一种多媒体通信协议;
sip协议的消息主体(报文部分)一般使用的是SDP消息格式。 RTP是一种数据传输协议

tcpdunmp的基本抓包命令:tcpdump -s 0 -i eth0 udp -w outbound_m_22.pcap

-i指定了网卡
-w 抓包后的文件名
sngrep也存在抓包命令,但是没有具体用过。这里记录几个用过的命令

sngrep -d eth0 指定网卡抓包,仅抓通过网卡eth0的信息;
sngrep -I in.pcap 用sngrep打开用tcpdump打开的抓包
前台使用sngrep
注: sngrep需单独安装,这里不描述安装过程

基本示例:

sngrep -n -s 5000 -d any /destination_ip/

解释:

-n 表示不将IP地址解析为主机名。-s 5000 表示监听端口5000。-d any 表示捕获所有网络接口上的数据包。/destination_ip/ 是你想要捕获信令流向的IP地址。

这个命令会捕获所有通过所有网络接口发往指定IP地址的数据包,并将其保存到标准输出。

如果你想要将捕获的信令保存到文件中,可以使用以下命令:

sngrep -n -s 5000 -d any /destination_ip/ > capture.txt

这会将输出重定向到名为capture.txt的文件。

为了过滤并只显示特定的SIP方法(如INVITE),可以使用-W选项:

sngrep -n -s 5000 -d any -W "INVITE" /destination_ip/

在命令行输入sngrep,进入到主页面
在这里插入图片描述
最下面的一行展示了一些用法介绍

Esc退出当前工具
Enter进入了消息详情
space 选中当前数据,再次点击取消选择
F1进入帮助页面
F2保存符合条件列(比如选中的列,符合筛选条件的列等)
F3进入搜索页面,可以按条件进行搜索
F4将选中行的信息在一个屏幕内进行拼接展示
F5清除当前页面的内容
F7进行筛选条件的设置
F10 自定义设置需要展示的列
保存文件

在这里插入图片描述
扩展拼接展示
在这里插入图片描述
自定义设置需要展示的列之后的效果
在这里插入图片描述
请求详情页面
在这里插入图片描述
最下面的一行展示了一些用法介绍

Esc返回上一层
Enter上下滑动,选择消息后,点击进入了消息详情
space 选中当前数据,滑动再次选择一条数据,会将这两条的数据进行对比
F1进入帮助页面
F2显示SDP消息格式的一些信息。包括: 地址信息,每天类型,占用端口,编码方式,频率等信息
F3打开RTP流的信息,展示了当前rtp流的编码,媒体传输数量,双方端口号,若是正在进行的会话。会显示是否有数据流传输
F4回到第一个消息
s修改地址栏是否展示地址端口
F6以Raw格式展示协议
c 进行颜色的调整
9向左移动报文,0向右移动报文
SDP文本信息中,a=sendrecv表示消息是有效的;a=inacative表示消息是无效的;
媒体端口是0,也表示消息是无效的;
a=rtpmap:101 telephone-event/16000表示按键信息,但是sngrep不会展示按键信息;=rtpmap:18 G729/8000 协商的一种编码信息

数据对比

在这里插入图片描述
响应页面
在这里插入图片描述
附件
sip信令的格式及状态码参考文章: https://www.cnblogs.com/11sgXL/p/13553517.html

请求消息类型及含义
请求消息 消息含义
INVITE 发起会话请求,邀请用户加入一个会话,会话描述含于消息体中。对于两方呼叫来说,主叫方在会话描述中指示其能够接受的媒体类型及其参数。 被叫方必需在成功响应消息的消息体中指明其希望接受哪些媒体,还可以指示其行将发送的媒体。如果收到的是关于参加会议的邀请,被叫方可以根据 Call-ID或者会话描述中的标识确定用户已经加入该会议,并返回成功响应消息。
ACK 证实已收到对于 INVITE 请求的最终响应。该消息仅和 INVITE 消息配套使用。
BYE 释放已建立的呼叫
CANCEL 取消尚未完成的呼叫请求,对于已完成的请求(即已收到最终响应的请求)则没有影响。
REGISTER 向SIP网络服务器登记用户位置信息 → 即注册认证
OPTIONS 查询服务器的能力

响应状态码及含义

状态码消息功能
1xx信息响应(呼叫进展响应)0 表示已经接受到请求消息,正在对其进行处理
100试呼叫
180振铃
181呼叫正在前转
182排队
2xx成功响应 表示请求已经被成功接收、处理并被成功接受
200OK
3xx重定向响应 表示需要采取进一步动作,以完成该请求消息
300多重选择
301永久迁移
302临时迁移
303见其他
305使用代理
380代换服务
4xx客户出错 表示请求消息中包含语法错误或者SIP服务器不能完成对该请求消息的处理
400错误请求
401无权
402要求付款
403禁止
404没有发现
405不允许的方法
406不接受
407要求代理权
408请求超时
410消失
413请求实体太大
414请求URI太大
415不支持的媒体类型
416不支持的URI方案
420分机无人接听
421要求转机
423间隔太短
480暂时无人接听
481呼叫腿/事务不存在
482相环探测
483调频太高
484地址不完整
485不清楚
486线路忙
487中止请求
488此处不接受
491待处理请求
493难以辨认
5xx服务器出错 表示SIP服务器故障不能完成对正确消息的处理
500内部服务器错误
501没实现的
502无效网关
503不提供此服务
504服务器超时
505SIP版本不支持
513消息太长
6xx全局故障 表示请求不能在任何SIP服务器上实现
600全忙
603拒绝
604都不存在
606不接受

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/587385.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

联系媒体要有方法莫让投稿发文章只剩一声长叹相见恨晚

曾有一位饱经世事的前辈以一句至理名言警醒世人:“人之所以领悟道理,往往不是源于抽象的道理本身,而是生活给予的实实在在的挫折教训,如同撞南墙一般的痛彻觉醒;同样,让人豁然开朗的,也不是空洞的说教,而是实实在在的人生磨砺。”这一哲理,放在我们日常工作中亦有深刻的启示作用…

ISELED氛围灯方案简介

ISELED目录 一、ISELED 介绍二、ISELED联盟三、ISELED的应用方向四、NXP在ISELED上的贡献一、ISELED 介绍 在当今汽车行业疯狂内卷的时代,各车企把更多精力花费在了车辆内部座舱的设计上,氛围灯出现其实已经有好多年,从最开始的单色氛围灯,到64色、128氛围灯,再到现在的2…

Linux系统----------探索mysql数据库MHA高可用

目录 一、MHA概述 1.1 什么是 MHA 1.2MHA 的组成 1.2.1MHA Node(数据节点) 1.2.2MHA Manager(管理节点) 1.3MHA 的特点 1.4MHA工作原理 1.5数据同步的方式 1.5.1同步复制 1.5.2异步复制 1.5.3半同步复制 二、搭建 MySQ…

CTK插件框架学习-信号槽(05)

CTK插件框架学习-事件监听(04)https://mp.csdn.net/mp_blog/creation/editor/137171155 一、主要流程 信号发送者告诉服务要发送的信号信号发送者发送信号信号接收者告诉服务当触发某个订阅的主题时通知槽函数信号接收者处理槽函数信号槽参数类型必须为(const ctk…

redis数据类型介绍

字符串string: 字符串类型是Redis中最为基础的数据存储类型,是一个由字节组成的序列,他在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据货Json对象描述信息等,是标准的key…

蓝桥杯嵌入式学习笔记(7):ADC程序设计

目录 前言 1. ADC原理 1.1 主要特性 1.2 模拟输出电路图 2. 使用CubeMX进行源工程的配置 2.1 引脚配置 2.2 配置AD1 2.3 配置AD2 2.4 配置时钟 3. 代码编程 3.1 预备工作 3.2 bsp_adc.h文件编写 3.3 bsp_adc.c文件编写 3.4 main.c编写 3.4.1 时钟函数配置 3…

windows下通过vscode访问ubuntu(绝大部分Linux下开发所采用的方案)

前言 本篇博客是介绍VSCode远程连接Ubuntu进行开发的解决方案,前提是安装好了VMWare,Ubuntu,windows下的VSCode。 嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程,未来预计四个月将高强度更新本专栏,喜欢的可以关…

黄金票据攻击

黄金票据攻击——域内横向移动技术 一、黄金票据攻击介绍: 黄金票据攻击是一种滥用Kerberos身份认证协议的攻击方式,它允许攻击者伪造域控krbtgt用户的TGT(Ticket-Granting Ticket)。通过这种方法,攻击者可以生成有效…

vue2项目安装(使用vue-cli脚手架)

使用npm安装 安装镜像(使npm创建项目更快):镜像可更换 npm config set registry https://registry.npmmirror.com1.全局安装vue-cli(一次) npm install -g vue/cli 2. 查看vue-cli 版本 vue --version 3. 创建项目…

“两化”融合试点名单汇总数据(2014至2018年)

01、数据简介 两化融合是指信息化和工业化的高层次的深度结合,其核心在于信息化支撑,追求可持续发展模式。 “两化”融合贯标试点只针对制造业企业,解释变量“两化”融合贯标试点数据来自工业和信息化部办公厅公布的试点名单以及“两化融合…

C语言一维数组及二维数组详解

引言: 小伙伴们,我发现我正文更新的有些慢,但相信我,每一篇文章真的都很用心在写的,哈哈,在本篇博客当中我们将详细讲解一下C语言中的数组知识,方便大家后续的使用,有不会的也可以当…

Redis缓存设计与性能优化【缓存穿透、缓存击穿、缓存雪崩】

Redis缓存设计与性能优化 多级缓存架构缓存设计缓存穿透(空数据)造成缓存穿透的基本原因有两个:第一, 自身业务代码或者数据出现问题。第二, 一些恶意攻击、 爬虫等造成大量空命中。 缓存穿透问题解决方案:…