01-----tcpdump抓包命令

2023-11-19

一 tcpdump抓包命令

关于tcpdump的抓包命令,非常的多,这里我只记录我平时开发时比较常用的抓包命令,当然后面可能不断的在本篇补上对应的内容。

1 tcpdump的命令格式

tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ][ -i 网络接口 ] [ -r 文件名]
[ -s snaplen ] [ -T 类型 ] [ -w 文件名 ] [表达式 ]

2 参数选项

参数 含义
-a 将网络地址和广播地址转变成名字
-A 以ASCII格式打印出所有分组,并将链路层的头最小化。
-d 将匹配信息包的代码以人们能够理解的汇编格式给出
-dd 将匹配信息包的代码以c语言程序段的格式给出
-ddd 将匹配信息包的代码以十进制的形式给出
-e 在输出行打印出数据链路层的头部信息,包括源mac和目的mac,以及网络层的协议
-f 将外部的Internet地址以数字的形式打印出来
-l 使标准输出变为缓冲行形式
-n 指定将每个监听到数据包中的域名转换成IP地址后显示,不把网络地址转换成名字
-nn 指定将每个监听到的数据包中的域名转换成IP、端口从应用名称转换成端口号后显示
-t 在输出的每一行不打印时间戳
-v 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息
-vv 输出详细的报文信息
-c 在收到指定的包的数目后,tcpdump就会停止
-F 从指定的文件中读取表达式,忽略其它的表达式
-i 指定监听的网络接口,后面跟数组“any”表示针对所有接口
-p 将网卡设置为非混杂模式,不能与host或broadcast一起使用
-r 从指定的文件中读取包(这些包一般通过-w选项产生)
-w 直接将包写入文件中,并不分析和打印出来
-s snaplen 表示从一个包中截取的字节数。0表示包不截断,抓完整的数据包。默认的话 tcpdump 只显示68字节数据包
-T 将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程调用)和snmp(简单网络管理协议
-X 告诉tcpdump命令,需要把协议头和包内容都原原本本的显示出来(tcpdump会以16进制和ASCII的形式显示),这在进行协议分析时是绝对的利器

3 tcpdump的主要过滤方式

下图列举了tcpdump如何按照某种方式去过滤,对于平时的开发,绝对是足够的,加上配合上面的选项。
在这里插入图片描述

4 个人平时开发常用的抓包命令

虽然很多人会按照第3点来讲解tcpdump的例子,但是这里我直接使用实战的抓包命令。
4.1 抓任意主机端口的包。

tcpdump -Ans 4096 -i any port 8889 						//抓网卡任意,端口为8889的包,选项意思看上面。

4.2 抓取onvif协议想要得到GetProfiles的信息时,获取该接口的函数名字。
不过需要注意版本,不同版本的函数名不一样,当版本不一样时,我们就需要参考该版本的其它函数的名字,以此来确定该接口的名字。并且一般我们抓onvif的包,需要配合ONVIF Device Test Tool 15.06或者ONVIF Device Manager工具。

tcpdump -i em1 host 192.168.1.186 -w ./getProfiles.cap	//-i 哪种网卡(使用ifconfig查看),host ip表示捕获哪个另一方的主机ip,-w表示保存文件的路径

4.3 抓取sip信令的包
4.3.1 环境在Linux下

  • 1)首先,最基本的就是抓取该主机5060端口的包了。
tcpdump -i any host localhost and port 5060  -w ./1.cap		//配合逻辑表达式抓包
  • 2)不过需要注意,如果我们想要查看是否有国标交互成功后的视频数据包即RTP包,必须去掉指定sip的端口,因为invite成功后,每一路视频的传输都会各自开辟一个端口。
    所以,想要查看sip信令的包和视频流rtp数据的包,必须去掉端口抓包,并且最好指定对应的网卡,一般是eth0或者docker0,需要自己根据ifconfig来查看并且确定(可以先选择任意一个网卡,抓包后看是否有数据,若无数据,该包大小一般是2kb~4kb,内部只包含了一些文件信息)。
    因为如果不指定网卡,你的包不到1分钟可能就已经1G以上了,非常的大。
