在 Tshark 中自动化文件轮转

WiresharkWiresharkBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本次实验中,你将学习使用 Wireshark 的 dumpcap 实用工具在 Tshark 中实现文件轮转自动化,以高效管理数据包捕获。你将配置基于大小的轮转(使用 -b filesize:1000 设置 1MB 限制)和基于数量的轮转(使用 -b files:5 设置 5 个文件的限制),从而在网络分析期间优化磁盘空间。

本实验将指导你使用轮转参数在 eth1 接口上捕获流量,然后验证输出文件。这些技术有助于在长时间的监控过程中保持数据包捕获的有序性,同时避免存储过载。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) wireshark/WiresharkGroup -.-> wireshark/interface("Interface Overview") wireshark/WiresharkGroup -.-> wireshark/packet_capture("Packet Capture") wireshark/WiresharkGroup -.-> wireshark/commandline_usage("Command Line Usage") subgraph Lab Skills wireshark/interface -.-> lab-548915{{"在 Tshark 中自动化文件轮转"}} wireshark/packet_capture -.-> lab-548915{{"在 Tshark 中自动化文件轮转"}} wireshark/commandline_usage -.-> lab-548915{{"在 Tshark 中自动化文件轮转"}} end

使用 -b filesize:1000 设置 1MB 文件大小

在这一步中,你将配置 Wireshark 的数据包捕获实用工具 dumpcap,使其在捕获文件大小达到 1MB 时自动创建新文件。这种技术称为文件轮转,它通过防止单个捕获文件变得过大来帮助管理磁盘空间。

-b filesize: 参数通过指定以千字节 (KB) 为单位的最大文件大小来控制此行为。由于 1000KB 约等于 1MB,因此每次当前捕获文件达到该大小时,此设置将创建一个新文件。这对于长时间运行的捕获特别有用,因为你希望保持文件大小易于管理。

让我们逐步完成设置过程:

  1. 首先,如果你还没有在 LabEx 虚拟机中打开终端,请打开它。我们将在终端中执行所有命令。

  2. 在开始捕获之前,我们需要确保位于正确的工作目录中。运行以下命令导航到项目文件夹:

    cd ~/project
  3. 现在,我们将以设置的大小限制开始数据包捕获。在终端中执行以下命令:

    sudo dumpcap -i eth1 -b filesize:1000 -w capture.pcapng

    让我们来分析一下这个命令的各个部分的作用:

    • sudo 为我们提供数据包捕获所需的管理员权限
    • dumpcap 是 Wireshark 的命令行捕获工具
    • -i eth1 告诉 dumpcap 监听 eth1 网络接口
    • -b filesize:1000 设置我们的 1MB 轮转阈值
    • -w capture.pcapng 指定输出的基本文件名

捕获将在你的终端中持续运行。当它收集到大约 1MB 的数据时,你会注意到系统会自动创建一个带有递增编号的新文件(如 capture_00001.pcapng),同时将原始的 capture.pcapng 作为活动文件保留。这种轮转在后台无缝进行。

使用 -b files:5 限制为 5 个文件

在这一步中,我们将探讨如何控制 Wireshark 的 dumpcap 实用工具创建的数据包捕获文件数量。在长时间捕获网络流量时,通过限制文件大小和文件总数来管理存储空间非常重要。

-b files: 参数允许你设置轮转捕获文件的最大数量。将其与上一章节中的 -b filesize 结合使用,可创建一个高效的轮转系统,该系统具有以下特点:

  • 当当前文件达到大小限制时,会创建新文件。
  • 仅保留指定数量的文件。
  • 当达到文件数量限制时,最旧的文件将被覆盖。

让我们通过一个将文件数量限制为 5 的实际示例来实现这一点:

  1. 首先,如果你在之前的练习中有正在进行的捕获,请在终端窗口中按 Ctrl+C 停止它。这确保我们重新开始。

  2. 导航到存储捕获文件的工作目录。运行以下命令:

    cd ~/project
  3. 现在执行同时设置大小和数量限制的捕获命令:

    sudo dumpcap -i eth1 -b filesize:1000 -b files:5 -w capture.pcapng

    对命令进行分解:

    • -i eth1 从你的主网络接口进行捕获。
    • -b filesize:1000 将每个文件限制为 1000 千字节(1MB)。
    • -b files:5 精确保留 5 个轮转文件。
    • -w capture.pcapng 设置基本文件名模式。

