介绍
在本次实验中,你将学习如何从强大的网络协议分析工具 Wireshark 中导出数据包。导出数据包对于网络分析、故障排除和安全调查至关重要。它还能让你与同事共享捕获的数据。
在整个实验过程中,你将捕获网络流量,应用过滤器以针对特定的通信类型,并以各种格式导出捕获的数据,以便进行进一步分析。
了解并安装 Wireshark
Wireshark 是世界上使用最广泛的网络协议分析器之一。在计算机网络中,通信通过称为数据包的小单元进行。将数据包想象成承载网络数据的微小信封。Wireshark 使你能够捕获这些数据包并进行分析,从而让你能够非常详细地了解网络中发生的情况。这就像拥有一个网络显微镜,帮助你理解数据是如何流动的以及是否存在任何问题。
启动 Wireshark
首先,我们需要打开 Wireshark。为此,我们将从打开一个终端窗口开始。终端是一个基于文本的界面,你可以在其中输入命令与你的计算机进行交互。你可以通过点击任务栏中的终端图标来打开一个终端窗口。任务栏通常位于屏幕的底部或侧面,其中包含各种应用程序的图标。
终端打开后,我们将使用一个命令来启动 Wireshark。在终端中,键入以下命令,然后按 Enter:
wireshark
当你运行此命令时,Wireshark 应用程序将会打开。你将看到一个可用网络接口的列表。网络接口是你的计算机用来与其他网络设备(如 Wi-Fi 或以太网)通信的连接。

