当前位置: 首页 > news >正文

Kamailio-Sngrep 短小精悍的利器

一个sip的抓包小工具,在GitHub上竟然能够积累1K的star,看来还是有点东西,当然官方的友链也是发挥了重要作用

首先送上项目地址,有能力的宝子可以自行查看

经典的网络抓包工具有很多,比如:

  • Wireshark: 大而全
  • tcpdump: 较底层
  • Fiddler:主要用于HTTP/HTTPS协议
  • ……

但是对于本章要讲的SIP信令的抓包,也就是Wireshark、tcpdump,以及前面讲到过较为系统的Homer,如果嫌弃Wireshark笨重、tcpdump原始,那么就一起来看看这款短小精悍的sngrep。

官方自己定义:是一款可以在命令行终端展示SIP电话消息流的工具,它能够支持实时的抓取并展现SIP包,也可以用来做一个pcap的阅读器。

面向命令行终端,具有可视化能力,实时抓取并展示,简直是生产调试与运维的利器。

  • 如何安装?
  • 如何使用?
    • 如何抓取
    • 如何查看pcap文件

如何安装?

前提条件,需要服务器上具备这些模块:

  • libncurses5 - for UI, windows, panels.
  • libpcap - for capturing packets.
  • libssl - (optional) for TLS transport decrypt using OpenSSL and libcrypt
  • gnutls - (optional) for TLS transport decrypt using GnuTLS and libgcrypt
  • libncursesw5 - (optional) for UI, windows, panels (wide-character support)
  • libpcre - (optional) for Perl Compatible regular expressions
  • zlib - (optional) for gzip compressed pcap files

可以使用autotools构建,或者cmake,基本是类似的,我这边就用的常规centos系统

autotools:

./bootstrap.sh
./configure
make
make install (as root)

cmake:

mkdir build && cd build
cmake [<options>] ..
make
make install (as root)

一切顺利,构建成功

如何使用?

sngrep 由于是网络抓包,因此至少需要sudo权限。

对于参数可以通过help来看一下

# sngrep --help
Usage: sngrep [-hVcivNqrD] [-IO pcap_dump] [-d dev] [-l limit] [-B buffer] [<match expression>] [<bpf filter>]-h --help		 This usage-V --version	 Version information-d --device		 Use this capture device instead of default-I --input		 Read captured data from pcap file-O --output		 Write captured data to pcap file-B --buffer		 Set pcap buffer size in MB (default: 2)-c --calls		 Only display dialogs starting with INVITE-r --rtp		 Capture RTP packets payload-l --limit		 Set capture limit to N dialogs-i --icase		 Make <match expression> case insensitive-v --invert		 Invert <match expression>-N --no-interface	 Don't display sngrep interface, just capture-q --quiet		 Don't print captured dialogs in no interface mode-D --dump-config	 Print active configuration settings and exit-f --config		 Read configuration from file-F --no-config	 Do not read configuration from default config file-T --text	 Save pcap to text file-R --rotate		 Rotate calls when capture limit have been reached

可以通过命令行指定后开启抓包,也可以开启后在内部过滤

  • -d 网口或设备
  • -I 主要是用于查看指定的pcap文件,以便查看sip对话的可视化图
  • -O 主要是将实时抓包的数据输出到文件
  • -r 主要是抓RTP, 指的是实时传输协议(Real-time Transport Protocol, RTP)数据包的有效载荷部分。RTP 是一个用于传输音频和视频等多媒体数据的网络协议,常用于流媒体服务、语音通信系统(如VoIP)、视频会议等场景中。
  • -l 给到数量限制,这个是重要的
  • -T 将pcap保存到文本文件

以上是比较常规的参数,常规的使用就是根据一些规则去抓取网络数据包,将pcap文件读取后展示。

如何抓取

sngrep, 直接开启抓,不管三七二十一,全抓

在这里插入图片描述

sngrep -d eth0 -O save.pcap port 5060 and udp,指定eth0网口,将数据保存到save.pcap文件,指定端口5060,指定udp类型

在这里插入图片描述

F7 开启页面过滤:

  • 关键词筛选 SIP From/SIP To/Source/Destination/Playload
  • 筛选信令类型,空格选中或取消
  • Filter 过滤

F6 查看类似tcpdump的原始数据
F2 Save就类似于-O,但是可以在页面筛选、取消某些会话的导出,-O就是全部了
Enter 看流图

在这里插入图片描述

如何查看pcap文件

sngrep -I file.pcap host 192.168.1.1 and port 5060, 从file.pcap读取抓包数据,过滤host和端口

