深入解析:Linux tcpdump命令在网络流量分析中的实战应用
tcpdump是一个强大的命令行工具,用于捕获和分析TCP、UDP、ICMP等协议的网络流量。
功能与用途
- 捕获网络流量:tcpdump可以捕获和显示来自本地计算机或通过网络传输的数据包,提供有关数据包的详细信息,如源和目的IP地址、端口号、协议类型、数据长度等。
- 分析数据包:通过捕获的数据包,tcpdump可以帮助用户分析网络问题,如延迟、丢包、重传等,对于网络调试、安全审计和性能优化等方面非常有用。
- 过滤功能:tcpdump支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助用户去掉无用的信息,专注于分析特定类型的流量。
软件安装
yum install -y tcpdump #centos系统
apt-get install -y tcpdump #ubuntu系统
语法格式及常用选项
tcpdump[ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ] [ -i 网络接口 ] [ -r 文件名] [ -s snaplen] [ -T 类型 ] [ -w 文件名 ] [表达式 ]
文件操作参数
参数 | 描述 |
-nn | 直接以IP及port号码显示,而非显示主机名与服务名称 |
-w | 将监听所得到的数据包内容存储下来,输出结果至文件 |
-W | 指定输出文件的最大数量,到达后会重新覆写第1个文件 |
-r | 读取一个抓包文件 |
-C | 限制输入文件的大小,超出以后后缀加1等数字的形式递增,注意单位是1000000字节 |
-G | 指定每隔N秒就重新输出至新文件,注意-w参数应该基于strftime参数指定文件名 |
监听及停止条件参数
参数 | 描述 |
-D | 列举所有网卡设备 |
-i | 后面接要监听的网络接口设备,例如eth0、lo、ppp0等的界面 |
-c | 监听的数据包数,如果没有这个参数,tcpdump会持续不断监听 |
-s | 指定每条报文的最大字节数,默认是262144字节,可以设置大小 |
–time-stamp-precision | 制定捕获时的时间精度,默认是毫秒级micro,可选选择纳秒nano |
输出时间戳格式参数
参数 | 描述 |
-t | 不显示时间戳 |
-tt | 自1970年1月1日0点至今的秒数 |
-ttt | 显示邻近两行报文间经过的秒数 |
-tttt | 自第一个监听的报文起经历的秒数 |
分析信息详情参数据
参数 | 描述 |
-e | 使用数据链路层(OSI第二层)的MAC数据包数据来显示 |
-q | 仅列出较为简单的数据包信息,每一行的内容比较精简 |
-v | 显示网络层头部更多的信息,如TTL、id等 |
-n | 显示IP地址、数字端口代替hostname等 |
-S TCP | 信息以绝对序列号代替相对序列号 |
-A | 数据包的内容以ASCII格式显示,通常用来监听WWW网页数据包数据 |
-x | 以16进制方式显示报文内容,不显示数据链路层 |
-xx | 以16进制方式显示报文内容,显示数据链路层 |
-X | 可以列出十六进制(hex)以及ASCII的数据包内容,不显示数据链路层 |
-XX | 可以列出十六进制(hex)以及ASCII的数据包内容,显示数据链路层 |
参考例子
1、查看本机全部网卡信息
如果我们想快速查看本机全部网卡设备信息,使用tcpdump代替ifconfig会更加高效,包括网桥设备(br0、docker0)、虚拟机网卡(virbr0)、蓝牙网卡(bluetooth0)、usb总线接口(usbmon1、usbmon2)、本机网卡(ens33)、回环地址(lo)等常见设备信息,系统对查询出的全部网卡接口设备进行编号。
tcpdump -D
2、监听指定网卡的数据包信息
监听ens33网卡上的全部网络数据包,需要显示IP及PORT号码,持续收到6条数据包以后自动停止
tcpdump -i ens33 -nn -c 6
3、将监听的数据包数据保存至文件
使用tcpdump监听经过ens33网卡的数据包,将数据包每隔3秒时长写入一个特定格式文件(文件生成格式定义为def%M-%S),并且读取其中一个生成文件的内容
tcpdump -i ens33 -G 3 -w def%M-%S
ll def*
tcpdump -r def04-11
tcpdump条件表达式详解
主机过滤
host、src host、dst host:设置主机、来源主机、目的主机作为过滤条件,
例如:tcpdump -nn host 192.168.31.101 代表过滤指定主机IP地址的网络数据包。
网络过滤
net、src net、dst net: 设置网段、来源网段、目的网段作为过滤条件,
例如:tcpdump net -nn 192.168.0.0 代表过滤指定网段的网络数据包
端口过滤
port、src port、dst port、portrange:设置端口、来源端口、目的端口、端口范围作为过滤条件,
例如:tcpdump -nn dst port 80 代表过滤从目的端口80发来的网络数据包
协议过滤
可以指定网络协议类型,包括ether、fddi、tr、wlan、ip、ip6、arp、rarp、tcp、udp、icmp、igmp、icmp、igrp、pim、ah、esp、vrrp等,
例如:tcpdump -nn icmp or tcp 代表过滤icmp协议或者tcp协议数据包。
逻辑表达式过滤
and(&&)、or(||)、not(!): 分别代表并且、或者、非逻辑运算,
例如:tcpdump ‘src host 192.168.31.101 and dst port 8080’ 代表监听源IP是192.168.31.101主机发送给目的端口8080的所有数据包。
特定状态过滤
tcp[tcpflas]: 按照tcp指定状态标志位进行过滤,
例如: tcpdump -i eth0 -nn ‘tcp[tcpflags] == tcp-syn or tcp[tcpflags] == tcp-ack’ 代表希望同时捕获syn类型和ack类型的数据包
综合
如何使用tcpdump命令实现如下监控目标:1.监听来自ens33网卡数据,通信协议为port 22,目标数据包来源为192.168.31.101的数据包,请给出正确答案。
tcpdump -i eth0 -nn ‘port 22 and src 192.168.1.101’
相关文章:

