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"。
    • less, greater: 比较数据包长度。例如 less 1500。
    • =, !=, >, <: 比较操作符,用于 IP 地址、端口号等。
  6. 基于时间戳的过滤:

    • less, greater: 基于时间戳的比较。
  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.tpcf.cn/bicheng/35446.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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;而忽视了动…