相关文章:

Kamailio-Sngrep 短小精悍的利器

一个sip的抓包小工具&#xff0c;在GitHub上竟然能够积累1K的star&#xff0c;看来还是有点东西&#xff0c;当然官方的友链也是发挥了重要作用 首先送上项目地址&#xff0c;有能力的宝子可以自行查看 经典的网络抓包工具有很多&#xff0c;比如&#xff1a; Wireshark&…...

9.6 Linux_I/O_IO模型

基本概念 I/O执行过程与分类&#xff1a; 用户进程中的一个完整I/O分为 "用户进程空间->内核空间->设备空间(磁盘、网卡)" 这两个阶段。 I/O可以分为内存I/O、网络I/O、磁盘I/O 同步和异步是什么&#xff1a; 1、对于线程的请求调用&#xff0c;同步与异步…...

React 探秘(一):fiber 架构

文章目录 背景React 采用 fiber 主要为了解决哪些问题&#xff1f;性能问题&#xff1a;用户体验问题&#xff1a; 为什么在 React 15 版本中性能会差&#xff1a;浏览器绘制原理&#xff1a;react 15 架构和问题 那么 fiber 怎么解决了这个问题&#xff1f;任务“大”的问题递…...

poi通过在word中写入了表格,通过libreoffice转换成PDF后,word中刚才画的表格宽度无限拉伸问题的解决。

一、复现&#xff1a; poi版本&#xff1a; <poi>3.17</poi><poi-ooxml>3.17</poi-ooxml><poi-ooxml-schemas>3.17</poi-ooxml-schemas><dependency><groupId>org.apache.poi</groupId><artifactId>poi</arti…...

尚硅谷rabbitmq2024 集群篇仲裁队列 第52节 答疑

我们希望创建一个队列&#xff0c;队列分布在各个节点上&#xff0c;仲裁队列很好的解决了这个问题.那么在仲裁队列之前&#xff0c;创建一个队列&#xff0c;队列不是分布在各个节点上的吗&#xff1f; 在RabbitMQ中&#xff0c;默认情况下创建的队列是“普通队列”&#xff0…...

《Spring Cloud 微服务:构建高效、灵活的分布式系统》

《Spring Cloud 微服务&#xff1a;构建高效、灵活的分布式系统》 一、引言 在当今快速发展的数字化时代&#xff0c;软件系统的规模和复杂性不断增加。为了应对这种挑战&#xff0c;微服务架构应运而生。Spring Cloud 作为构建微服务架构的强大工具集&#xff0c;提供了一系…...

OpenFeign 入门与实战:快速搭建 Spring Cloud 微服务客户端

1. 前言 随着微服务架构的流行&#xff0c;服务之间的通信变得越来越重要。Spring Cloud 提供了一系列工具来帮助开发者构建分布式系统&#xff0c;其中 OpenFeign 是一个轻量级的 HTTP 客户端&#xff0c;它简化了 Web 服务客户端的开发。本文将介绍如何在 Spring Cloud 应用…...

上门按摩系统开发方案源码搭建

上门按摩系统开发方案 一、项目概述 上门按摩系统是一个连接按摩技师和客户的平台&#xff0c;旨在提供便捷、高效的上门按摩服务。通过该系统&#xff0c;客户可以轻松预约合适的按摩技师&#xff0c;并享受个性化的按摩服务。 二、系统功能模块 用户管理模块&#xff1a;…...

【数据结构】宜宾大学-计院-实验四

栈和队列之&#xff08;栈的基本操作&#xff09; 实验目的&#xff1a;实验内容&#xff1a;实验结果&#xff1a;实验报告:&#xff08;及时撰写实验报告&#xff09;&#xff1a;实验测试结果&#xff1a;代码实现1.0&#xff1a;&#xff08;C/C&#xff09;【含注释】代码…...

selenium的IDE插件进行录制和回放并导出为python/java脚本(10)

Selenium IDE&#xff1a;Selenium Suite下的开源Web自动化测试工具&#xff0c;是Firefox或者chrome的一个插件&#xff0c;具有记录和回放功能&#xff0c;无需编程即可创建测试用例&#xff0c;并且可以将用例直接导出为可用的python/java等编程语言的脚本。 我们以chrome浏…...

从0到1封装一个image/pdf预览组件

iShot_2024-10-14_16.47.10 目录结构 content.vue <template><div class"no-content-block"><i class"iconfont icondocument large-file" /><div class"text-wrapper">{{ t(__ui__.siPreview.previewSupported) }}<…...

Android build子系统(02)Ninja语法与复杂依赖构建解读

