TCPDump抓包命令详解:网络分析的强大工具

目录

一. 安装 TCPDump

二. 常用参数

三. 过滤表达式

基于协议的过滤:

基于地址的过滤:

基于端口的过滤:

逻辑操作符:

基于数据包内容的过滤:

基于时间戳的过滤:

基于MAC地址的过滤:

基于VLAN的过滤:

基于TCP标志的过滤:

基于IP选项的过滤:

四、实例


在网络管理和故障排除中,实时监控和分析网络流量是至关重要的。TCPDump 是一个强大的命令行工具,它允许用户捕获和分析通过网络接口的原始数据包。本文将详细介绍如何在 CentOS 操作系统中安装和使用 TCPDump,以及如何通过它来诊断和解决网络问题。

一. 安装 TCPDump

在 CentOS 中安装 TCPDump 非常简单。

安装 TCPDump:

yum install tcpdump -y

安装完成后,你可以通过输入 tcpdump 来验证安装是否成功:

tcpdump --version

二. 常用参数

参数描述
-a尝试将网络和广播地址转换成名称。
-A以 ASCII 码方式显示每一个数据包 (去除链路层头后),方便查看应用层的数据。
-b在 ARPA Internet 协议上同时显示数据包匹配和数据链路层头。
-B设置操作系统捕获缓冲区大小。
-c收到指定的数据包数目后,TCPDump 就会停止。
-C在保存数据包之前检查文件大小,如果超过指定大小则新建文件。
-d将编译过的数据包匹配代码以人们能够理解的汇编格式输出。
-dd以 C 语言形式输出数据包匹配代码。
-ddd以十进制数形式输出数据包匹配代码。
-D列出可用于抓包的接口。
-e在输出行打印出数据链路层头部信息。
-E指定解密 IPSEC 流量的方法。
-f将外部的 Internet 地址以数字形式打印出来。
-F使用文件作为过滤表达式的输入,忽略命令行上的表达式。
-G如果文件名可以被时间戳替换,允许单个文件保存多个抓包结果。
-h获取 TCPDump 的帮助信息。
-H尝试检测 802.11s 草案网状网络。
-i监听指定的网络接口。
-I将网络接口置于无监控模式,用于 802.11 无线网络。
-j设置抓包的时间戳类型为“jiffies”。
-J列出支持的时间戳类型。
-k显示数据包时强制显示时间戳。
-K不验证 IP、TCP 或 UDP 校验和。
-L列出网络接口的已知数据链路类型。
-m从文件模块中加载 SMI MIB 模块定义。
-M如果可能,使用指定的共享库或本地的办法来快速缓存会话密钥。
-n不把网络地址转换成名字。
-N不打印主机名的域名限定,如 hostname.localdomain
-O不运行数据包匹配代码优化器,如果怀疑优化器有 bug 可以使用这个选项。
-p不让网络接口进入混杂模式。
-q快速输出,打印较少的协议信息,输出行会比较短。
-r从指定的文件中读取数据包。
-R设定 TCPDump 的默认历史数据包匹配行为为不匹配。
-s设置数据包捕获长度。
-S打印 TCP 的绝对序列号而不是相对序列号。
-t在输出的每一行不打印时间戳。
-tt在每一行中输出非格式化的时间戳。
-T将指定的数据包强制解释为指定的类型。
-U使 -w 选项产生的数据包数据文件以 packet-buffered 方式写入,类似于实时数据流。
-v输出稍微详细的信息,例如显示 IP 数据包中的生存时间,标识,总长度。
-vv输出更详细的信息。
-vvv输出非常详细的信息。
-w将捕获的数据包直接写入文件而不是显示出来。
-W限制文件数量。
-x以十六进制和 ASCII 码形式打印出每个数据包 (去掉链路层头部),但不包括连接层。
-X以十六进制和 ASCII 码形式打印出每个数据包 (去掉链路层头部),也包括连接层。
-Y使用数据链路层匹配代码,即使这可能导致不正确的分片。
-z修改各种数据包和文件输出统计的计数器。
-Z改变用户 ID 或组 ID 到指定的用户或组。

这些选项允许用户根据需要调整 TCPDump 的行为,从而进行更精确的网络数据包捕获和分析。请注意,使用某些选项可能需要特定的权限或系统配置,且不同版本的 TCPDump 可能支持的选项有所不同。