Wireshark 打开后,花点时间浏览一下界面。了解布局将使你以后更容易使用该工具。
- 顶部区域显示可用的网络接口。在这里,你将选择要让 Wireshark 从哪个网络连接捕获数据包。
- 中间区域显示最近打开的文件。如果你以前使用过 Wireshark 并打开了一些数据包捕获文件,它们将在此处列出以便于访问。
- 底部区域包含有用的链接和功能。这些可以帮助你完成各种任务,例如获取帮助或访问其他工具。
理解 Wireshark 界面
在我们开始捕获数据包之前,了解 Wireshark 界面的每个部分的作用至关重要。这些知识将帮助你有效地导航该工具并找到所需的信息。
- **菜单栏 (Menu Bar)**:与其他应用程序一样,菜单栏包含典型的应用程序菜单,如文件 (File)、编辑 (Edit)、视图 (View) 等。你可以使用这些菜单执行常见操作,例如打开新文件、保存捕获或更改视图设置。
- **主工具栏 (Main Toolbar)**:主工具栏包含常用功能的快捷方式。这些快捷方式可以更快地执行你经常使用的任务,例如开始或停止数据包捕获。
- **过滤器栏 (Filter Bar)**:过滤器栏非常有用。它允许你对捕获的数据包应用显示过滤器 (display filters)。这意味着你可以根据特定条件(如源或目标 IP 地址)来缩小你看到的数据包范围。
- **数据包列表窗格 (Packet List Pane)**:此窗格在单独的行上显示每个捕获的数据包。它为你提供了捕获的所有数据包的快速概览。
- **数据包详细信息窗格 (Packet Details Pane)**:当你在数据包列表窗格中选择一个数据包时,数据包详细信息窗格会显示该数据包的详细信息。这包括使用的协议、源和目标地址以及其他相关数据。
- **数据包字节窗格 (Packet Bytes Pane)**:此窗格显示所选数据包的原始字节。如果你想查看数据包中实际传输的数据,这将非常有用。
现在你已经了解了 Wireshark 界面的基本知识,可以开始捕获一些网络流量了。
捕获网络流量
在这一步中,你将学习如何捕获网络数据包,这是 Wireshark 的基本功能。数据包捕获就像是侦探的工具,能让你看到系统上发生的所有网络通信。这很重要,因为它能让你清楚地了解有哪些数据流入和流出你的设备,这对于解决网络问题或分析潜在的安全威胁等各种目的都至关重要。
开始数据包捕获
在 Wireshark 主界面中,你会注意到一个可用网络接口的列表。这些接口就像你的设备连接到网络的不同“门”。每个接口代表你的设备发送和接收数据的不同方式,例如 Wi-Fi、以太网或虚拟网络连接。找到这个列表,选择合适的接口来捕获数据包。
通过点击选择
eth1接口。这是你的主要以太网连接。以太网是一种使用物理电缆将设备连接到本地网络的常见方式。选择eth1意味着你选择捕获通过这个特定以太网连接的网络流量。
点击工具栏中的蓝色鲨鱼鳍图标开始捕获数据包。这个图标是 Wireshark 中开始数据包捕获的按钮。或者,你也可以双击
eth1接口。一旦开始捕获,Wireshark 就会开始收集通过所选接口的所有网络数据包。现在你应该能看到数据包被实时捕获并显示出来。每行代表一个单独的数据包。数据包的详细信息包括:
- 数据包编号:这是每个数据包的唯一标识符,有助于你跟踪数据包的捕获顺序。
- 自捕获开始的时间:它显示从你开始捕获数据包到捕获这个特定数据包所经过的时间。
- 源地址:这是发送数据包的设备的地址。它能帮助你识别数据的来源。
- 目标地址:这是数据包要发送到的设备的地址。它显示数据的去向。
- 协议:协议表示通信所使用的规则和标准。例如,TCP、UDP 或 HTTP 是常见的协议。
- 数据包长度:它告诉你数据包中包含了多少数据。
- 关于数据包的信息:这提供了关于数据包内容和用途的更详细信息。
生成网络流量
为了看到更有趣的流量,让我们通过访问一个网站来生成一些 HTTP 流量。HTTP(超文本传输协议)是用于在互联网上传输网页的协议。通过生成 HTTP 流量,你将能够看到访问网站时实际发生的数据交换。
在保持 Wireshark 运行的同时,按下
Ctrl+Alt+T打开一个新的终端。终端是一个命令行界面,你可以在其中输入命令与系统进行交互。使用
curl命令请求一个网页:curl www.google.comcurl命令是一个用于从服务器传输数据或向服务器传输数据的工具。在这种情况下,你用它来请求 Google 的网页。你应该会在终端输出中看到 Google 主页的 HTML 内容。这表明请求成功,你已经从 Google 服务器接收到了数据。返回 Wireshark,观察新捕获的数据包。你应该会看到与你对 Google 的请求相关的 DNS、TCP 和 HTTP 数据包。DNS(域名系统)用于将像
www.google.com这样的域名转换为 IP 地址。TCP(传输控制协议)负责在你的设备和服务器之间建立可靠的连接。HTTP 用于传输实际的网页数据。
停止捕获并保存数据
要停止数据包捕获,点击工具栏中的红色方形停止按钮。这将停止收集新数据包的过程。
现在你已经捕获了一些数据包,将它们保存到一个文件中:
- 点击菜单栏中的
File。菜单栏包含各种管理 Wireshark 会话的选项,例如打开、保存和导出文件。 - 选择
Save As。这个选项允许你选择要保存捕获数据包的文件的位置和名称。 - 导航到
/home/labex/project目录。这是你将存储捕获的数据包数据的位置。 - 输入
capture.pcapng作为文件名。.pcapng扩展名表示该文件采用 PCAPNG 格式,这是一种存储网络数据包数据的标准格式。 - 点击
Save。

