在 Tshark 中使用显示过滤器

WiresharkWiresharkBeginner
立即练习

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

简介

在这个实验中,你将学习如何在 Wireshark 的命令行工具 tshark 中使用显示过滤器,以进行高效的网络流量分析。你将练习读取数据包捕获文件(tcp.pcap),并应用过滤器来分离特定的流量模式,例如来自特定 IP 地址或 TCP 端口的数据包。

通过实践练习,你将掌握 tshark 的关键命令,包括用于读取文件的 -r 和用于应用过滤器的 -Y。本实验着重比较过滤和未过滤的结果,以提升你的网络故障排除技能。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) wireshark/WiresharkGroup -.-> wireshark/display_filters("Display Filters") wireshark/WiresharkGroup -.-> wireshark/packet_analysis("Packet Analysis") wireshark/WiresharkGroup -.-> wireshark/commandline_usage("Command Line Usage") subgraph Lab Skills wireshark/display_filters -.-> lab-548939{{"在 Tshark 中使用显示过滤器"}} wireshark/packet_analysis -.-> lab-548939{{"在 Tshark 中使用显示过滤器"}} wireshark/commandline_usage -.-> lab-548939{{"在 Tshark 中使用显示过滤器"}} end

使用 -r tcp.pcap 读取文件

在这一步中,你将学习如何使用 Wireshark 的命令行工具 tshark 读取数据包捕获文件。-r 选项是 tshark 中最基本的命令之一,它允许你指定要分析的数据包捕获文件(PCAP)。这类似于在 Wireshark 图形用户界面(GUI)中打开文件,但通过命令行完成。

  1. 首先,你需要导航到包含数据包捕获文件的目录。打开终端并运行以下命令:

    cd ~/project

    此命令将你的工作目录更改为存储示例捕获文件的项目文件夹。

  2. 实验环境提供了一个名为 tcp.pcap 的示例数据包捕获文件。在尝试读取该文件之前,我们先验证它是否存在:

    ls -l tcp.pcap

    你应该会看到类似以下的输出:

    -rw-r--r-- 1 labex labex 12345 Jan 1 00:00 tcp.pcap

    这显示了文件的权限、所有者、大小和修改日期,确认文件存在。

  3. 现在,我们将使用 tshark 读取并显示数据包捕获文件:

    tshark -r tcp.pcap

    -r 标志告诉 tshark 从指定的文件读取数据,而不是进行实时流量捕获。此命令将直接在终端中显示数据包内容。

  4. 输出将以列的形式显示每个数据包的基本信息:

    1 0.000000 192.168.1.1 → 192.168.1.2 TCP 74 80 → 49234 [SYN] Seq=0 Win=64240 Len=0
    2 0.000123 192.168.1.2 → 192.168.1.1 TCP 74 49234 → 80 [SYN, ACK] Seq=0 Ack=1 Win=29200 Len=0

    每一行代表一个网络数据包,显示其编号、时间戳、源/目的 IP 地址、协议(这里是 TCP)和 TCP 标志。

  5. 当 tshark 显示所有数据包时,输出会持续滚动。要停止显示并返回命令提示符,请按 Ctrl+C。这个键盘中断操作会安全地终止 tshark 进程。

使用 -Y "ip.src==192.168.1.1" 按源 IP 过滤

在这一步中,你将学习如何使用 Wireshark 的命令行工具 tshark 按源 IP 地址过滤网络数据包。-Y 选项专门用于显示过滤器,它能帮助你聚焦特定的网络流量模式,而无需修改原始数据包数据。

  1. 首先,确保你处于存储数据包捕获文件的正确目录中。这很重要,因为 tshark 需要知道在哪里找到你要分析的文件:

    cd ~/project
  2. 现在,让我们过滤来自特定 IP 地址 192.168.1.1 的数据包。-r 标志指定输入文件,而 -Y 应用我们的过滤条件。过滤语法 ip.src==192.168.1.1 表示“仅显示源 IP 等于 192.168.1.1 的数据包”:

    tshark -r tcp.pcap -Y "ip.src==192.168.1.1"
  3. 该命令将仅输出符合我们过滤条件的数据包。注意每个条目如何显示源 IP(192.168.1.1)和目的 IP,以及其他协议详细信息:

    1 0.000000 192.168.1.1 → 192.168.1.2 TCP 74 80 → 49234 [SYN] Seq=0 Win=64240 Len=0
    3 0.000456 192.168.1.1 → 192.168.1.2 TCP 66 80 → 49234 [ACK] Seq=1 Ack=1 Win=64240 Len=0
  4. 为了更好地理解过滤效果,将此输出与你之前看到的未过滤结果进行比较。这展示了显示过滤器如何从大型捕获文件中分离出特定的流量模式。

  5. 当你查看完过滤后的输出后,按 Ctrl+C 停止显示并返回命令提示符。这个键盘快捷键适用于大多数输出连续结果的命令行工具。