三. 过滤表达式

  1. 基于协议的过滤

    • tcp: 过滤 TCP 协议数据包。
    • udp: 过滤 UDP 协议数据包。
    • icmp: 过滤 ICMP 协议数据包。
    • arp: 过滤 ARP 协议数据包。
    • ip: 过滤 IP 协议数据包。
    • ether: 过滤以太网帧。
    • wlan: 过滤无线局域网数据包。
  2. 基于地址的过滤

    • host: 过滤特定主机的数据包。例如 host 192.168.1.100
    • net: 过滤特定网络的数据包。例如 net 192.168.1.0/24
    • port: 过滤特定端口的数据包。例如 port 80
    • src 和 dst: 分别过滤源地址和目的地址的数据包。例如 src 192.168.1.100 或 dst 192.168.1.100
  3. 基于端口的过滤

    • tcp port: 过滤特定 TCP 端口的数据包。例如 tcp port 80
    • udp port: 过滤特定 UDP 端口的数据包。例如 udp port 53
  4. 逻辑操作符

    • and: 同时满足两个条件。例如 host 192.168.1.100 and tcp port 80
    • or: 满足任一条件。例如 host 192.168.1.100 or host 192.168.1.101
    • not 或 !: 排除满足条件的数据包。例如 not host 192.168.1.100
  5. 基于数据包内容的过滤

    • contains: 检查数据包是否包含特定字符串。例如 tcp[20:] contains "GET"
    • lessgreater: 比较数据包长度。例如 less 1500
    • =!=><: 比较操作符,用于 IP 地址、端口号等。
  6. 基于时间戳的过滤

    • lessgreater: 基于时间戳的比较。
  7. 基于MAC地址的过滤

    • ether host: 过滤特定 MAC 地址的数据包。例如 ether host 00:11:22:33:44:55
  8. 基于VLAN的过滤

    • vlan: 过滤特定 VLAN 的数据包。例如 vlan 10
  9. 基于TCP标志的过滤

    • tcp flags: 基于 TCP 标志位过滤。例如 tcp[tcpflags] & tcp-syn != 0
  10. 基于IP选项的过滤

    • ip options: 基于 IP 选项过滤。

这些过滤方式可以组合使用,以实现更复杂的过滤逻辑。

例如,tcpdump host 192.168.1.100 and tcp port 80 将捕获来自或发往 192.168.1.100 且端口为 80 的 TCP 数据包。通过灵活运用这些过滤表达式,可以有效地捕获和分析网络中的特定流量。

四、实例

1. 捕获特定主机的所有流量

tcpdump host 192.168.1.100

这个命令将捕获所有源或目的地址为 192.168.1.100 的数据包。

2. 捕获特定端口的流量

tcpdump port 80

这个命令将捕获所有端口为 80(通常是 HTTP 服务)的数据包。

3. 捕获特定协议的流量

tcpdump tcp

这个命令将捕获所有 TCP 协议的数据包。

4. 捕获特定网络的流量

tcpdump net 192.168.1.0/24

这个命令将捕获所有源或目的地址在 192.168.1.0/24 网络范围内的数据包。

5. 捕获源地址或目的地址为特定主机的流量

tcpdump src or dst host 192.168.1.100

这个命令将捕获源或目的地址为 192.168.1.100 的数据包

6. 捕获特定端口和主机的流量

tcpdump src host 192.168.1.100 and port 80

这个命令将捕获源地址为 192.168.1.100 且端口为 80 的数据包。

7. 捕获特定 MAC 地址的流量

tcpdump ether host 00:11:22:33:44:55

这个命令将捕获源或目的 MAC 地址为 00:11:22:33:44:55 的数据包

8. 捕获特定 VLAN 的流量

tcpdump vlan 10

这个命令将捕获 VLAN ID 为 10 的数据包

9. 捕获特定 TCP 标志位的流量

tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-ack) != 0'

这个命令将捕获带有 SYN 或 ACK 标志位的 TCP 数据包

10. 捕获 HTTP GET 请求

tcpdump -nn -vv -X 'tcp[20:] matches "^GET |^Host: "

这个命令将捕获包含 "GET " 或 "Host: " 字符串的 HTTP 请求数据包,并以十六进制和 ASCII 码形式显示数据包内容

11. 捕获并保存数据包到文件

tcpdump -w capture.pcap

这个命令将捕获所有数据包并保存到名为 capture.pcap 的文件中,以便后续分析。

12. 从保存的文件中读取数据包