- 点击菜单栏中的
文件现在已保存。PCAPNG 格式会保留所有捕获的数据,并且是 Wireshark 的默认格式。这意味着关于捕获数据包的所有详细信息,如源地址和目标地址、协议和数据包内容,都存储在文件中。
你已经成功捕获了网络流量并将其保存到一个文件中。在下一步中,你将学习如何过滤这些数据包,以专注于特定类型的流量。
过滤数据包
在现实世界的网络场景中,当你捕获网络流量时,捕获文件可能会非常大,包含数千甚至数百万个数据包。一次性分析所有这些数据包会让人应接不暇且效率低下。这时,过滤就派上用场了。过滤是一项至关重要的技术,它能让你专注于特定类型的流量。通过缩小你所查看的数据包范围,你可以让分析过程更易于管理,并更快地找到所需信息。
理解显示过滤器
Wireshark 配备了强大的过滤语言。这种语言使你能够仅显示符合特定条件的数据包。以下是一些常见的使用显示过滤器的方法:
- 按协议过滤:你可以显示特定协议的数据包,如 HTTP、DNS 或 TCP。当你对特定类型的网络通信感兴趣时,这很有用。例如,如果你正在调查 Web 流量,你可能想专注于 HTTP 数据包。
- 按 IP 地址过滤:你可以显示从特定 IP 地址发送或发送到特定 IP 地址的数据包。这有助于你跟踪网络中特定设备之间的通信。
- 按内容过滤:你可以显示包含特定内容的数据包。当你在数据包中寻找特定的关键字或数据时,这很方便。
- 组合条件:你可以使用逻辑运算符组合多个条件。这使你能够创建更复杂、更精确的过滤器。
应用基本过滤器
首先,在 Wireshark 中打开你的捕获文件。文件打开后,查看 Wireshark 窗口的顶部。你会看到一个蓝色背景的文本框。这就是过滤器框。你将在过滤器框中输入过滤条件。

假设你想过滤出 HTTP 流量。HTTP 是用于 Web 通信的协议。为此,只需在过滤器框中输入以下内容:
http输入过滤器后,你有两种方式来应用它。你可以按下键盘上的回车键,或者点击过滤器框旁边的右箭头按钮。完成此操作后,Wireshark 将开始对数据包列表应用过滤器。
应用过滤器后,你现在应该在数据包列表中只看到 HTTP 数据包。但是,如果你没有看到任何数据包,可能是你的捕获文件中不包含任何 HTTP 流量。在这种情况下,你可以尝试使用过滤器
tcp。TCP 是一种基本的传输层协议,使用此过滤器将显示捕获文件中的所有 TCP 数据包。如果你想清除过滤器并再次查看所有数据包,有两种方法可以实现。你可以点击过滤器框右侧的“X”按钮,或者删除框中的过滤文本,然后按下回车键。
使用高级过滤器
让我们探索更具体的过滤器,以进一步优化你的数据包分析。
假设你只对 HTTP GET 请求感兴趣。GET 请求是一种常见的 HTTP 请求类型,用于从服务器检索数据。要仅显示这些请求,请在过滤器框中输入以下过滤器:
http.request.method == "GET"按下回车键以应用过滤器。然后,Wireshark 将遍历数据包列表并仅显示 HTTP GET 请求。

应用过滤器后,如果你没有看到任何数据包,这意味着你的捕获文件可能不包含任何 HTTP GET 请求。
现在,让我们尝试另一个过滤器。如果你想查看所有发往端口 80(这是 HTTP 的标准端口)的 TCP 数据包,请在过滤器框中输入以下过滤器:
tcp.dstport == 80按下回车键以应用此过滤器。
应用过滤器后,你现在应该在数据包列表中看到所有发往端口 80 的 TCP 数据包。
组合过滤器
你可以使用逻辑运算符组合多个过滤器,使你的过滤器更强大。
假设你想查看 HTTP 或 DNS 数据包。DNS 是用于将域名转换为 IP 地址的协议。要为此创建一个过滤器,请在过滤器框中输入以下内容:
http or dns按下回车键以应用过滤器。
应用过滤器后,你现在应该在数据包列表中看到 HTTP 和 DNS 数据包。
过滤是 Wireshark 中的一项强大功能,它使你能够专注于与你的分析最相关的数据包。随着你对 Wireshark 的使用经验不断增加,你将能够创建更复杂、更符合你特定需求的过滤器。
导出数据包
在你捕获并过滤数据包后,通常需要将它们导出。导出数据包可以进行更深入的分析、创建文档,或者与他人共享数据。Wireshark 提供了多种导出格式,每种格式都适用于不同的使用场景。
了解导出格式
Wireshark 支持多种导出格式。以下是对每种格式的简要说明:
- PCAP/PCAPNG:这是数据包捕获文件的原生格式。它能精确保留所有捕获的数据,非常适合存储和重复使用数据包数据。
- CSV(逗号分隔值):这种格式非常适合将数据包数据导入电子表格或数据库。它以表格形式组织数据,便于使用常见的数据分析工具进行分析。
- TXT(纯文本):一种人类可读的格式。它以简单的文本形式呈现数据包信息,适合用于创建文档,任何人都能理解。
- XML:一种结构化格式。它可以被脚本或其他工具轻松处理,因此适用于自动化分析。
- PSML/PDML:这些是 Wireshark 特有的格式。PSML 用于数据包摘要,而 PDML 提供详细的数据包信息。
导出特定数据包
让我们从导出捕获的一些数据包开始。
首先,你需要清除已应用的所有过滤器。为此,点击过滤器框中的“X”按钮。清除过滤器后,所有捕获的数据包都会显示出来。这一步很重要,因为它能让你全面查看所有捕获的数据包,从而选择要导出的数据包。

