tcpdump 是一款功能强大的网络数据包分析工具

  1. 功能概述
    tcpdump 可以捕获和分析网络上传输的数据包。它允许用户在网络接口上监听经过的流量,并根据指定的条件(如协议类型、源 IP 地址、目的 IP 地址、端口号等)对数据包进行过滤和显示,帮助网络管理员、安全分析师和开发人员排查网络故障、分析网络性能和检测安全漏洞等。
  2. 工作原理
    tcpdump 利用操作系统的网络套接字接口来捕获网络数据包。它将网络接口设置为混杂模式(在某些情况下),这样就可以接收和处理经过该接口的所有网络流量,而不仅仅是发往和来自本地主机的流量。然后,根据用户指定的过滤规则对捕获到的数据包进行筛选和处理,最后将符合条件的数据包信息显示在终端或者保存到文件中。
  3. 常用参数
    -i:指定要监听的网络接口。例如,tcpdump -i eth0表示在 eth0 接口上捕获数据包。
    -c:指定要捕获的数据包数量。比如,tcpdump -c 10会在捕获到 10 个数据包后停止。
    -w:将捕获的数据包保存到文件中。例如,tcpdump -w packet.pcap会把数据包保存到名为 packet.pcap 的文件中,这种.pcap 格式的文件可以使用 Wireshark 等工具进一步分析。
    -r:从指定的文件中读取数据包并显示。例如,tcpdump -r packet.pcap用于查看之前保存的数据包信息。
    -t:不显示时间戳信息。在某些情况下,如果不需要时间戳,可以使用此参数简化输出。
    -s:指定捕获数据包的大小。例如,tcpdump -s 64表示只捕获每个数据包的前 64 字节。如果不指定,可能会捕获整个数据包,但对于大流量网络,限制数据包大小可以减少数据量和提高性能。
  4. 过滤表达式
    基于协议过滤:可以使用协议名称作为过滤条件,如tcp、udp、icmp等。例如,tcpdump tcp只捕获 TCP 协议的数据包。
    基于 IP 地址过滤:使用src(源 IP)和dst(目的 IP)指定 IP 地址。例如,tcpdump src 192.168.1.100捕获源 IP 为 192.168.1.100 的数据包,tcpdump dst 192.168.1.200捕获目的 IP 为 192.168.1.200 的数据包。
    基于端口过滤:使用port指定端口号。例如,tcpdump port 80捕获端口 80 的数据包,tcpdump src port 80捕获源端口为 80 的数据包。
    组合过滤:可以使用and、or、not等逻辑运算符组合多个过滤条件。例如,tcpdump src 192.168.1.100 and dst port 80捕获源 IP 为 192.168.1.100 且目的端口为 80 的数据包。
  5. 应用场景
    网络故障排查:当网络出现连接问题、丢包、延迟过高等情况时,可以使用 tcpdump 捕获相关的网络数据包,分析数据包的内容和流向,确定问题所在。例如,检查是否有异常的 IP 地址发送大量数据包,或者是否有特定的协议出现问题。
    网络性能分析:通过捕获网络流量,分析不同协议、不同主机之间的数据包数量、大小和传输时间等信息,评估网络性能。比如,确定网络中的瓶颈是在某个网段、某个服务器还是某个应用程序的网络通信上。
    安全检测:用于检测网络中的异常活动,如未经授权的访问尝试、恶意扫描等。可以通过分析数据包的源 IP、目的 IP、端口和协议等信息,发现潜在的安全威胁。例如,发现大量来自外部 IP 的 SYN 扫描请求(可能是端口扫描攻击)。

在这里插入图片描述

  1. 基本捕获