tcpdump -r capture.pcap

这个命令将从 capture.pcap 文件中读取并显示数据包。

13. 捕获特定时间范围内的数据包

tcpdump -G 3600 -W 1 -w capture -C 200

这个命令将每小时创建一个新的数据包文件,每个文件大小不超过 200MB,最多保留一个文件。

14. 捕获特定 TCP 端口的 SYN 数据包

tcpdump 'tcp[tcpflags] & tcp-syn != 0 and tcp port 80'

这个命令将捕获端口 80 上的 TCP SYN 数据包。

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

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

相关文章

计算机毕业设计Thinkphp/Laravel+vue高校图书馆借阅系统_i0521

图书馆借阅系统&#xff0c;主要的模块包括首页、个人中心、会员管理、会员等级管理、图书分类管理、图书信息管理、图书借阅管理、借阅服务评价管理、超时费用管理、留言板管理、系统管理等功能。系统中管理员主要是为了安全有效地存储和管理各类信息&#xff0c;还可以对系统…

浅学JVM

一、基本概念 目录 一、基本概念 二、JVM 运行时内存 1、新生代 1.1 Eden 区 1.2. ServivorFrom 1.3. ServivorTo 1.4 MinorGC 的过程 &#xff08;复制- >清空- >互换&#xff09; 1.4.1&#xff1a;eden 、servicorFrom 复制到ServicorTo&#xff0c;年龄1 …

力扣每日一题 特别的排列 DFS 记忆化搜索 位运算 状态压缩DP

Problem: 2741. 特别的排列 &#x1f468;‍&#x1f3eb; 参考题解 &#x1f37b; 暴搜 ⏰ 时间复杂度&#xff1a; O ( N ) O(N) O(N) class Solution {public int specialPerm(int[] nums) {boolean[] visited new boolean[nums.length];return dfs(nums, 0, -1, visit…

目标检测系列(二)yolov1的全面讲解

目录 1、网络结构 2、检测原理 3、制作训练正样本方法 4、损失函数 5、前向推理 6、模型缺限 YOLO的全称是you only look once&#xff0c;指只需要浏览一次就可以识别出图中的物体的类别和位置。YOLO被称为Region-free方法&#xff0c;相比于Region-based方法&#xff0…

AI已经火了一年了,真正属于普通人的机会在哪里?

对普通人来说&#xff0c;AI的机会在哪里&#xff1f; 这是过去一年来&#xff0c;我收到过最多的问题 在这篇文章里&#xff0c;我会把我目前对AI的理解阐述出来&#xff0c;分享3个普通人能够把握的方向 讲清楚在现在这个时间节点&#xff0c;当我们在说搞AI的时候&#x…

JavaScript Array filter() 方法

filter()方法允许你根据特定的条件从一个数组中筛选出新的数组。 filter()方法的语法: arr.filter(callback(element, index, array), thisValue) callback函数是必需的,它会为数组中的每个元素执行一次。该函数返回一个值,用于判断元素是否应该包含在新数组中。 element 是…

SpringBoot AOP + Redis延时双删功能

延时双删功能就不过多解释了&#xff0c;场景就是&#xff0c;为了少关联表&#xff0c;将数据的id 跟name存到redis中&#xff0c;但是为了解决数据一致性的问题&#xff0c;即一旦name修改了&#xff0c;如何更新redis&#xff0c;写了如下代码&#xff0c;部分参考了其他人的…

RAG应用要如何吃到大模型长上下文的红利?-LongRAG

去年底的时候&#xff0c;笔者写过&#xff0c;与其在RAG系统上雕花&#xff0c;可以重新思考一下&#xff0c;自己的业务场景是否非RAG不可吗&#xff1f;随着去年大模型的蓬勃发展&#xff0c;长度外推、更长的上下文模型&#xff0c;更厉害的中文底座大模型&#xff0c;都可…

RabbitMq camel

