tcpdump 抓包工具详细图文教程(下)

news2024/11/28 8:46:07

目录

一、tcpdump 常用参数的使用

1.1 tcpdump -i  # 指定监听网络接口

1.2 tcpdump -w  # 将捕获到的信息保存到文件中,且不分析和打印在屏幕

1.3 tcpdump -r  # 从文件中读取数据

1.4 tcpdump -n  # 不把 ip 转化成域名

1.5 tcpdump -t  # 在每行的输出中不显示时间

1.6 tcpdump -v  # 产生详细的输出

1.7 tcpdump -c  #  指定收取数据包的次数

1.8 tcpdump -C  # 与 -w FILE 选项配合使用

1.9 tcpdump -Q  #  选择是入方向还是出方向的数据包

1.10 tcpdump -q  # 简洁地打印输出

1.11 tcpdump -s  # 指定每个包捕获的长度

1.12 tcpdump -A   # 以 ASCII 格式打印出所有的分组并且读取此文件

1.13 tcpdump -e  # 在输出行打印出数据链路层的头部信息

1.14 tcpdump -F  # 指定使用哪个文件的过滤表达式抓包

1.15 tcpdump -l  # 对标准输出进行行缓冲

二、tcpdump 过滤规则组合——逻辑运算

三、tcpdump 过滤规则——高级过滤

四、tcpdump 过滤规则和参数总结


一、tcpdump 常用参数的使用

tcpdump -h  # 查看所有参数