捕获指定接口的所有数据包
tcpdump -i eth0
-i选项指定要监听的网络接口(这里是 eth0),此命令会捕获经过 eth0 接口的所有数据包,并在终端输出数据包的头部信息,包括源 IP、目的 IP、协议类型等。输出信息会持续滚动,直到使用Ctrl + C手动停止。
捕获指定数量的数据包
tcpdump -c 10 -i eth0
-c选项用于指定要捕获的数据包数量。这里会在 eth0 接口上捕获 10 个数据包后自动停止。
  1. 基于协议的捕获
捕获指定协议的数据包(以 TCP 为例)
tcpdump -i eth0 tcp
此命令只捕获经过 eth0 接口的 TCP 协议数据包。可以将tcp换成udp、icmp等其他协议名称来捕获相应协议的数据包。
捕获多种协议的数据包(以 TCP 和 UDP 为例)
tcpdump -i eth0 tcp or udp
会捕获经过 eth0 接口的 TCP 或 UDP 协议的数据包。
  1. 基于 IP 地址的捕获
捕获指定源 IP 地址的数据包
tcpdump -i eth0 src 192.168.1.100
src选项用于指定源 IP 地址,这里会捕获从 IP 地址为 192.168.1.100 的主机发出的数据包(经过 eth0 接口)。
捕获指定目的 IP 地址的数据包
tcpdump -i eth0 dst 192.168.1.200
dst选项用于指定目的 IP 地址,此命令会捕获发往 192.168.1.200 的数据包(经过 eth0 接口)。
捕获指定源和目的 IP 地址的数据包
tcpdump -i eth0 src 192.168.1.100 and dst 192.168.1.200
会捕获源 IP 地址为 192.168.1.100 且目的 IP 地址为 192.168.1.200 的数据包(经过 eth0 接口)。
  1. 基于端口的捕获
捕获指定源端口的数据包(以源端口 80 为例)
tcpdump -i eth0 src port 80
会捕获从源端口为 80 的主机发出的数据包(经过 eth0 接口)。
捕获指定目的端口的数据包(以目的端口 80 为例)
tcpdump -i eth0 dst port 80
此命令会捕获发往目的端口为 80 的数据包(经过 eth0 接口)。
捕获指定源和目的端口的数据包(以源端口 80 和目的端口 443 为例)
tcpdump -i eth0 src port 80 and dst port 443
会捕获源端口为 80 且目的端口为 443 的数据包(经过 eth0 接口)。
  1. 组合条件捕获
捕获特定源 IP 和特定协议的数据包(以源 IP 192.168.1.100 和 TCP 协议为例)
tcpdump -i eth0 src 192.168.1.100 and tcp
会捕获从 192.168.1.100 发出且为 TCP 协议的数据包(经过 eth0 接口)。
捕获特定目的 IP、特定端口和特定协议的数据包(以目的 IP 192.168.1.200、目的端口 80 和 HTTP 协议为例)
tcpdump -i eth0 dst 192.168.1.200 and dst port 80 and tcp
这里假设 HTTP 协议基于 TCP 协议且使用 80 端口。此命令会捕获发往 192.168.1.200 且目的端口为 80 的 TCP 数据包(经过 eth0 接口),可用于分析对该主机 80 端口的访问情况。
  1. 保存捕获数据到文件
将捕获的数据包保存到文件(以.pcap 格式为例)
tcpdump -i eth0 -w capture.pcap
-w选项用于将捕获的数据包保存到指定文件(这里是 capture.pcap)。之后可以使用其他网络分析工具(如 Wireshark)打开这个文件进行详细分析。
从文件中读取数据包进行分析
tcpdump -r capture.pcap
-r选项用于从指定的文件(这里是 capture.pcap)中读取数据包并显示其信息,这在后续分析之前捕获的数据时非常有用。
  1. 其他功能
