Wireshark 2.0.4 完全教程:从入门到精通
第一部分:准备工作与核心概念
什么是 Wireshark?
Wireshark 是一款功能强大的网络协议分析器(俗称“网络封包嗅探器”),它可以捕获你计算机与网络之间传输的所有数据包,并以易于理解的格式展示出来,通过分析这些数据包,你可以:

- 网络故障排查:定位网络延迟、丢包、连接失败等问题。
- 性能分析:找出网络瓶颈,优化网络性能。
- 安全审计:检测网络攻击、恶意软件通信等异常行为。
- 协议学习:直观地看到各种网络协议(如 HTTP, DNS, TCP)是如何工作的。
- 开发调试:分析应用程序的网络请求和响应,帮助开发者调试代码。
工作原理(重要!)
Wireshark 的工作基于一个核心概念:网络接口卡 的 混杂模式。
- 正常模式:网卡只会接收发给本机 MAC 地址的数据包。
- 混杂模式:网卡会接收流经它的所有数据包,无论目标是谁。
Wireshark 通过将你的网卡设置为混杂模式,来“偷看”网络中的所有流量,这通常需要管理员权限。
下载与安装
由于你指定了 2.0.4 版本,你需要从官方归档页面下载,但强烈建议你下载最新稳定版,因为新版本修复了旧版本的许多安全漏洞和 Bug,并且功能更完善。
-
下载地址:
(图片来源网络,侵删)- 最新版:https://www.wireshark.org/download.html
- 0.4 归档版(不推荐,仅作参考):https://www.wireshark.org/download/legacy/
-
安装步骤:
- Windows: 运行下载的
.exe文件。在安装过程中,务必勾选 "Install Npcap in WinPcap Compatible Mode",这能确保 Wireshark 能正确捕获所有类型的流量。 - macOS: 下载
.dmg文件,将 Wireshark 拖入 Applications 文件夹。 - Linux (Ubuntu/Debian):
sudo apt-get update && sudo apt-get install wireshark - 重要提示:安装后,首次运行 Wireshark 可能会被防火墙或杀毒软件阻止,需要放行。
- Windows: 运行下载的
第二部分:Wireshark 界面初探
启动 Wireshark 后,你会看到主界面,它主要由四个部分组成:
-
工具栏
- 捕获接口列表:显示你计算机上所有可用的网络接口(如以太网、Wi-Fi),这是你选择从哪个网络捕获流量的地方。
- 开始/停止捕获按钮:绿色的开始按钮用于开始捕获,红色的方块用于停止捕获。
- 选项按钮:点击后可以打开“捕获选项”,进行高级设置,如设置捕获过滤器、输出文件等。
-
显示过滤器工具栏
(图片来源网络,侵删)- 这是最常用的工具栏之一,在这里你可以输入表达式来筛选数据包,只显示你关心的部分,输入
http就只会显示 HTTP 协议的数据包。
- 这是最常用的工具栏之一,在这里你可以输入表达式来筛选数据包,只显示你关心的部分,输入
-
数据包列表
- 这是捕获到的所有数据包的列表,以表格形式展示。
- No.:数据包的序号。
- Time:数据包捕获到的时间戳。
- Source:源 IP 地址。
- Destination:目标 IP 地址。
- Protocol:协议类型(如 TCP, UDP, ICMP)。
- Length:数据包长度。
- Info:关于该数据包的简要信息。
-
数据包详情
- 选中数据包列表中的任意一行,这里就会显示该数据包的详细信息。
- 它以树状结构展示了数据包的各个协议层(从数据链路层到应用层),你可以点击每层前面的
>或 来展开或折叠,查看该层的具体字段和值。
第三部分:捕获你的第一个数据包
这是最激动人心的时刻!
- 选择捕获接口:在工具栏的接口列表中,选择你当前正在使用的网络连接,如果你通过网线上网,就选择以太网接口;如果是 Wi-Fi,就选择无线接口。
- 开始捕获:点击绿色的“开始捕获”按钮(或按
F5)。 - 产生流量:打开你的浏览器,访问一个网站,
www.baidu.com。 - 观察结果:回到 Wireshark,你会看到数据包列表中迅速填充了大量的数据包。
- 停止捕获:访问完成后,点击红色的“停止捕获”按钮。
你应该能看到你访问百度时产生的所有网络数据包了!
第四部分:核心技能:使用过滤器
直接查看所有数据包就像在图书馆里找一本书,没有索引会非常痛苦,过滤器就是你的索引。
捕获过滤器
在点击“开始捕获”之前,可以设置捕获过滤器,它的特点是高效,因为它在数据包被写入内存之前就进行了过滤,消耗资源极少。
- 语法:基于
tcpdump的语法。 - 常用示例:
host 192.168.1.100:只捕获与 IP 地址168.1.100相关的数据包。port 80:只捕获目标或源端口为 80 (HTTP) 的数据包。tcp:只捕获 TCP 协议的数据包。src host 192.168.1.1 and dst port 443:只捕获源 IP 为168.1.1并且目标端口为 443 (HTTPS) 的 TCP 数据包。
显示过滤器(最重要!)
这是最常用、最强大的过滤器,它是在捕获完成后,在“显示过滤器工具栏”中使用的。
- 语法:更接近自然语言,功能强大。
- 常用示例:
- 按协议过滤:
http:显示所有 HTTP 流量。dns:显示所有 DNS 流量。icmp:显示所有 ICMP 流量(如 ping 命令)。
- 按 IP 地址过滤:
ip.addr == 192.168.1.1:显示与168.1.1相关的数据包。src ip == 192.168.1.100:只显示源 IP 为168.1.100的数据包。
- 按端口号过滤:
tcp.port == 80:显示所有源或目标端口为 80 的 TCP 数据包。udp.port == 53:显示所有 DNS 流量。
- 组合过滤:
http and host www.baidu.com:显示所有与百度网站的 HTTP 通信。tcp.port == 443 or tcp.port == 80:显示所有 HTTP 或 HTTPS 流量。dns and not ip.addr == 8.8.8.8:显示所有 DNS 流量,但排除与 Google DNS 服务器的通信。
- 按协议过滤:
小技巧:在数据包列表或详情区,右键点击任何字段,选择 "Apply as Filter" -> "(Selected)",Wireshark 会自动帮你生成并应用一个显示过滤器,非常方便!
第五部分:深入分析数据包
让我们回到你捕获的百度访问数据包。
- 应用过滤器:在显示过滤器中输入
http,然后按回车,现在你只看到了 HTTP 协议的数据包。 - 查看 TCP 握手:在过滤后的列表中,找到几个连续的数据包,它们的 Info 字段可能显示为 "TCP segment of a reassembled PDU",这就是 TCP 三次握手,选中其中一个,在“数据包详情”中展开 Transmission Control Protocol,你会看到
Sequence Number,Acknowledgment Number,Flags(SYN, ACK, FIN, RST) 等关键字,这就是 TCP 建立连接的过程。 - 查看 HTTP 请求:往下翻,找到一个 Info 字段为 "GET / HTTP/1.1" 的数据包,展开 Hypertext Transfer Protocol,你就能看到完整的 HTTP 请求,包括请求方法 (
GET)、路径 ()、协议版本 (HTTP/1.1) 以及请求头(如Host: www.baidu.com,User-Agent: ...)。 - 查看 HTTP 响应:在请求之后,你会看到一个 Info 字段为 "HTTP/1.1 200 OK" 的数据包,这就是服务器的响应,展开它,你可以看到响应状态码 (
200 OK) 和响应头(如Content-Type: text/html),再往下展开 Hypertext Transfer Protocol,还能看到网页的 HTML 内容(在 "Hypertext Transfer Protocol" 的 "Text-based" 部分里)。
第六部分:高级功能
追踪流
这是分析一个完整会话(如一次网页加载、一次文件下载)的利器。
- 操作:在数据包列表中,选中属于同一个会话的任意一个数据包(比如一个 HTTP 请求),右键点击,选择 Follow -> TCP Stream (如果是 UDP 则是 UDP)。
- 效果:Wireshark 会弹出一个新窗口,将这个 TCP/UDP 会话的所有数据包按时间顺序重新组合成一个完整的数据流,对于 HTTP,它会清晰地展示客户端的请求和服务器的响应,并且用不同的颜色区分,这对于调试应用层问题极其有用。
统计
Wireshark 提供了强大的统计分析工具,让你从宏观上了解网络流量。
- 访问方式:菜单栏
Statistics。 - 常用统计:
- Protocol Hierarchy:统计各种协议所占的百分比和数量,快速了解网络流量的构成。
- Endpoints:显示网络中所有通信的端点(IP 地址或端口),以及它们之间的通信量,可以帮你找出最活跃的主机。
- Conversations:显示主机之间的对话(IP 对),以及它们的通信量、数据包数量等。
专家系统
- 访问方式:菜单栏
Analyze -> Expert Info。 - 效果:它会自动分析所有捕获的数据包,并标记出其中可能存在的问题,如:
- Errors:错误(如校验和错误)。
- Warnings:警告(如 TCP 重传)。
- Chat:聊天信息(如 FTP, Telnet 命令)。
- Sequence:序列问题。
- 这对于快速定位网络故障非常有帮助。
第七部分:重要提示与最佳实践
- 法律和道德:绝对不要在未经授权的情况下捕获和分析他人的网络流量! 这可能违反法律和公司规定,Wireshark 应仅用于你拥有或被授权管理的网络。
- 性能考虑:捕获高流量网络时,Wireshark 可能会消耗大量 CPU 和内存。
- 使用捕获过滤器来减少捕获量。
- 不要长时间无差别地捕获。
- 可以将捕获结果保存到文件(
File -> Save),之后再进行分析。
- 保存和导出:你可以将捕获的数据包保存为
.pcap或.pcapng格式,以便日后分析或与他人分享,也可以选择导出特定对象,如文件对象(File -> Export Objects -> ...)。 - 更新协议解析:如果遇到无法识别的协议,可以尝试更新 Wireshark 的解析文件(在 macOS 和 Linux 上较常见)。
这份教程为你提供了使用 Wireshark 2.0.4 的核心知识和技能,从安装、捕获、过滤到深入分析,你已经掌握了网络分析的基本功。
熟能生巧,最好的学习方式就是不断地去实践,尝试去分析你日常使用的各种应用(微信、QQ、邮件客户端)的网络行为,或者故意制造一些网络故障(如拔掉网线),然后用 Wireshark 去观察会发生什么。
Wireshark 是一个强大的工具,掌握它,你就拥有了一双能透视网络世界的“X光眼”,祝你学习愉快!