接下来,选择你要导出的数据包。你可以先点击第一个数据包,然后按住 Shift 键并点击另一个数据包,这样会选中这两个数据包之间的所有数据包。如果你想选择所有数据包,只需按下
Ctrl+A。选中数据包后,点击菜单栏中的
File,然后选择Export Specified Packets...。此选项允许你以特定格式保存所选数据包。在弹出的导出对话框中:
- 导航到
/home/labex/project目录,这是你保存导出文件的位置。 - 查看“Save as type”下拉菜单,如果
Wireshark/tcpdump/... - pcap未被选中,请选择它。PCAP 格式是一种广泛使用的数据包数据格式。 - 输入
exported.pcap作为文件名,这将为你的导出文件命名。 - 如果你没有选择所有数据包,请确保选中“Selected packets only”,这样可以确保只导出你选择的数据包。
- 最后,点击
Save。

- 导航到
你现在已成功将所选数据包导出到一个 PCAP 文件中。这个文件可以在任何支持 PCAP 格式的工具中打开,而不仅仅是 Wireshark。这让你可以灵活地使用不同的工具进行进一步分析。
以 CSV 格式导出
现在,让我们以 CSV 格式导出相同的数据。CSV 格式在电子表格应用程序中进行分析非常有用。
确保你的数据包仍然处于选中状态。如果没有,请按下
Ctrl+A再次选择所有数据包。然后,点击菜单栏中的File并选择Export Packet Dissections...。此选项允许你以不同格式导出数据包数据。点击
As CSV...按钮,这将把导出格式设置为 CSV。在导出对话框中:
- 导航到
/home/labex/project目录保存文件。 - 输入
exported.csv作为文件名。 - 点击
Save。

- 导航到
你现在已将数据包数据导出到一个 CSV 文件中。要查看此文件的内容,你可以在终端中使用以下命令:
head -n 10 /home/labex/project/exported.csv此命令将显示 CSV 文件的前 10 行。它会显示列标题和一些数据包数据,让你快速了解文件内容。
导出数据包字节
有时,你可能需要导出数据包的实际原始字节。以下是具体操作方法:
在数据包列表中选择单个数据包,这是你要导出其原始字节的数据包。
右键单击该数据包并选择
Export Packet Bytes...。此选项允许你保存数据包的原始数据。在导出对话框中:
- 导航到
/home/labex/project目录。 - 输入
packet_bytes.bin作为文件名。 - 点击
Save。
- 导航到
你现在已导出所选数据包的原始字节。这对于详细分析或提取嵌入在数据包中的文件非常有用。
这些导出选项让你在分析和共享数据包捕获数据方面拥有很大的灵活性。你选择的格式取决于你的具体需求以及你计划用于进一步分析的工具。
总结
在本次实验中,你学习了如何使用强大的网络协议分析工具 Wireshark 来捕获、过滤和导出网络数据包。首先,你熟悉了 Wireshark 的界面,并捕获了实时网络流量。接着,你学会了应用过滤器来针对特定类型的流量,如 HTTP 请求或 TCP 通信。最后,你探索了以 PCAP 和 CSV 等格式导出数据包的不同方法,以便进行进一步分析或共享。
这些技能对于网络管理员、安全分析师和 IT 专业人员来说至关重要。它们能让你高效地解决网络问题、调查安全事件,并了解网络行为。掌握 Wireshark 的数据包导出功能,为网络安全和网络分析提供了一个有价值的工具,为在现实世界的 IT 和安全岗位中应用更高级的技术奠定了基础。


