3、抓包工具入门:Wireshark的安装与界面介绍、设置抓包过滤器、保存与导出抓包文件
说到网络性能分析,Wireshark 绝对是我工具箱里最趁手的家伙。说实话,我入行头两年一直觉得这工具太复杂,密密麻麻的十六进制看得人头晕。直到有一次线上故障,一个诡异的超时问题折腾了三天,最后靠 Wireshark 抓包五分钟就定位到了——嗯,从那以后我就再也不敢小看它了。
3.1 安装与第一印象
Wireshark 的安装其实没什么特别的,去官网下载对应系统的版本就行。我个人习惯装 LTS 版本,稳定,少踩坑。Windows 下安装时记得勾上「WinPcap」或「Npcap」,这是底层抓包驱动,不装的话啥也抓不到。
装好之后打开,你会看到这样一个界面:
- 最上面是菜单栏和工具栏,常用的就那几个按钮
- 中间是网卡列表,显示你电脑上所有能抓包的网络接口
- 下面有个「Capture Filter」输入框,这个我们待会细说
你想想看,第一次看到这个界面是不是有点懵?别急,我刚开始也一样。其实核心就三个区域:抓包入口、过滤入口、数据展示区。
3.2 设置抓包过滤器
过滤器是 Wireshark 的灵魂。没有它,你抓到的就是一堆垃圾数据。我见过太多新手直接点「Start」,然后被几万条数据包淹没了。
过滤器分两种:抓包过滤器和显示过滤器。这里我们先说抓包过滤器,它是在抓包之前就设定好的,只抓你关心的数据,不抓的压根不进来。
3.2.1 常用抓包过滤器写法
| 需求 | 过滤器表达式 | 说明 |
|---|---|---|
| 只抓某个 IP | host 192.168.1.1 |
抓来源或目标为 192.168.1.1 的包 |
| 只抓某个端口 | port 80 |
抓 HTTP 流量 |
| 只抓某个网段 | net 10.0.0.0/8 |
抓内网流量 |
| 排除某个 IP | not host 192.168.1.100 |
排除监控服务器自身流量 |
| 组合条件 | host 192.168.1.1 and port 443 |
抓特定 IP 的 HTTPS 流量 |
host 目标IP and port 8080,这样抓到的包干净利落,一眼就能看到请求和响应的时序。
3.2.2 在界面上设置过滤器
在 Wireshark 主界面的网卡列表上方,有个「Capture Filter」输入框。点旁边的「Bookmark」按钮,可以保存常用的过滤器,下次直接选就行。
举个例子:假设你要分析公司内部 API 网关的性能,网关 IP 是 10.0.0.50,端口 443。你可以在过滤器里写:
host 10.0.0.50 and port 443
然后点「Start」,Wireshark 就只抓这个网关的 HTTPS 流量了。干净利落。
3.3 界面介绍:三个核心面板
抓包开始后,Wireshark 界面会分成三个主要区域。我习惯叫它们「上中下」三块:
- 上面板(包列表):显示每个数据包的编号、时间、源地址、目标地址、协议、长度、信息摘要。这是你最常看的地方。
- 中间板(包详情):选中某个包后,这里会分层展示协议细节。比如 Ethernet 帧头、IP 头、TCP 头、应用层数据。
- 下面板(原始数据):十六进制和 ASCII 码对照显示。说实话,日常分析很少看这里,除非要抠字节级别的细节。
你想想看,这三个面板其实对应了三种分析层次:
- 上面板看「发生了什么」
- 中间板看「怎么发生的」
- 下面板看「具体是什么」
我个人习惯先看上面板,找到可疑的包(比如 RST 包、重传包),然后点开中间板看 TCP 头的 Flags 和 Sequence Number,基本就能定位问题。
3.4 保存与导出抓包文件
抓完包之后,你得保存下来。Wireshark 默认的保存格式是 .pcapng,这是新一代的抓包格式,支持多接口、注释等特性。老一点的工具可能只支持 .pcap,所以导出时要注意兼容性。
3.4.1 保存当前抓包
点菜单栏的 File → Save,或者按 Ctrl+S。你会看到几个选项:
- Save:保存所有抓到的包
- Save As:另存为,可以选择格式
- Export Specified Packets:只导出你选中的包,这个很实用
3.4.2 导出格式选择
| 格式 | 适用场景 | 备注 |
|---|---|---|
| .pcapng | 通用保存,保留所有元数据 | 推荐首选 |
| .pcap | 兼容老版本 Wireshark 或 tcpdump | 部分信息可能丢失 |
| .csv | 导出包列表到 Excel 做统计 | 只含摘要信息 |
| .txt | 导出为文本,方便分享 | 格式较乱,不推荐 |
3.4.3 导出时的小技巧
有时候你只想导出某个 TCP 流的所有包。怎么做?
- 在包列表里右键点击某个包
- 选择 Follow → TCP Stream
- Wireshark 会自动过滤出这个 TCP 连接的所有包
- 然后 File → Export Specified Packets,保存即可
这个操作我几乎每天都会用。分析接口性能时,一个请求对应一个 TCP 流,导出后单独分析,效率高得多。
- 抓包前必设过滤器,别偷懒
- 学会用「Export Specified Packets」导出关键数据
- 保存为 .pcapng 格式,兼容性最好
- Follow TCP Stream 是分析接口性能的神器
好了,Wireshark 的入门就这些。说白了,你只要学会设过滤器、看三个面板、保存导出,就已经能解决 80% 的日常问题了。下一章我们会深入分析 TCP 三次握手和延迟问题,到时候 Wireshark 才是真正大显身手的时候。