介绍
在本次实验中,你将学习使用 Wireshark 的命令行工具 tshark 来分析网络流量,具体方法是从数据包捕获文件中生成协议统计信息。你将探索一些关键选项,例如用于读取文件的 -r、用于安静模式的 -q 以及用于生成协议层次结构统计信息的 -z io,phs。
本练习将指导你验证捕获文件、查看数据包摘要以及解读协议分布情况。通过这次实践,你使用 tshark 统计功能进行网络分析的技能将得到提升。
使用 -r capture.pcap 读取文件
在这一步中,你将学习如何使用 Wireshark 的命令行工具 tshark 打开并分析数据包捕获文件。-r 选项至关重要,因为它指定了要读取的数据包捕获文件。这就好比使用文本编辑器打开文档,你需要告诉程序要处理哪个文件。
首先,确保你处于正确的目录中。打开终端并运行以下命令:
cd ~/project此命令会导航到存储示例捕获文件的项目目录。这就像在访问文件之前打开正确的文件夹。
实验环境提供了一个名为
capture.pcap的示例捕获文件。验证其是否存在:ls -l capture.pcap预期输出应显示文件的详细信息,如下所示:
-rw-r--r-- 1 labex labex 12345 Jan 1 00:00 capture.pcapls -l命令会显示文件的权限、大小和修改时间。这可以在我们尝试分析文件之前确认文件存在且可访问。要使用 tshark 读取捕获文件,请执行以下命令:
tshark -r capture.pcap此命令会读取
capture.pcap文件并显示每个网络数据包的摘要信息。你会看到以下列信息:- 数据包编号(捕获顺序)
- 时间戳(捕获时间)
- 源 IP 地址和目标 IP 地址
- 使用的协议(TCP、UDP 等)
- 关于数据包的基本信息
若要获得仅包含数据包编号和协议的简洁输出,请添加
-q(安静)选项:tshark -r capture.pcap -q-q标志通过抑制一些细节来简化输出。当你只想快速查看捕获中的流量类型而不想查看所有数据包细节时,这非常有用。当你查看完输出后,按
Ctrl+C退出数据包列表。这个键盘组合会停止命令的执行并让你回到终端提示符。
请记住,这些命令只是显示捕获的数据包,我们不会以任何方式修改文件。接下来的步骤将向你展示如何更详细地分析这些流量。
使用 -z io,phs 计算层次结构统计信息
在这一步中,我们将探索如何使用 Wireshark 的命令行工具 tshark 生成协议层次结构统计信息,从而分析网络流量。-z io,phs 选项可以创建一个结构化的概览,展示在你捕获的流量中不同网络协议之间的关系。
首先,确保我们处于存储捕获文件的正确工作目录中:
cd ~/project此命令会导航到我们将处理数据包捕获文件的项目目录。
现在,我们将分析
capture.pcap文件,以查看协议分布情况。运行以下命令:tshark -r capture.pcap -z io,phs下面是各部分的作用:
-r capture.pcap用于读取我们的数据包捕获文件-z io,phs用于生成协议层次结构统计信息
该命令会输出展示网络流量中协议分层情况的结果。以下是一个示例结构:
====================================================== Protocol Hierarchy Statistics Filter: eth frames:100 bytes:10000 ip frames:90 bytes:9000 tcp frames:80 bytes:8000 http frames:70 bytes:7000 udp frames:10 bytes:1000 arp frames:10 bytes:1000 ======================================================这个树形结构揭示了:
- 以太网(eth)作为承载所有流量的基础层
- IP 数据包占以太网帧的 90%
- TCP 是 IP 中占主导地位的传输协议
- HTTP 流量占大多数 TCP 数据包
这些统计信息为每个协议提供了三个关键信息:
- 占总流量的百分比(由帧计数暗示)
- 传输的帧和字节的绝对数量
- 协议之间的封装关系
若要在不显示额外捕获信息的情况下获得更简洁的视图,请添加
-q(安静)选项:tshark -r capture.pcap -z io,phs -q-q标志会抑制额外的细节,仅显示协议层次结构统计信息。当你只需要协议细分情况时,这尤其有用。
使用 -q 抑制数据包详细信息
在这一步中,你将了解 tshark 中的 -q 选项,它有助于在分析网络流量时简化输出。当你只需要统计信息而不是详细的数据包内容时,这个选项特别有用。
首先,让我们导航到存储数据包捕获文件的工作目录:
cd ~/project这确保我们处于可以访问示例捕获文件的正确位置。
首先,让我们看看不使用
-q选项时 tshark 的正常输出是什么样的:tshark -r capture.pcap此命令会显示完整的数据包信息,包括协议头和有效负载数据。对于初学者来说,当你只对总体统计信息感兴趣时,这样的输出可能会因为细节过多而让人不知所措。
现在,让我们尝试使用
-q(安静)选项执行相同的命令:tshark -r capture.pcap -q注意,这是如何抑制详细的数据包信息,从而为你提供更简洁的输出的。
-q选项告诉 tshark 只显示摘要信息,当你不需要数据包级别的详细信息时,这样的输出更易于阅读。让我们将
-q与我们之前学过的协议层次结构统计信息结合使用:tshark -r capture.pcap -z io,phs -q这种强大的组合只会为你提供协议统计信息,而不会有任何分散注意力的数据包细节。
-z io,phs用于生成统计信息,而-q确保我们只看到统计摘要。需要观察的关键区别:
- 不使用
-q:显示包括所有协议层在内的完整数据包解析信息 - 使用
-q:提供更简洁的视图,仅显示摘要/统计信息 - 与统计选项(
-z)结合使用时,对于有针对性的分析特别有用
- 不使用
请记住,当你想关注整体情况而不是单个数据包的详细信息时,-q 选项会很有帮助。它有助于减少视觉干扰,同时仍能为你提供网络分析所需的基本信息。
在控制台查看统计信息
在这一步中,你将学习如何使用 tshark 强大的统计功能,直接在终端中分析网络流量模式。这些命令能帮助你了解流量分布、识别主要通信方,并在捕获的网络数据中发现异常模式。
首先,确保你处于存储捕获文件的正确工作目录中。这很重要,因为 tshark 需要访问该文件:
cd ~/project查看带有时间间隔的基本捕获文件统计信息。
-q标志会抑制数据包详细信息,而-z io,stat,60会创建 60 秒的汇总块:tshark -r capture.pcap -q -z io,stat,60这将显示流量在每分钟的时间段内是如何变化的。
若要查看哪些 IP 地址最活跃(端点统计信息),可以使用以下命令统计每个地址的流量:
tshark -r capture.pcap -q -z endpoints,ip它会列出所有通信的 IP 地址及其发送/接收的数据包和字节数。
若要查看显示哪些 IP 对进行通信以及通信量的会话统计信息:
tshark -r capture.pcap -q -z conv,ip这将揭示特定源 - 目的 IP 对之间的通信模式。
在一个命令中组合多个统计信息以进行全面分析:
tshark -r capture.pcap -q -z io,stat,60 -z endpoints,ip -z conv,ip在查看统计信息时,重点关注以下关键指标:
- 总数据包和字节数:总体流量
- 随时间的流量分布:发现流量高峰或异常模式
- 主要通信端点:识别高流量用户
- 通信对:了解哪些 IP 之间进行通信以及通信量的大小
总结
在本次实验中,你学习了如何使用 Wireshark 的命令行工具 tshark 进行网络流量分析。你练习了使用 -r 选项读取数据包捕获文件,并使用 -q 标志简化输出,以提高可读性。
此外,你还探索了通过 -z io,phs 选项生成协议层次结构统计信息,这能让你深入了解网络流量中协议的分布情况。这种技术使你无需检查单个数据包,就能快速评估流量组成。