使用 -Y "ip.src==192.168.1.1 and tcp.port==80" 组合过滤器

在这一步中,你将学习如何在 Wireshark 的命令行工具 tshark 中组合多个过滤器,以精确分析网络流量。-Y 选项(显示过滤器)允许你使用像 and 这样的逻辑运算符来创建复杂的过滤条件。当你需要同时检查符合多个条件的流量时,这尤其有用。

  1. 首先,导航到存储数据包捕获文件的项目目录。这能确保 tshark 可以找到你要分析的文件:

    cd ~/project
  2. 现在,让我们过滤满足两个条件的数据包:它们必须来自 IP 地址 192.168.1.1,并且使用 TCP 端口 80(通常是 HTTP 流量)。and 运算符确保只有当两个条件都为真时,数据包才会被显示:

    tshark -r tcp.pcap -Y "ip.src==192.168.1.1 and tcp.port==80"
  3. 输出将仅显示符合这两个条件的数据包。例如,你可能会看到来自指定 IP 地址的 HTTP 请求:

    1 0.000000 192.168.1.1 → 192.168.1.2 TCP 74 80 → 49234 [SYN] Seq=0 Win=64240 Len=0
    5 0.001234 192.168.1.1 → 192.168.1.2 HTTP 145 GET /index.html HTTP/1.1
  4. 注意,与单独使用单个过滤器相比,这种组合过滤器能为你提供更有针对性的结果。将此输出与仅按 IP 或仅按端口过滤时的输出进行比较,以了解组合过滤器如何帮助分离特定的流量模式。

  5. 当你查看完输出后,按 Ctrl+C 返回命令提示符。这个键盘组合会停止显示数据包信息。

使用 -P 验证输出

在这一步中,你将学习如何使用 Wireshark 的 tshark 工具结合 -P 选项来验证并打印数据包详细信息。-P 标志指示 tshark 以结构化、易于阅读的格式打印数据包详细信息,而不仅仅是显示摘要行。当你需要检查网络数据包中的特定字段时,这尤其有用。

  1. 首先,确保你位于存储数据包捕获文件的正确目录中。这很重要,因为 tshark 需要访问我们要分析的 pcap 文件:

    cd ~/project
  2. 现在,我们将使用 tshark 过滤并显示来自 IP 地址 192.168.1.1 且通过 TCP 端口 80 进行通信的数据包。该命令结合了三个重要的标志:

    • -r 用于读取捕获文件
    • -Y 用于应用显示过滤器
    • -P 用于显示详细的数据包信息
    tshark -r tcp.pcap -Y "ip.src==192.168.1.1 and tcp.port==80" -P
  3. -P 选项会对每个数据包的内容进行分层分解。以下是示例输出,展示了不同的协议层:

    Frame 1: 74 bytes on wire (592 bits), 74 bytes captured (592 bits)
    Ethernet II, Src: 00:11:22:33:44:55, Dst: 66:77:88:99:aa:bb
    Internet Protocol Version 4, Src: 192.168.1.1, Dst: 192.168.1.2
    Transmission Control Protocol, Src Port: 80, Dst Port: 49234, Seq: 0, Ack: 0, Flags: SYN
  4. 注意,与之前未使用 -P 的命令相比,此输出显示了更多的技术细节。你可以看到:

    • 物理层(以太网)信息
    • 网络层(IP)地址
    • 传输层(TCP)端口号和标志
  5. 当你查看完输出后,可以通过按 Ctrl+C 停止显示。在大多数 Linux 终端中,这个键盘组合用于中断当前命令。

总结

在本次实验中,你学习了如何使用 Wireshark 的命令行工具 tshark 有效应用显示过滤器来进行网络流量分析。你练习了使用 -r 读取 PCAP 文件,使用 -Y 按 IP 地址和端口进行过滤,以及使用 and 等逻辑运算符组合条件。

这些练习展示了如何分离特定的流量模式,并使用 -P 验证结果,让你掌握了进行有针对性的数据包分析的必要技能。这些技术能够让你专注于相关的网络数据,从而高效地进行故障排除。