说明&#xff1a;本文将解读Ninja构建系统的基础语法和应用&#xff0c;同时给出一些示例便于理解和学习&#xff1b;给出一个复杂构建的基础demo&#xff0c;通过这个demo的分析理解复杂构建的内在逻辑和build.ninja编写法则&#xff1b;最后扩展之前Android Framework中构建b…...

JavaScript的第三天

目录 JS中的循环&#xff0c;使某些代码重复执行 一、for循环&#xff1a;重复执行某段代码&#xff0c;通常用于计数 1、for的语法结构 2、代码解析 3、代码尝试 4、循环重复相同的代码&#xff0c;可以让用户控制输出的次数&#xff08;对该变量进行遍历&#xff09; 5、循环…...

初识git · 有关模型

目录 前言&#xff1a; 有关开发模型 前言&#xff1a; 其实文章更新到这里的时候&#xff0c;我们已经学习了可以满足我们日常生活中的基本需求的指令了&#xff0c;但是为什么要更新本篇文章呢&#xff1f;是因为实际生活中我们对于开发工作&#xff0c;运维工作&#xff…...

基于SpringBoot+Vue+uniapp的海产品加工销售一体化管理系统的详细设计和实现(源码+lw+部署文档+讲解等)

详细视频演示 请联系我获取更详细的视频演示 项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念&#xff0c;提供了一套默认的配置&#xff0c;让开发者可以更专注于业务逻辑而不…...

解锁机器人视觉与人工智能的潜力,从“盲人机器”改造成有视觉能力的机器人(下)

机器视觉产业链全景回顾 视觉引导机器人生态系统或产业链分为三个层次。 上游&#xff08;供应商&#xff09; 该机器人视觉系统的上游包括使其得以运行的硬件和软件提供商。硬件提供商提供工业相机、图像采集卡、图像处理器、光源设备&#xff08;LED&#xff09;、镜头、光…...

CORS预检请求配置流程图 srpingboot和uniapp

首先要会判断预检请求 还是简单请求 简单请求 预检请求 #mermaid-svg-1R9nYRa7P9Pll4AK {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-1R9nYRa7P9Pll4AK .error-icon{fill:#552222;}#mermaid-svg-1R9nYRa7P9Pll4…...

用Spring AI 做智能客服,基于私有知识库和RAG技术

Java智能客服系统运用RAG技术提升答疑精准度 基于Spring ai 的 RAG&#xff08;检索增强生成&#xff09;技术&#xff0c;Java智能客服系统能够利用私有知识库中的信息提供更准确的答疑服务。 它的核心思路是&#xff1a; 首先&#xff0c;将客服QA以Word形式导入到系统中&…...

TemporalBench:一个专注于细粒度时间理解的多模态视频理解的新基准。

2024-10-15&#xff0c;由威斯康星大学麦迪逊分校、微软研究院雷德蒙德等机构联合创建了TemporalBench&#xff0c;它通过大约10K个视频问答对&#xff0c;提供了一个独特的测试平台&#xff0c;用以评估各种时间理解和推理能力&#xff0c;如动作频率、运动幅度、事件顺序等。…...

网友提问:网上申请流量卡不通过怎么办?

网上申请流量卡不通过怎么办&#xff1f;网上办理流量卡不通过&#xff0c;说明你不符合办理此套餐的要求&#xff0c;可以选择其他套餐&#xff0c;或者其他运营商的流量卡申请试试。 我们不管是在京*、淘*、拼**哪个网站申请的流量卡&#xff0c;提交的申请信息都是由运营商…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式&#xff0c;自动确定它们的类型。 这一特性减少了显式类型注解的需要&#xff0c;在保持类型安全的同时简化了代码。通过分析上下文和初始值&#xff0c;TypeSc…...

群晖NAS如何在虚拟机创建飞牛NAS

套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具&#xff0c;用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中&#xff0c;cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...

在 Spring Boot 项目里,MYSQL中json类型字段使用

前言&#xff1a; 因为程序特殊需求导致&#xff0c;需要mysql数据库存储json类型数据&#xff0c;因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...

深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏

一、引言 在深度学习中&#xff0c;我们训练出的神经网络往往非常庞大&#xff08;比如像 ResNet、YOLOv8、Vision Transformer&#xff09;&#xff0c;虽然精度很高&#xff0c;但“太重”了&#xff0c;运行起来很慢&#xff0c;占用内存大&#xff0c;不适合部署到手机、摄…...

系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文通过代码驱动的方式&#xff0c;系统讲解PyTorch核心概念和实战技巧&#xff0c;涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...