抓包基础与界面介绍
说实话,我第一次打开 Wireshark 的时候,看着满屏的网卡列表和跳动的数据包,脑子是懵的。但别担心,这东西就跟开车一样——先认识仪表盘,再踩油门。今天我就带你把这套界面摸透,顺便聊聊抓包的那些坑。
本章核心目标:学会启动/停止抓包、理解两种过滤器的区别、掌握保存和导出 pcap 文件。这些都是后续排查问题的基本功。
主界面布局:四个区域,各司其职
Wireshark 的主界面其实就四个大块。我习惯把它们叫做「四宫格」:
- 顶部菜单栏 + 工具栏:抓包开始/停止、打开文件、保存等操作都在这里。快捷键记一下:Ctrl+E 开始/停止,Ctrl+K 打开捕获选项。
- 过滤器栏:分两行。上面是显示过滤器,下面是捕获过滤器。别搞混了,后面我会细说。
- 数据包列表区:抓到的包一行行列出来。默认显示编号、时间、源地址、目标地址、协议、长度、信息摘要。
- 数据包详情区 + 原始字节区:选中一个包,下面会展开协议树。再往下是十六进制和 ASCII 的原始数据。
嗯,这里要注意:数据包列表区的列是可以自定义的。我个人习惯把「Delta Time」和「TCP 流序号」加进去,排查重传和乱序时特别有用。
开始与停止抓包
抓包其实就三步:选网卡 → 点开始 → 等数据。但选网卡这一步,我见过太多人翻车。
- 点击工具栏的蓝色鲨鱼鳍图标,或者按 Ctrl+K 打开捕获选项。
- 在「Interface」列表里勾选你要监听的网卡。如果你不确定用哪个,选那个流量最大的——通常是你的有线或 Wi-Fi 网卡。
- 点击「Start」开始抓包。红色按钮亮起,数据包开始滚动。
- 按 Ctrl+E 停止抓包。或者点工具栏的红色停止按钮。
我曾经踩过的坑:在笔记本上同时开着 Wi-Fi 和有线网卡,结果抓了半天发现抓的是 Wi-Fi 的流量,而我要分析的是有线网卡上的业务。所以抓包前一定确认网卡名称。Windows 下可以用 ipconfig 核对 IP 地址,Linux 下用 ip addr。
抓包过滤器 vs 显示过滤器
这是新手最容易混淆的地方。我直接给你一个对比表,看完就明白。
| 对比项 | 抓包过滤器 | 显示过滤器 |
|---|---|---|
| 作用时机 | 抓包之前设置,决定哪些包被捕获 | 抓包之后设置,决定哪些包被显示 |
| 语法 | BPF(Berkeley Packet Filter)语法 | Wireshark 自己的显示过滤语法 |
| 性能影响 | 减少捕获的数据量,节省磁盘和内存 | 只影响显示,不减少已捕获的数据 |
| 典型示例 | host 192.168.1.1 |
ip.addr == 192.168.1.1 |
| 适用场景 | 高流量环境,只抓特定主机的包 | 已抓完包,需要从大量数据中筛选 |
说白了,抓包过滤器是「要不要这个包」,显示过滤器是「要不要看这个包」。我个人的习惯是:生产环境抓包时,先用抓包过滤器缩小范围,避免抓一堆没用的数据;分析阶段再用显示过滤器反复筛选。
小技巧:显示过滤器支持自动补全。你输入 tcp. 之后按 Tab,Wireshark 会列出所有 TCP 相关的字段。这个功能我每天都在用,比翻文档快多了。
保存与导出 pcap 文件
抓完包不保存,等于白干。Wireshark 支持多种保存方式,我重点说三种最常用的。
- 保存全部:Ctrl+S,默认保存为 pcapng 格式。这是新版格式,支持多接口、注释等元数据。兼容性最好。
- 导出特定包:Ctrl+Shift+X,或者菜单「File → Export Specified Packets」。你可以按显示过滤器、包范围、标记状态来导出。我排查问题时经常只导出有问题的 TCP 流,发给同事看。
- 导出为旧版 pcap:有些老工具(比如 tcpdump)不认 pcapng,这时候需要导出为 pcap 格式。在保存对话框里选「Wireshark/tcpdump/... - pcap」即可。
注意:pcapng 文件默认包含接口描述、统计信息等额外数据。如果你要分享给第三方,建议用 pcap 格式,兼容性更好。我曾经因为发了个 pcapng 文件给客户,对方用老版本打不开,折腾了半天才搞清楚。
本章知识体系
下面这张图把本章的核心逻辑串起来了。从启动抓包到保存导出,每一步都有对应的操作和过滤器选择。
你看,整个流程是线性的。但有两个关键分支:抓包过滤器在开始抓包前设置,显示过滤器在抓包过程中或抓完后使用。这两个搞清楚了,后面学协议解析就顺了。
我的习惯:抓包前先想清楚「我要看什么」。如果是排查 HTTP 问题,我会在抓包过滤器里写 port 80 or port 443;如果是看 ARP 欺骗,就写 arp。这样抓下来的文件小,分析起来也快。