显示更详细的数据包内容(以 ASCII 形式)
tcpdump -i eth0 -A
-A选项会以 ASCII 码形式显示数据包内容,对于查看 HTTP 等文本协议的数据包内容有一定帮助,可以看到请求的 URL、HTTP 头部等信息。
显示更详细的数据包内容(以十六进制和 ASCII 形式)
tcpdump -i eth0 -XX
-XX选项会以十六进制和 ASCII 码形式显示数据包内容,比-A选项显示的信息更详细,可用于深入分析数据包的内容和结构。
指定捕获的数据包大小(以捕获 68 字节为例)
tcpdump -i eth0 -s 68
-s选项用于指定捕获的每个数据包的最大字节数。如果不指定,默认可能会捕获整个数据包,但在某些情况下,限制数据包大小可以减少捕获数据量,提高性能或只关注数据包的头部信息。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

容器化技术入门:Docker详解

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 容器化技术入门:Docker详解 容器化技术入门:Docker详解 容器化技术入门:Docker详解 引言 Doc…

C++20 概念与约束(2)—— 初识概念与约束

1、概念 C20 中引入新的编译期关键字 concept 用于创建概念。个人认为将其翻译为“构思”更为贴切。直接使用时,它更像一个只能用于模板的布尔类型关键字。 而如果用于模板中,他会将模板类型先带入自身,当自身条件为 true 才会实例化模板&…

FPGA实现以太网(一)、以太网基础知识

系列文章目录 FPGA实现以太网(二)、初始化和配置PHY芯片 文章目录 系列文章目录一、以太网简介二、OSI七层模型三、TCP/IP五层模型四、MAC-PHY接口五、MAC帧格式六、IP帧格式6.1 IP首部校验和计算6.2 IP首部校验和校验 七、UDP帧格式7.1 UDP头部校验和…

【启程Golang之旅】Go-Micro框架的高效开发技巧

欢迎来到Golang的世界!在当今快节奏的软件开发领域,选择一种高效、简洁的编程语言至关重要。而在这方面,Golang(又称Go)无疑是一个备受瞩目的选择。在本文中,带领您探索Golang的世界,一步步地了…

课下作业:IPSec协议验证

课下作业:IPSec协议验证 文章目录 1. 参考云班课课程资源中“ch03 密码技术-协议验证”的“VPN协议验证.pdf”和“ch03 密码技术-10-密码协议验证IPSec.mp4”,对 IPSec 协议进行验证,提交验证过程。(79分)第一阶段发起…

私域流量时代下的新型商业模式:以开源链动 2 + 1 模式、AI 智能名片、S2B2C 商城小程序源码为例

摘要:本文探讨了私域流量时代的特点及其对商业盈利模式的影响。通过分析从大众消费时代到私域流量时代的转型,阐述了商品到“人”的变化过程。同时,深入研究了开源链动 2 1 模式、AI 智能名片和 S2B2C 商城小程序源码在私域流量发展中的作用…

QJson-趟过的各种坑(先坑后用法)

QJson-趟过的各种坑【先坑后用法】 Chapter1 QJson-趟过的各种坑【先坑后用法】一、不能处理大数据量,如果你的数据量有百兆左右(特别是有的小伙伴还喜欢json格式化输出的),不要用Qjson,否则会报错 DocumentTooLarge二、json格式化输出1.构建…

MySQL记录锁、间隙锁、临键锁(Next-Key Locks)详解

行级锁,每次操作锁住对应的行数据。锁定粒度最小,发生锁冲突的概率最低,并发度最高。 应用在InnoDB存储引擎中。InnoDB的数据是基于索引组织的,行锁是通过对索引上的索引项加锁来实现的,而不是对记录加的锁。 对于行…

DBeaver工具连接Hive

DBeaver工具连接Hive 首先解压安装包dbeaver-ce-latest-x86_64-setup.zip,并安装dbeaver-ce-latest-x86_64-setup.exe; 安装Kerberos客户端4.1-amd64.msi; 查看集群节点/etc/hosts文件内容,并追加到C:\Windows\System32\drivers\etc\hosts; 下载集群用户keytab文件,并解压…

