简介
在本实验中,你将学习使用行业标准的网络协议分析器 Wireshark 进行网络分析的技术。这一强大的工具使你能够从数据包层面检查网络流量,为故障排查和安全分析提供有价值的见解。
你将获得捕获、过滤和解读网络数据包的实践技能。通过动手练习,你将了解不同协议是如何通信的,并学会识别潜在的网络问题。
安装 Wireshark
在这一步中,我们将在 Ubuntu 系统上安装 Wireshark。Wireshark 是一款网络协议分析器,允许你捕获并以交互方式浏览网络流量。它包含在 Ubuntu 的默认软件仓库中,因此对于初学者来说,安装过程非常简单。
- 首先,打开终端。在桌面上找到并打开 Xfce Terminal。我们将在这个终端中执行所有安装和配置 Wireshark 的命令。

注意:免费用户无法连接互联网,因此 Wireshark 已预装在实验环境中。你可以直接跳转到列表中的第 5 项(检查 Wireshark 是否已安装)。升级为专业版用户即可练习自行安装 Wireshark。
仅限专业版用户
- 在安装任何软件之前,最好先更新软件包列表。这能确保我们安装的是 Wireshark 的最新可用版本。运行以下命令:
sudo apt update
- 现在我们来安装 Wireshark。
-y参数会自动对安装过程中的提示回答“yes”,从而使过程更加顺畅:
sudo apt install wireshark -y
- 在安装过程中,你会遇到一个关于是否允许非超级用户捕获数据包的重要安全提示。这是一个关键的配置选项——选择「Yes」意味着你以后运行 Wireshark 时无需 root 权限,这对于日常使用来说更安全。使用方向键选择「Yes」并按回车键。

- 安装完成后,让我们验证 Wireshark 是否安装正确。版本检查可以确认安装成功并显示你正在运行的版本:
wireshark --version
- 为了捕获网络流量,我们需要配置适当的权限。这包括将你的用户添加到
wireshark组,并为 Dumpcap(Wireshark 的数据包捕获工具)设置正确的权限:
首先,检查 wireshark 组是否存在(它应该在安装过程中自动创建):
getent group wireshark
如果由于某种原因该组不存在,请使用以下命令创建它:
sudo groupadd wireshark
以下命令将配置 Dumpcap 以提升权限运行,同时保持 Wireshark 本身以普通用户身份运行,这是一种安全最佳实践:
sudo chgrp wireshark /usr/bin/dumpcap
sudo chmod 4755 /usr/bin/dumpcap
sudo gpasswd -a $USER wireshark
运行这些命令后,你需要注销并重新登录,以便组更改生效。现在你已经成功安装并配置了 Wireshark,准备好开始分析网络流量了!
捕获网络流量
既然已经安装了 Wireshark,让我们来捕获一些网络流量。你可以把它想象成设置了一个麦克风,用来记录网络上发生的所有对话。每当你的计算机在线发送或接收数据时,数据都会被分解成称为“数据包”的小块。Wireshark 让我们能够查看并分析这些数据包。
在终端中输入
wireshark并按回车键,打开 Wireshark。这将启动我们将进行数据包捕获的图形界面。当 Wireshark 打开时,你会看到一个网络接口列表(即你的计算机用于与网络通信的连接)。寻找名为 "eth0" 或 "eth1" 的接口——这些通常是有线以太网连接。如果你使用的是 WiFi,可能会看到 "wlan0"。

- 双击活动的接口(显示数据包计数不断增加的那个)以开始捕获。主窗口现在将显示实时的数据包流——每一行代表当前正在发生的不同网络对话。

让我们创建一些简单的网络活动来捕获。打开一个新的终端窗口并输入:
curl http://example.com此命令会获取 example.com 的主页,从而生成 Wireshark 可以捕获的 HTTP 数据包(网页流量)。运行此命令后,你会立即在 Wireshark 中看到新的数据包出现。
在看到几个数据包(大约 5-10 秒就足够了)后,点击顶部的红色「停止」按钮。这会冻结捕获,以便我们检查数据包,而不会有新的数据包不断涌入。
恭喜!你已经捕获了第一段网络流量。每一行代表一个数据包,包含源/目标地址、协议类型和时间等详细信息。三个主要面板分别显示:数据包列表(摘要)、数据包详细信息(技术分解)和原始数据包数据(十六进制视图)。
要保存你的工作,请转到 File > Save,并将文件命名为
myfirstcapture.pcapng,保存在/home/labex目录下。.pcapng格式保留了所有数据包的详细信息,以便日后分析。