tcpdump -i eth0 host localhost -w ./1.cap		//抓sip信令包和带视频数据的rtp包。
  • 3)然后将上面抓的包保存下来,使用wireshark分析,不要在linux上分析,非常不方便观察。我们可以使用下面的方法过滤:
//只查看sip信令的包。
sip	
//查看sip信令包中特定的设备编码的包,即某一路视频的sip包
sip contains 11000000041315001289	
//根据国标的编码和流媒体码流的传输端口,查看上下级码流传输的过程,31232可从invite包获取,
//但是需要知道该视频流的国标通道编码,即11000000041315001289。invite的数据包可以通过过滤sdp快速查找。
//该过滤命令可以去掉后面的||
sip contains 11000000041315001289||udp.port==31232	
//查看所有的rtp数据包
rtp
//查看某一路的rtp数据包,即视频流数据包。因为每一路的视频数据传输的端口都是一一对应的,所以可以通过端口来索引每一个视频。
rtp and udp.port==31232

注意:
抓国标时,不可以通过 "rtp + contains + 设备通道编码“ 来寻找每一路的rtp数据包,因为rtp包内不像sip包中包含通道编码,无法区分是哪一路,只能通过上面的端口确定。

rtp contains 11000000041315001289	//错误过滤方法,这样即使有数据包也会过滤成无数据。正确过滤应该是上面使用端口的过滤方法。

4.3.2 环境在Windows下
windows下抓包比较方便,可以直接使用wireshark抓包,不用像上面linux需要抓包然后保存下来,再拿到windows下分析。

sip and ip.src==192.168.2.38 or ip.src==192.168.1.204	//抓ip为38与204的sip协议包
rtp														//抓rtp的包,主要是想查看rtp里面装的是什么内容,一般是PS流

windwos下分析国标的包,和上面的3)过程的一样的,它实际上也是在windwos下分析的,不再复述。

好了,关于tcpdump配合抓取sip+rtp包讲述完毕,其它关于tcpdump的使用,和上面差不多,大家按照实际开发来应用即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

01-----tcpdump抓包命令 的相关文章