深入解析:Linux tcpdump命令在网络流量分析中的实战应用
tcpdump是一个强大的命令行工具,用于捕获和分析TCP、UDP、ICMP等协议的网络流量。 功能与用途 捕获网络流量:tcpdump可以捕获和显示来自本地计算机或通过网络传输的数据包,提供有关数据包的详细信息,如源和目的IP地址、端口号、…...

Java集合常见知识总结(上)
Java 集合概览 Java 集合,也叫作容器,主要是由两大接口派生而来:一个是 Collection接口,主要用于存放单一元素;另一个是 Map 接口,主要用于存放键值对。对于Collection 接口,下面又有三个主要的…...

【算法】力扣:K个一组反转链表
前置知识 数据结构-链表反转部分链表算法题的手写栈使用 难度: 初阶:使用容器, 难度中等。进阶:纯coding修改指针 ,难度中等,虽然leetcode是困难题。不过更加注重细节。 题目:反转 k 组中的…...

Matlab报错——错误使用 vertcat
错误提示: 原因: 这个错误表明 segment_lengths 的维度和 0 不一致。在 MATLAB 中,有时,diff 函数的输出可能是行向量,而segment_lengths 应该是一个列向量才能与 0 正确连接。 解决方法: 使用转置操作 …...

【如何获取股票数据10】Python、Java等多种主流语言实例演示获取股票行情api接口之沪深A股历史分时KDJ数据获取实例演示及接口API说明文档
最近一两年内,股票量化分析逐渐成为热门话题。而从事这一领域工作的第一步,就是获取全面且准确的股票数据。因为无论是实时交易数据、历史交易记录、财务数据还是基本面信息,这些数据都是我们进行量化分析时不可或缺的宝贵资源。我们的主要任…...

进入 Searing-66 火焰星球:第一周游戏指南
Alpha 第四季已开启,穿越火焰星球 Searing-66,带你开启火热征程。准备好勇闯炙热的沙漠,那里有无情的高温和无情的挑战在等待着你。从高风险的烹饪对决到炙热的冒险,Searing-66 将把你的耐力推向极限。带上充足的水,天…...

考研论坛设计小程序ssm+论文源码调试讲解
2相关技术 2.1微信小程序 小程序是一种新的开放能力,开发者可以快速地开发一个小程序。小程序可以在微信内被便捷地获取和传播,同时具有出色的使用体验。尤其拥抱微信生态圈,让微信小程序更加的如虎添翼,发展迅猛。 2.2 MYSQL数据…...