[root@mysql01 ~]# tcpdump -h
tcpdump version 4.99.4
libpcap version 1.10.4 (with TPACKET_V3)
OpenSSL 1.0.2k-fips  26 Jan 2017
Usage: tcpdump [-AbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ] [--count]
		[ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
		[ -i interface ] [ --immediate-mode ] [ -j tstamptype ]
		[ -M secret ] [ --number ] [ --print ] [ -Q in|out|inout ]
		[ -r file ] [ -s snaplen ] [ -T type ] [ --version ]
		[ -V file ] [ -w file ] [ -W filecount ] [ -y datalinktype ]
		[ --time-stamp-precision precision ] [ --micro ] [ --nano ]
		[ -z postrotate-command ] [ -Z user ] [ expression ]

1.1 tcpdump -i  # 指定监听网络接口

tcpdump -i ens32

        默认监听在第一块网卡上(使用 ifconfig 查看网课信息),监听所有经过此网卡通过的数据包;但是我们可能关心的数据并不是 ens32 的接口,这时就需要指定端囗进行数据包的捕获。

        在 tcpdump 后面加一个 -i 的参数,后面跟具体需要捕获的接口名称,就可以抓取经过这个具体接口的所有数据包。tcpdump -i any 监听所有的网卡接口、用来查看是否有网络流量。

1.2 tcpdump -w  # 将捕获到的信息保存到文件中,且不分析和打印在屏幕

tcpdump -i ens32 -w test.pcap

        报文打印在 shell 里会太多且不方便查看,我们可以保存成文件;然后通过 xftp 导出到本地,可以详细查看。

扩展:导出的文件可以设置为 cap 或者 pcap 的格式,可以直接用 wireshark 工具打开;可以用 wireshark 工具分析报文具体信息!

1.3 tcpdump -r  # 从文件中读取数据

读取后,我们照样可以使用上述的过滤器语法进行过滤分析。

tcpdump -r test.pcap

1.4 tcpdump -n  # 不把 ip 转化成域名

直接显示 ip,避免执行 DNS lookups 解析的过程,速度会快很多:

tcpdump -nn:不把协议和端口转化成名字,速度也会快很多:

tcpdump -N:不打印出 host 的域名部分,将会打印 'nic' 而不是 'nic.ddn.mil'

1.5 tcpdump -t  # 在每行的输出中不显示时间

tcpdump -tt:在每行的输出中会输出时间戳

tcpdump -ttt:输出每两行打印的时间间隔(以毫秒为单位)

tcpdump -tttt:在每行打印的时间戳之前添加日期的打印(此种选项,输出的时间最直观) 

1.6 tcpdump -v  # 产生详细的输出

        比如包的 TTL、id 标识、数据包长度,以及 IP 包的一些选项。同时它还会打开 一些附加的包完整性检测,比如对 IP 或 ICMP 包头部的校验和。

tcpdump -vv:产生比 -v 更详细的输出。比如 NFS 回应包中的附加域将会被打印,SMB 数据包也会被完全解码。

tcpdump -vvv:产生比 -vv 更详细的输出。比如 telent 时所使用的 SB、SE 选项将会被打印,如果telnet 同时使用的是图形界面,其相应的图形选项将会以 16 进制的方式打印出来。

1.7 tcpdump -c  #  指定收取数据包的次数

即在收到指定数量的数据包后退出 tcpdump,停止抓包。

tcpdump -c 5 -w tt.pcap

解释:抓满 5 个报文之后,就停止 tcpdump 抓包。

1.8 tcpdump -C  # 与 -w FILE 选项配合使用

        该选项使得 tcpdump 在把原始数据包直接保存到文件中之前,检查此文件大小是否超过 file-size。如果超过了,将关闭此文件,另创一个文件继续保存原始数据包。新创建的文件名与 -w 选项指定的文件名一致,但文件名后多了一个数字,该数字会从 1 开始随着新创建文件的增多而增加。file-size 的单位是百万字节(这里指1,000,000个字节,并非1,048,576个字节)

tcpdump -C 1 -W 4 -w rr

指定一个单位后(1MB)就换文件,最多写 4 个文件,名字是 rr0、rr1、rr2、rr3:

1.9 tcpdump -Q  #  选择是入方向还是出方向的数据包

可选项有:in、out、inout,也可以使用 --direction=[options]

  • tcpdump -Q in
  • tcpdump -Q out
  • tcpdump -Q inout

1.10 tcpdump -q  # 简洁地打印输出

即打印很少的协议相关信息,从而输出行都比较简短。

  • tcpdump -D:显示所有可用网络接口的列表
  • tcpdump -L:列出网络接口的已知数据链路。

1.11 tcpdump -s  # 指定每个包捕获的长度

        单位是 byte,而不是默认的 262144 bytes;如果超过了设定的大小限制,包就会被截断 ,而在打印行出现 [lproto] 这种标识,这个 proto 就是被截断的报文的协议名字。但是抓取 len 越长,包的处理时间越长,并且会减少 tcpdump 可缓存的数据包的数量,从而会导致数据包的丢失,所以在能抓取我们想要的包的前提下,抓取长度越小越好(tcpdump -s 0 使用默认长度 262144)。 

注意:不通的 tcpdump 版本,这个默认抓取的报文长度不一样。

1.12 tcpdump -A   # 以 ASCII 格式打印出所有的分组并且读取此文件

这样可以使读取更加简单,方便使用 grep 等工具解析输出内容

tcpdump -A -r tt.pcap

tcpdump -A | grep baidu

tcpdump -X 表示同时使用十六进制和 ASCII 字符串打印报文的全部数据。注意:-X 和 -A 两个参数不能一起使用。

tcpdump -X -r tt.pcap

1.13 tcpdump -e  # 在输出行打印出数据链路层的头部信息

        默认情况下 tcpdump 不会显示数据链路层信息,使用 -e 选项可以显示源和目的 MAC 地址,以及 VLAN tag 信息。

tcpdump -e -r tt.pcap

1.14 tcpdump -F  # 指定使用哪个文件的过滤表达式抓包

此时命令行上的输入过滤规则将被忽略,只以文件里的规则为准。

# 配置规则文件
[root@mysql01 ~]# vim filter_rule
tcp port 80

[root@mysql01 ~]# tcpdump -F filter_rule -c10

这种情况适用于将表达式放置在文件中长期维护。

1.15 tcpdump -l  # 对标准输出进行行缓冲

        在需要同时观察抓包打印以及保存抓包记录的时候很有用。比如,可通过以下命令组合来达到此抓包时保存到文件的同时查看包的内容。

tcpdump -l | tee tt.pcap

这命令是使用 tee 来把 tcpdump 的输出同时放到文件 tt.pcap 和标准输出中。

tee 功能说明:读取标准输入的数据,并将其内容输出成文件。

tcpdump -l > tt.pcap & tail -f tt.pcap

这个命令是通过重定向操作 '>' 写入到文件里。

二、tcpdump 过滤规则组合——逻辑运算

逻辑运算符:add、or、not

  • and:所有的条件都需要满足,也可以表示为 &&
  • or:只要有一个条件满足就可以,也可以表示为 ||
  • not:取反,也可以使用 !
  • and 优先级大于 or

and 例子:抓一个来自 100.100.30.26 主机、80 端口的包:tcpdump src 100.100.30.26 and port 80

or 例子:抓取 UDP 53 端口或者 TCP 53 端口的包(DNS协议的报文):tcpdump tcp port 53 or udp port 53

not 例子:抓取不是 22 端口的报文:tcpdump not tcp port 22

多个过滤器进行组合:需要用到括号,而括号在 shell 中是特殊符号,因此你需要使用引号将其包含:tcpdump "src 10.0.2.4 and (dst port 3389 or 22)"

练习案例:监听主机 192.168.56.1 和 192.168.56.210 之间 ip 协议的80端口的且排除www.baidu.com 通信的所有数据包:

tcpdump ip dst 192.168.56.1 and src 192.168.56.210 and port 80 and host! www.baidu.com
tcpdump ip dst 192.168.56.1 and src 192.168.56.210 and port 80 and host not www.baidu.com

即 not 和 !都是相同的取反的意思。 

三、tcpdump 过滤规则——高级过滤

基于包大小进行过滤:查看指定大小的数据包

案例:抓取包大小小于 32 bytes 的数据包

tcpdump less 32

案例:抓取包大小大于 300 bytes 的数据包

tcpdump greater 300 

四、tcpdump 过滤规则和参数总结

上一篇文章: tcpdump 抓包工具详细图文教程(上)_Stars.Sky的博客-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

springboot自定义注解的使用++日志

1.添加切面依赖 <dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.8.9</version> </dependency> 2.自定义注解 Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTI…

Java语言---PriorityQueue与堆

目录 一.堆 1.1堆的概念 1.2堆的存储方式 1.3堆的操作 1.3.1堆的创建 1.3.2代码的实现&#xff1a; 堆的插入元素 堆的删除 二、PriorityQueue 2.1概念 2.2性质 2.3PriorityQueue的创建构造 2.4PriorityQueue的操作方法 总结 &#x1f63d;个人主页&#xff1a;t…

堆的应用:Top-K问题

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下堆的应用--Top-K问题的相关知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; 数据结构与算法专栏&#xff1a;数据结构与算法 个…

基于Web智慧油库三维可视化管理系统

油库是协调原油生产、原油加工、成品油供应及运输的纽带&#xff0c;是国家石油储备和供应的基地&#xff0c;它对于保障国防和促进国民经济高速发展具有相当重要的意义。 建设背景 石油作为重要的战略资源&#xff0c;关系着国家安全和人民生活。油库是石油能源供应链中的关…

俞浩“死磕”抖音,追觅科技618面临三变数

​文 | 智能相对论 作者 | 渡过 智能清洁“新秀”追觅科技来势汹汹。 创始人俞浩曾向媒体表示&#xff0c;“追觅科技……2023年做到行业技术第一&#xff0c;2024年做到行业市占率第一&#xff0c;2025年做到行业利润第一。” 具体到市场上&#xff0c;能拱火热度的电商节…

linux实践php8.2加laravel-cotane和roadrunner服务器

php8.2 composer -v 报错&#xff1a; Deprecation Notice: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in phar:///usr/bin/composer/vendor/symfony/console/Descriptor/TextDescriptor.php:290 解决方法可以升级下composer&#xff1…

像写 Rust 一样写 Python!

几年前&#xff0c;开始使用Rust编程&#xff0c;它逐渐改变了我使用其他编程语言&#xff08;尤其是Python&#xff09;设计程序的方式。在我开始使用Rust之前&#xff0c;我通常以一种非常动态和类型松散的方式编写Python代码&#xff0c;没有类型提示&#xff0c;到处传递和…

2023年江西省大学生程序设计竞赛vp赛后补题

Problem - B - Codeforces 思路&#xff1a; 显然难以讨论<的情况&#xff0c;正难则反&#xff0c;我们尝试计算>的情况以为每次a&#xff0c;他的实际贡献给b的是a%m&#xff0c;x也一样&#xff0c;所以他们先取mod我们能够大于成立&#xff0c;要求a[i]sum>mod,…

常用的表格检测识别方法——表格结构识别方法 (下)

常用的表格检测识别方法——表格结构识别方法&#xff08;下&#xff09; 3.2表格结构识别方法 表格结构识别是表格区域检测之后的任务&#xff0c;其目标是识别出表格的布局结构、层次结构等&#xff0c;将表格视觉信息转换成可重建表格的结构描述信息。这些表格结构描述信息…

深度剖析数据在内存中的存储(超详细版)

&#x1f495;"痛苦难以避免&#xff0c;而磨难可以选择。"-->村上春树&#x1f495; 作者&#xff1a;Mylvzi ​​​​​​​ 文章主要内容&#xff1a;数据在内存中的存储 目录 前言&#xff1a;数据在计算机中的存储 正文&#xff1a; 1.详解数据类型 2.整…

2023-05-31 Git将已存在的项目上传到仓库

背景 正常情况下我们是在GitHub(Gitee是一样的&#xff0c;还不卡&#xff0c;因此下文将在Gitee仓库操作)创建一个代码仓库&#xff0c;然后将仓库拉到本地&#xff0c;在本地会生成一个和仓库名称一样的文件夹&#xff0c;然后在文件夹内写代码&#xff0c;最后使用git命令将…

9 概率图模型【手写笔记】

文章目录 9 概率图模型【手写笔记】9.1 背景介绍9.2 贝叶斯网络&#xff08;Bayesian Network&#xff09;——有向图网络9.3 马尔可夫网络&#xff08;Markov Network&#xff09;——无向图网络9.4 Inferce&#xff08;推断&#xff09;——求解后验9.5 更多的图的概念 9 概率…

2023年DAMA-CDGA/CDGP数据治理认证考试形式、含金量

DAMA认证为数据管理专业人士提供职业目标晋升规划&#xff0c;彰显了职业发展里程碑及发展阶梯定义&#xff0c;帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力&#xff0c;促进开展工作实践应用及实际问题解决&#xff0c;形成企业所需的新数字经济下的核心职业…

表的约束.

目录 表的约束空属性默认值列描述zerofill主键自增长唯一键外键综合案例 表的约束 真正约束字段的是数据类型&#xff0c;但是数据类型约束很单一&#xff0c;需要有一些额外的约束&#xff0c;更好的保证数据的合法性&#xff0c;从业务逻辑角度保证数据的正确性。比如有一个…

一文带你了解MySQL之undo日志

目录 一、事务回滚的需求二、事务id2.1 给事务分配id的时机2.2 事务id是怎么生成的2.3 trx_id隐藏列 三、undo日志的格式3.1 INSERT操作对应的undo日志3.2 DELETE操作对应的undo日志3.3 UPDATE操作对应的undo日志3.3.1 不更新主键的情况3.3.2 更新主键的情况 四、通用链表结构五…

法国ESC高等商学院DBA申请

申请法国ESC高等商学院DBA&#xff0c;你需要了解这些&#xff01;什么是法国ESC高等商学院DBA&#xff1f;法国ESC高等商学院DBA是法国商学院中的顶尖学位&#xff0c;也是全球最优秀的商学博士学位之一。该学位旨在为商业领袖、企业家和高级管理人员提供高水平的商业教育和研…

优秀的工具=生产力!15款高效原型设计软件种草

一个优秀产品的诞生&#xff0c;必定离不开原型设计。产品原型是概念到现实的桥梁&#xff0c;是产品成功的关键&#xff01; 为什么产品原型如此重要&#xff1f;产品原型可以帮助团队更高效地测试产品可行性、理解和评估用户需求并不断优化迭代产品的最终方案。它决定了最终…

windows10系统mysql官方绿色版安装

1.下载 1&#xff09;下载页面&#xff1a;MySQL :: Download MySQL Community Server 2&#xff09;点击 Download 按钮下载zip包到本地&#xff0c;解压&#xff08;我的本地解压到了D:\Programs\mysql-8.0.33-winx64&#xff09; 2.环境配置 1&#xff09;环境变量配置&a…

柜体内形成电弧的四个阶段及弧光保护装置的设计

安科瑞虞佳豪 什么是弧光保护 弧光保护是指电力系统由于各种的短路原因可引起弧光&#xff0c;弧光会以300m/s的速度爆发&#xff0c;摧毁途中的任何物质。只要系统中不断电&#xff0c;弧光就会一直存在。要想最大限度的减少弧光的危害&#xff0c;我们需要安全、迅速地切断…

Java开发手册中为什么禁止使用BigDecimal的equals方法做等值比较已经为什么禁止使用double直接构造BigDecimal

场景 阿里Java开发手册嵩山版中明确指出&#xff1a; 1、BigDecimal的等值比较应使用compareTo()方法&#xff0c;而不是equals()方法 equals()方法会比较值和精度&#xff08;1.0与1.00返回结果为false&#xff09;,而compareTo()则会忽略精度 2、禁止使用构造方法BigDeci…