动态规划-两个数组的dp问题——718.最长重复子数组

1.题目解析 题目来源 718.最长重复子数组——力扣 测试用例 2.算法原理 1.状态表示 子数组问题不能像子序列问题使用两个区间来表示状态,因为子数组一定是连续的,因此在填第i个位置就需要用到第i-1个位置的值,那么不妨以某个位置为结尾来设…

软件工程 软考

开发大型软件系统适用螺旋模型或者RUP模型 螺旋模型强调了风险分析,特别适用于庞大而复杂的、高风险的管理信息系统的开发。喷泉模型是一种以用户需求为动力,以对象为为驱动的模型,主要用于描述面向对象的软件开发过程。该模型的各个阶段没有…

【日志】392.判断子序列

2024.11.8 【力扣刷题】 392. 判断子序列 - 力扣(LeetCode)https://leetcode.cn/problems/is-subsequence/?envTypestudy-plan-v2&envIdtop-interview-150 整个题从一开始就是打算从双指针的思想往下走的。但是,我设置了四个变量sLeft…

高校宿舍信息管理系统小程序

作者主页:编程千纸鹤 作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参…

【含开题报告+文档+源码】基于SpringBoot的智慧养老医护管理系统

开题报告 随着社会老龄化趋势的不断加深,我国老年人口逐年增长,对养老服务的需求愈发迫切。然而,传统的养老服务模式存在许多不足,如信息孤岛、护理不精准等问题,迫切需要一种创新性的解决方案以提升养老服务的质量和…

【双十一特惠】腾讯云省钱攻略:如何智取云计算资源

前言 双十一不仅是购物的狂欢节,对于云计算用户来说,更是一个节省成本的绝佳时机。腾讯云,作为国内领先的云计算服务商,每年双十一都会推出一系列优惠活动。本文将为您揭开如何在这个购物节中,最大化利用腾讯云的优惠…

IEEE 1588:电信网络的精确时间协议 (PTP)

IEEE 1588:电信网络的精确时间协议 IEEE 1588 PTP 概述PTP 协议特征同步类型IEEE 1588 PTP 角色IEEE 1588 PTP 的工作原理PTP 设备类型PTP 消息类型事件消息一般信息 PTP 时钟类规范PTP 配置文件 https://www.techplayon.com/ieee-1588-precision-time-protocol-ptp…

昇思大模型平台打卡体验活动:基于MindSpore实现GPT1影评分类

如果你对MindSpore感兴趣,可以关注昇思MindSpore社区 大模型平台 平台说明 昇思大模型平台旨在为AI学习者和开发者提供在线学习的项目、模型、大模型体验和数据集的平台。我们也添加了各领域的经典数据集来帮助学习者解决AI学习过程中的一系列难题, 如…

在IDEA中使用Git

一、准备工作 这里我们使用 Gitee 做例子,使用 SSH 协议。看这个文章前最好看一下《》这个文章,了解一下 SSH。 1、生成秘钥对 首先要到 ~/.ssh 目录下进行操作,因为生成的公钥和私钥一般放在这个目录下,Windows 就是在用户目…

Linux下通过sqlplus连Oracle提示字符是乱码▒▒▒[

先参考https://www.cnblogs.com/wrencai/articles/4374451.html 理解下Oracle编码字符集的概念 如下图,刚开始连上是软吗▒▒▒[ 执行export NLS_LANGJAPANESE_JAPAN.AL32UTF8 (这个仅在当前会话起作用)如果好了,说明字符集是这个,不行在尝试别的字符集 如果要永久设置 vim …

Flyweight(享元)

1)意图 运用共享技术有效地支持大量细粒度的对象。 2)结构 享元模式的结构如图 7-36 所示。 其中: Flyweight 描述一个接口,通过这个接口 Flyweight 可以接受并作用于外部状态 ConcreteFlyweight 实现 Flyweight 接口,并为内部状态(如果有)增加存储空…