JAVA笔记 | EasyExcel创建带有简单下拉框的导入模板
目录 前文 业务需求 具体代码 新增Handler 控制层 前文 SpringBoot笔记 | EasyExcel导入导出及基于模板导出_easyexcel模板导出-CSDN博客 业务需求 需要一个导出模板。一个列需要填写固定的值,或者方便用户填写。 自己需求,几个固定的字段对应固…...

【含开题报告+文档+PPT+源码】贫困儿童一对一扶贫帮扶系统设计与实现
开题报告 根据《中华人民共和国慈善法》第五十八条规定,慈善组织确定慈善受益人,应当坚持公开、公平、公正的原则,不得指定慈善组织管理人员的利害关系人作为受益人[2]。以上所列举的平台基本没有做到公开、公平、公正的原则,例如…...

多系统萎缩不慌张,这些维生素是你的“隐形盾牌”!️
在这个快节奏的时代,健康成为了我们最宝贵的财富。而对于多系统萎缩(MSA)的患者来说,合理的营养补充更是维护身体机能、提升生活质量的关键一步。今天,就让我们一起揭秘那些能够成为多系统萎缩患者“守护神”的维生素吧…...

IGFBP7:免疫治疗新靶点
前 言 胰岛素样生长因子结合蛋白7(IGFBP7)是胰岛素超家族的生长促进肽成员,可与胰岛素和IGF结合,调控细胞生长和分化。IGFBP7在不同的肿瘤类型中表现出抑制或促进肿瘤生长的“自相矛盾”活性。研究发现IGFBP7可增强治疗性单克隆…...

深度学习模型的架构与应用:技术解析与未来展望
1. 引言 深度学习(Deep Learning)模型是当代人工智能的核心技术之一,广泛应用于语音识别、计算机视觉、自然语言处理、推荐系统等众多领域。深度学习通过构建多层神经网络,能够自动从大规模数据中学习复杂的特征和模式,其应用成果不仅推动了技术的飞跃,也带来了智能化产…...

机器学习——主要分类
前言: 机器学习是人工智能的重要分支之一,它通过分析数据来构建模型,并通过这些模型进行预测、分类或决策。随着数据量的迅速增长,机器学习在多个领域展现出巨大的应用潜力,推动了科技的进步。根据学习方式和数据的使用…...

Java密封类(Sealed Classes)增强详解
Java密封类(Sealed Classes)增强详解 Java 17引入了一个重要的新特性——密封类(Sealed Classes),这一特性旨在增强Java编程语言的能力,提供了一种机制来限制哪些类可以继承一个给定的类或者实现一个给定的…...

鸿蒙如何自动生成二维码?QRCode组件
QRCode 用于显示单个二维码的组件。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 二维码组件的像素点数量与内容有关,当组件尺寸过小时,可能出现无法展示内容的情况&…...

【分布式知识】MapReduce详细介绍
文章目录 MapReduce概述1. MapReduce编程模型Map阶段Reduce阶段 2. Shuffle和Sort阶段3. MapReduce作业的执行流程4. MapReduce的优化和特性5. MapReduce的配置和调优 MapReduce局限性相关文献 MapReduce概述 MapReduce是一个分布式计算框架,它允许用户编写可以在大…...