随着捕获过程的进行,你会看到名为 capture_00001.pcapngcapture_00002.pcapng 等的文件。系统将自动管理这些文件,仅保留 5 个最新的文件,并高效地回收存储空间。

使用 -i eth1 开始捕获

在这一步中,你将使用 Wireshark 的 dumpcap 工具开始在 eth1 接口上捕获网络流量。这是实际网络分析的起点——通过从你的网络连接收集真实的数据包数据。

-i eth1 部分告诉 dumpcap 要监控哪个网络接口。在大多数 Linux 系统中,eth1 代表你的主要有线以太网连接。你可以把这想象成录制声音时选择使用哪个麦克风——在这里,我们是在选择通过哪个网络“耳朵”来监听。我们将把这个设置与你之前学到的文件轮转设置结合起来,创建一个完整的自动化捕获解决方案。

让我们逐步完成这个过程:

  1. 首先,导航到你的工作目录。这可以确保所有捕获的文件都将保存在正确的位置:

    cd ~/project
  2. 现在执行捕获命令。这个命令可以同时完成几件事:

    • -i eth1 监控 eth1 接口。
    • -b filesize:1000 将每个捕获文件限制为 1000 千字节。
    • -b files:5 最多保留 5 个轮转文件。
    • -w capture.pcapng 设置输出的基本文件名。
    sudo dumpcap -i eth1 -b filesize:1000 -b files:5 -w capture.pcapng
  3. 命令执行成功后,你将看到实时统计信息,显示:

    • 当前捕获文件的名称。
    • 已捕获的数据包数量。
    • 可能丢失的任何数据包。
    File: capture_00001.pcapng
    Packets captured: 42
    Packets received/dropped on interface eth1: 42/0 (100.0%)

捕获将持续运行,直到你使用 Ctrl+C 停止它。在此期间,它将根据你的设置自动管理文件轮转,当文件达到大小限制时创建新文件,同时始终精确地保留 5 个文件。

使用 ls/dir 检查文件

在这一步中,你将验证 Wireshark 的 dumpcap 实用工具创建的数据包捕获文件。这个验证过程至关重要,因为它能让你确认网络捕获设置的两个重要方面:文件轮转是否按配置运行,以及捕获文件是否被正确保存。

在使用 Tshark 的文件轮转功能时,ls 命令(在 Windows 上是 dir)是你检查输出的主要工具。该命令用于列出 Linux/Unix 系统中的目录内容,我们将用它专门检查项目目录中的捕获文件。

你需要检查捕获文件的三个关键特征:

  1. 存在性:验证是否实际创建了捕获文件。
  2. 大小:确认每个文件大约为 1MB(如步骤 1 中使用 -b filesize 标志指定的那样)。
  3. 数量:确保存在的文件不超过 5 个(如步骤 2 中使用 -b files 参数限制的那样)。

以下是正确检查捕获文件的方法:

  1. 首先,你需要停止当前正在运行的捕获进程。在运行 Tshark 的终端中,按 Ctrl+C 正常停止捕获。这能确保在检查过程中没有文件正在被写入。

  2. 现在,列出项目目录中所有捕获文件的详细信息。-lh 标志以人类可读的格式显示文件大小,单位为 MB/GB:

    ls -lh ~/project/capture*.pcapng
  3. 你应该会看到类似以下的输出,显示多个大小合适的捕获文件:

    -rw-r--r-- 1 root root 1.0M Mar 1 10:15 capture_00001.pcapng
    -rw-r--r-- 1 root root 1.0M Mar 1 10:16 capture_00002.pcapng
    -rw-r--r-- 1 root root 1.0M Mar 1 10:17 capture_00003.pcapng
  4. 最后,为了验证文件数量限制是否生效,运行以下命令来统计捕获文件的数量。-1 标志使每个文件单独占一行,wc -l 用于统计行数:

    ls -1 ~/project/capture*.pcapng | wc -l

    输出应该为 5 或更少,这就确认了文件轮转功能正确地限制了保留文件的数量。

总结

在本次实验中,你学习了如何使用 Wireshark 的 dumpcap 实用工具在 Tshark 中实现文件轮转自动化。关键技术包括使用 -b filesize:1000 设置文件大小限制,以及使用 -b files:5 控制文件数量,以优化存储管理。

通过实践操作,你了解了如何结合接口选择(-i eth1)和输出指定(-w)来应用这些参数,随后还进行了验证步骤。这种方法能确保高效地进行数据包捕获,同时保持有序的文件轮转和存储控制。