随机推荐

  • shell 常量和变量拼接_PHP常量的定义和用法

    我们通常把不经常变的值定义成常量 常量一般用全部大写来表示 前面不加美元符号 也可减少团队开发的出错 那么define和const有什么区别呢 1 const是一个语言结构 而define是一个函数 可以通过第三个参数来指定是否区分大小写
  • php解决高并发问题

    转载 https www php cn php weizijiaocheng 350323 html 这篇文章说得很好 记录一下 我们通常衡量一个Web系统的吞吐率的指标是QPS Query Per Second 每秒处理请求数 解决每秒数
  • Nginx官方文档(四十五)【ngx_stream_core_module】

    ngx stream core module 示例配置 指令 listen preread buffer size preread timeout proxy protocol timeout resolver resolver timeo
  • java强制类型转换时异常(java.lang.ClassCastException)

    1 如果你的项目中出现如下情况 说明你的java类文件中你运用了强制转换 什么是强制转换也就是 你用一种类型接受了另一种类型 发生了类型转化 但是类型转换一般 都是向上转型的 如 int 转 double 还有 int 转 String 这
  • ipsvd arm交叉编译

    ipsvd arm交叉编译 ipsvd是什么 交叉编译 总结 ipsvd是什么 ipsvd全称是 internet protocol service daemons 即网际协议服务守护程序 常用的是udpsvd和tcpsvd 这两个既存在于
  • 数据结构笔记(十四)-- 串的模式匹配算法

    串的模式匹配算法 一 普通模式匹配算法 1 算法解析 普通模式匹配算法 其实现过程没有任何技巧 就是简单粗暴地拿一个串同另一个串中的字符一一比对 得到最终结果 例如 使用普通模式匹配算法判断串 T abcac 是否为串 S ababcabc
  • 将Eclipse项目导入到IntelliJ IDEA中

    打开IntelliJ IDEA 点击菜单栏的 File gt New gt Project from Existing Sources 在弹出的对话框中 选择Eclipse项目的根目录 并点击 OK 在下一个对话框中 选择 Create p
  • CentOS 8 安装screen

    CentOS 8安装不上screen 以为是yum源的问题 搞了半天才发现 要在CentOS 8上安装screen 先要安装EPEL库才可以 root centoss8 yum repos d yum y install screen La
  • python3-循环与判断

    1 gt 2 False 1 lt 2 lt 3 True 42 42 True Name name False M in Magic True number 12 number is 12 True Python比较运算符 以下假设变量a
  • 【编程基础】如何自学计算机/编程

    愚者困惑 智者提问 一 编程语言 二 编程技术体系 2 1 编程基础 2 1 1 操作系统 2 1 2 数据结构 2 1 3 编译原理 2 1 4 计算机组成原理 2 1 5 算法 2 2 编程语言 2 3 编程素质 2 3 1 编程规范
  • SQL server无法启动服务

    报错 在与SQL Server建立连接时出现与网络相关的或特定于实例的错误 切换到 依赖关系 选项卡 我们可以看见它与 SQL Server MSSQLSERVER 服务存在依赖关系 4 鼠标右键单击 SQL Server MSSQLSER
  • springboot注册到consul中报错:Spring MVC found on classpath, which is incompatible with Spring Cloud

    今天在做springboot整合成springCloud并注册到consul中时 发现若注册到consule中成功 则不能启动swagger 且不能提供任何API服务 要是能提供API服务则不能注册到consule中 并报错 Spring
  • Python怎么打包exe可执行文件?教你30秒轻松完成

    兄弟们 我来了 实在是太忙了 没得时间更新 太难了 之前看很多人都在问 Python怎么打包exe可执行文件 雀氏有点多 那么我来了 给大家整一个Python打包exe可执行文件的究极教程 当然 顺便再给它换个图标 首先把你的代码准备好 尽
  • qt之QCustomPlot动态更改曲线颜色,点击曲线标题名称

    一 前言 上篇文章介绍了如何调用qt自带的颜色画板 其实目的就是想更改一些颜色 本篇博客介绍更改QCustomPlot的曲线颜色 二 环境 qt5 7 mingw windows8 sqlite3 三 正文 首先在数据库中建好表 一行多列
  • 碳排放混合预测模型(Matlab代码实现)

    个人主页 研学社的博客 欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 二氧化碳排放力争于
  • [自然语言处理入门]-NLP中的注意力机制

    本章的主要内容有 注意力机制概述 传统注意力机制 注意力编码机制 1 注意力机制概述 注意力机制简单来说就是 加权求和机制 模块 加权求和模块 神经网络中的一个组件 可以单独使用 但更多地用作为 网络中的一部分 2 传统注意力机制 2 1
  • windows基线检测

    按照Windows基线检查模板检查设置windows安全机制 windows基线检查选项及风险等级 编号 检查选项 风险等级 适用类型 1 系统已安装最新的service pack 2 系统已经安装了最新的安全补丁 本地安全策略检查选项及风
  • java控制台聊天程序

    java控制台聊天程序 发送端 package ip chat import java io BufferedReader import java io InputStreamReader import java net DatagramP
  • Python中的filter()函数

    目录 一 描述 语法 返回值 二 实例 1 过滤出列表中的所有奇数 2 过滤出1 100中平方根是整数的数 一 描述 英文文档 filter function iterable Construct an iterator from thos
  • 01-----tcpdump抓包命令

    一 tcpdump抓包命令 关于tcpdump的抓包命令 非常的多 这里我只记录我平时开发时比较常用的抓包命令 当然后面可能不断的在本篇补上对应的内容 1 tcpdump的命令格式 tcpdump adeflnNOpqStvx c 数量 F