JAVA八股
快速失败(fail-fast) 设计的目的是为了避免在遍历时对集合进行并发修改,从而引发潜在的不可预料的错误。 通过迭代器遍历集合时修改集合: 如果你使用Iterator遍历集合,然后直接使用集合的修改方法(如add(…...

关于武汉芯景科技有限公司的限流开关芯片XJ6288开发指南(兼容SY6288)
一、芯片引脚介绍 1.芯片引脚 二、系统结构图 三、功能描述 1.EN引脚控制IN和OUT引脚的通断 2.OCB引脚指示状态 3.过流自动断开...

指令:计算机的语言(五)
2.9 人机交互 ASCII与二进制 对应表略 字节转移指令 lbu:加载无符号字节,从内存中加载1个字节,放在寄存器最右边8位。 sb:存储字节指令,从寄存器的最右边取1个字节并将其写入内存。 复制1个字节顺序如下…...

C#笔记(1)
解决方案: 【1】组织项目:把项目放在放在一个解决方案中,统一开发,统一编译。 【2】管理项目:开发中的任何问题,在统一编译过程中,都能随时发现。也可以添加第三方的库文件。 命名空间: 命名空…...

SSDF攻击、防御与展望
摘要: 随着无线通信业务的不断发展,频域也越来越成为了一种珍贵的稀缺资源,与此同时,相应的无线电安全问题层出不穷,为无线通信造成了十分恶劣的影响,本文从深入理解认知无线电安全开始,对一些典…...

MedMamba代码解释及用于糖尿病视网膜病变分类
MedMamba原理和用于糖尿病视网膜病变检测尝试 1.MedMamba原理 MedMamba发表于2024.9.28,是构建在Vision Mamba基础之上,融合了卷积神经网的架构,结构如下图: 原理简述就是图片输入后按通道输入后切分为两部分,一部分走…...

单点登录的要点
单点登录(SSO)是一种身份验证服务,它允许用户使用一组凭据登录一次,然后在多个应用程序中访问其他应用程序而无需重新进行身份验证。这样,用户只需一次登录即可访问整个应用生态系统,提高了用户体验并简化了…...

linux线程 | 一点通你的互斥锁 | 同步与互斥
前言:本篇文章主要讲述linux线程的互斥的知识。 讲解流程为先讲解锁的工作原理, 再自己封装一下锁并且使用一下。 做完这些就要输出一堆理论性的东西, 但博主会总结两条结论!!最后就是讲一下死锁。 那么, 废…...

全栈开发小项目
用到的技术栈: nodejswebpackknockoutmongodbPM2rabbitmq 以下是一个综合指南,展示如何将 Node.js、Webpack、Knockout.js、MongoDB、PM2 和 RabbitMQ 集成到一个项目中。 我们将在这一项目中添加 RabbitMQ,用于处理消息队列。这对于任务分…...

批处理一键创建扫描仪桌面打开快捷方式图标 简单直接有效 扫描文档图片的应急策略
办公生活中,我们在安装完多功能一体机的打印驱动之后,找不到扫描文件的地方,如果驱动程序安装正确,我们可以用系统自带的扫描仪程序调用这种打印机或复印机的扫描程序即可,它在电脑系统中的位置一般是:C:\W…...

【服务器知识】Tomcat简单入门
文章目录 概述Apache Tomcat 介绍主要特性版本历史使用场景 核心架构Valve机制详细说明请求处理过程 Tomcat安装Windows系统下Tomcat的安装与配置:步骤1:安装JDK步骤2:下载Tomcat步骤3:解压Tomcat步骤4:配置环境变量&a…...

【前端】Matter:过滤与高级碰撞检测
在物理引擎中,控制物体的碰撞行为是物理模拟的核心之一。Matter.js 提供了强大的碰撞检测机制和碰撞过滤功能,让开发者可以控制哪些物体能够相互碰撞,如何处理复杂的碰撞情况。本文将详细介绍 碰撞过滤 (Collision Filtering) 与 高级碰撞检测…...

wps图标没有坐标轴标题怎么办?wps表格不能用enter下怎么办?
目录 wps图标没有坐标轴标题怎么办 一、在WPS PPT中添加坐标轴标题 二、在WPS Excel中添加坐标轴标题 wps表格不能用enter下怎么办 一、检查并修改设置 二、检查单元格保护状态 三、使用快捷键实现换行 wps图标没有坐标轴标题怎么办 一、在WPS PPT中添加坐标轴标题 插入…...

在ESP-IDF环境中如何进行多文件中的数据流转-FreeRTOS实时操作系统_流缓存区“xMessageBuffer”
一、建立三个源文件和对应的头文件 建立文件名,如图所示 图 1-1 二、包含相应的头文件 main.h 图 2-1 mess_send.h mess_rece.h和这个中类似,不明白的大家看我最后面的源码分享 图2-2 三、声明消息缓存区的句柄 大家注意,在main.c中定义的是全局变…...