真实的项目如果 交换器/ 队列很多 建议在管理页面新建exchange / queue/ rootingKey /vhost, 而不要写死在springboot项目里 camel按rooting key发送消息: 最推荐 .to("rabbitmq:sino.nannan?routingKeysino.key&skipExchangeDeclaretrue&skipQueueDeclaretru…

Python 挖坑式填充Excel模板内容(包括页眉/SheetName/logo)

纵览 Python处理Excel的方式--解压缩方式1、导包2、对模板文件进行解压缩3、对解压缩后文件层级进行介绍4、准备需要载入的数据5、模板挖坑6、运行替换代码7、压缩文件8、生成文件9、完成代码10、可能遇到的问题 结语 Python处理Excel的方式–解压缩方式 在处理Excel中过程中&…

《人人都是产品经理》:项目的坎坷一生

《人人都是产品经理》&#xff1a;项目的坎坷一生 产品VS项目产品经理和项目经理 一切项目从kick off 开始工作量预估Kick Off的大致也就15分钟 写文档咯UML图用例文档UCdemo也得做 需求活在项目中bug等级有多高bug流转过程 以终为始 产品VS项目 项目定义&#xff1a;是只会进…

navict sql 复制出来 带逗号分隔的,如:(1, 2, 3, 4, 5)

1. 假如我们要查询一个表中所有的id, 拼接成括号逗号分隔形式 select id from student1 2 3 4 5 2. 解决办法&#xff1a;使用函数创建一个对应的函数 如下是sql代码&#xff1a; # 删除函数 drop FUNCTION if EXISTS sm; # 创建函数 CREATE FUNCTION sm(s TEXT) RETURNS …

怎么压缩pdf文件大小,如何压缩pdf文件大小

pdf文件怎么压缩&#xff1f;在当下这个信息爆炸的时代&#xff0c;无论是在工作场所还是校园中&#xff0c;我们经常会面临需要处理大文件的情况&#xff0c;而PDF格式作为一种保留文档结构和布局完整性的理想选择&#xff0c;有时候pdf文件太大&#xff0c;因此&#xff0c;对…

【vdbench性能测试】Slaver连Master显示连接超时,大概率etc/hosts文件出问题

报错类似&#xff1a; slavejvm execution parameter: -m 127.0.1.1 slavejvm execution parameter: -n xx.xx.xx.xx-11-240626-15.21.50.164 slavejvm execution parameter: -l hd2-0 15:21:50.833 15:21:50.832 slavejvm execution parameter: -p 5570 slavejvm positio…

typec密封胶防水用什么胶好?

typec密封胶防水用什么胶好&#xff1f; 对于Type-C连接器的防水密封&#xff0c;行业内普遍推荐使用单组份环氧型热固化胶。这种胶水具有以下优点&#xff0c;使其成为Type-C防水密封的理想选择&#xff1a; 粘稠度易于调整&#xff1a;这有助于胶水在点胶过程中更好地渗透到T…

基于深度学习的点云包围盒检测

基于深度学习的点云包围盒检测 点云包围盒检测是一项关键任务&#xff0c;主要用于三维场景中物体的检测和定位。与传统的二维图像目标检测不同&#xff0c;点云数据包含了三维空间的信息&#xff0c;能够提供更加丰富的细节和准确的位置。基于深度学习的方法在点云包围盒检测…

2024年二级建造师机电工程专业考试题库分享。

1.调查表法通常与&#xff08;&#xff09;结合使用&#xff0c;以便更快地发现问题原因。 A.经验法 B.分层法 C.样本调查法 D.对比分析法 答案&#xff1a;B 解析&#xff1a;题干内容提示调查表法往往会与分层法结合起来应用&#xff0c;故B选项正确。 2.在质量统计分…

nestjs从零到一,快速上手(七) 拦截器的使用

演示代码&#xff1a; 1. logs.controller.ts import { Body, Controller, Post, UseInterceptors } from nestjs/common; import { IsNotEmpty, IsString } from class-validator; import { SerializeInterceptor } from ../interceptors/serialize/serialize.interceptor; …

压缩图片png格式该怎么操作?试试下面这3个图片压缩工具吧

png是经常用于储存图片的一种格式&#xff0c;随着现在图片在日常工作和生活中的广泛使用&#xff0c;在很多的使用场景中都有应用。png的图片质量高而且支持无损压缩&#xff0c;在缩小图片的时候不会因为压缩而影响图片的清晰度&#xff0c;更适合在网上的存储、分享或者传输…

论文阅读MVBench: A Comprehensive Multi-modal Video Understanding Benchmark

摘要(Abstract)&#xff1a; 论文介绍了MVBench&#xff0c;这是一个全新的多模态视频理解基准测试&#xff0c;旨在评估多模态大型语言模型&#xff08;MLLMs&#xff09;在视频理解方面的能力。 目前许多基准测试主要集中在静态图像任务的空间理解上&#xff0c;而忽视了动…