这个基本的捕获过程是网络分析的基础。在接下来的步骤中,我们将学习如何过滤和解读这些数据包,以了解网络行为并排查问题。
分析数据包数据
既然我们已经捕获了一些网络流量,现在让我们一步步检查它。你可以把它想象成阅读一段数字对话——我们将学习如何解读计算机用来通信的“语言”。
打开捕获文件:
启动 Wireshark 并通过 File > Open 打开你保存的捕获文件(myfirstcapture.pcapng),或者直接双击该文件。该文件包含了我们之前记录的所有网络流量,就像一段通话录音。了解数据包列表:
顶部面板按时间顺序显示所有捕获的数据包。每一行代表一条网络消息,显示:- 发送方(源 IP)
- 接收方(目标 IP)
- 通信类型(协议)
- 简要摘要(Info)
检查数据包详细信息:
当你点击任何数据包时,中间面板会通过协议层揭示其内部结构:- Frame:物理网络详细信息
- Ethernet:硬件寻址
- IP:互联网路由信息
- TCP/UDP:传输详细信息
- 应用数据(如 HTTP)
过滤 HTTP 流量:
在过滤器栏(顶部)中,输入http并按回车键。这会隔离网页流量,就像在通话记录中只搜索短信一样。HTTP 是 Web 浏览器与服务器通信所使用的协议。

- 识别 Web 请求:
寻找 Info 列中带有 "GET" 的数据包。这些代表你的浏览器正在请求网页。点击其中一个以查看:- 请求的确切 URL
- 联系了哪个网站
- 关于请求的技术细节

分析 HTTP 头部:
展开 "Hypertext Transfer Protocol" 部分以查看:- 请求方法 (GET/POST)
- 请求的资源 (/index.html)
- 浏览器信息
- Cookie 和其他元数据
查找服务器响应:
搜索 "HTTP/1.1 200 OK" 数据包。这些显示了成功的网页交付。注意:- 响应代码 (200=成功, 404=未找到)
- 服务器类型 (Apache/Nginx)
- 内容类型 (HTML, 图像等)

- 查看网页内容:
在成功的响应中,检查 "Line-based text data" 部分以查看实际的网页内容。这显示了服务器发送给浏览器的 HTML 代码。
这种分析揭示了网络中发生的隐藏对话。通过理解这些模式,你可以排查问题、识别可疑活动并理解应用程序是如何通信的。
使用过滤器
Wireshark 的真正威力在于它能够快速过滤和分析大量的网络数据。在这一步中,我们将学习如何使用过滤器来专注于特定类型的流量。你可以把过滤器想象成搜索词,帮助你在海量网络数据包中找到你想要的内容。
在 Wireshark 中打开捕获文件,让我们从使用一些简单的显示过滤器开始。过滤器栏位于主工具栏的正下方:
- 要仅显示 TCP 流量(最常见的传输协议),在过滤器栏中输入
tcp并按回车键。这将隐藏所有非 TCP 数据包。 - 要显示往返于特定 IP 地址的流量,输入
ip.addr == x.x.x.x,将x.x.x.x替换为你捕获文件中的地址或通过 DNS 查询得到的地址。例如,要获取 example.com 的当前地址,请在终端中运行dig example.com +short并使用它打印出的 IP 之一。93.184.215.14在本实验文本中仅作为占位符;真实地址会随时间变化。双等号 (==) 表示“完全匹配”。

- 要显示所有 HTTP GET 请求(最常见的 Web 请求类型),输入
http.request.method == "GET"。这有助于你查看正在请求哪些网页。
- 要仅显示 TCP 流量(最常见的传输协议),在过滤器栏中输入
现在让我们通过组合条件来创建一个更复杂的过滤器。我们将查找专门发往 example.com 的所有 HTTP GET 请求:
- 在过滤器栏中输入:
http.request.method == "GET" && http.host contains "example.com" &&表示“与 (AND)”,因此两个条件都必须为真contains运算符允许我们匹配任何包含 "example.com" 的域名

- 此过滤器显示所有发往包含 "example.com" 的域名的 GET 请求,这对于监控特定网站的流量非常有用。
- 在过滤器栏中输入:
由于你可能会重复使用某些过滤器,Wireshark 允许你保存它们。让我们保存刚才的 HTTP GET 过滤器:
- 点击过滤器栏旁边的加号 ("+")。这将打开过滤器管理窗口。
- 将过滤器命名为 "HTTP GETs" 并点击 Save。选择一个你容易记住的描述性名称。
- 现在,你可以随时通过从「已保存过滤器」列表(过滤器栏旁边的书签图标)中选择它来快速应用该过滤器。
最后,让我们导出一些发现的结果,以便进行文档记录或进一步分析:
- 转到 Statistics > HTTP > Requests 以查看所有 HTTP 请求的摘要
- 点击 "Save as" 将列表导出到文件
- 选择
/home/labex作为位置,并将文件保存为http_requests.txt

以这种方式使用过滤器,可以让你快速筛选海量网络数据并专注于重要内容。这就像拥有一个超级放大镜,可以瞬间向你展示特定类型的网络流量。掌握过滤器将在你排查网络问题或分析安全事件时节省大量时间。
总结
在本实验中,你学习了使用 Wireshark 进行网络分析的基础知识。你掌握了包括安装 Wireshark、捕获网络流量、分析数据包数据以及应用过滤器来隔离特定流量类型在内的核心技能。
这些核心能力为网络安全和网络管理打下了坚实的基础。Wireshark 是排查网络故障、监控流量模式和识别潜在安全威胁的强大工具。请继续练习,以进一步提升你的网络分析专业水平。


