4. 抓包基础操作:开始/停止捕获,保存/导出捕获文件,打开历史文件归纳总结

说实话,很多新人拿到 Wireshark 第一件事就是点那个绿色的鲨鱼鳍,然后看着满屏五颜六色的包,心里第一反应是——“然后呢?” 嗯,我当年也一样。抓包本身不难,难的是知道什么时候抓、抓多久、抓完怎么存。这一章我不跟你讲什么高大上的过滤器,咱们就先把最基础的四个动作练熟:开始捕获、停止捕获、保存文件、打开历史文件。这些做好了,后面的分析才有意义。

4.1 开始捕获:选对接口,别抓空气

Wireshark 启动后,主界面会列出一堆网络接口。你心里可能嘀咕:“这么多接口,我该选哪个?” 别急,我教你一个办法:看流量图。每个接口后面都有一条跳动的波浪线,哪个接口在跳,说明哪个有流量。跳得最欢的,通常就是你的主网卡。

我的习惯: 先双击一个接口预览一下,如果能看到成片的数据包,那就对了。如果全是 ARP 广播或者什么都没有,果断换一个。

选好接口后,点击绿色鲨鱼鳍图标,或者双击接口,捕获就开始了。这时你会在状态栏看到实时滚动的包数量。你可能会问:“什么时候该点停止?” 其实很简单:当你已经抓到足够分析的数据,或者问题场景已经复现,就按红色方块停止。

注意: 在 WiFi 不稳定的环境下,别忘了开启混杂模式(Promiscuous Mode)。否则你只能抓到发给自己接口的包,别人家的包你看不到。我就曾经因为没开混杂模式,抓了半小时全是一个 IP 的包,排查了半天才发现是接口模式不对。

4.2 停止捕获与保存文件:别让数据白白溜走

捕获停止以后,界面还停留在最后一次抓到的数据上。这时候如果不保存,一旦关闭 Wireshark,所有数据就丢了。你想想看,花了半小时抓的包,一个误操作全没了,多冤?

保存文件的步骤很简单:文件 → 另存为,选择路径和文件名。但这里有一个细节:默认保存格式是 .pcapng(新格式,支持多个接口和更多元数据),而老版本工具可能只认 .pcap。如果你需要把文件发给别人分析,最好统一用 .pcapng,除非对方明确要求 .pcap。

我一般会在文件名里带上时间戳和场景说明,比如:
2025-04-07_故障排查_ERP系统超时.pcapng

这样一个月后翻回来,还能一眼看出这个文件是干嘛的。

保存格式全称特点我的推荐
.pcapngPCAP Next Generation支持多接口、命名注释、包注释首选,兼容性好
.pcapPCAP (legacy)老格式,仅单接口仅当兼容老旧设备时使用

导出时还可以选择只保存部分包(比如只保留某个时间段的包)。操作路径是:文件 → 导出特定分组,然后选择范围。这个功能很实用,尤其是在你抓了 10 万包,但只需要分析其中 100 个时,别把整个大文件存下来——既占空间,又影响后续打开速度。

4.3 打开历史文件:快速从磁盘加载分析

保存之后怎么重新打开?最常见的两种方式:一是直接双击文件(如果关联了 Wireshark);二是在 Wireshark 里点 文件 → 打开。但这里有个坑:如果你的 pcapng 文件很大(比如超过 1GB),直接打开可能会卡很久,甚至内存爆炸。

我的建议: 先用 editcap 命令行工具切割文件。例如:
editcap -c 1000 large.pcapng chunk_%d.pcapng
这样每 1000 个包一个文件,打开小文件就快多了。

另外,Wireshark 还支持一次打开多个文件做对比。方法是把多个文件拖进同一个 Wireshark 窗口,它会自动添加到「最近打开列表」里。你可以在 文件 → 最近打开的文件 中快速切换,不用每次都去磁盘里找。

打开历史文件后,第一件事不是急着看包,而是先看一眼「统计 → 捕获文件属性」。这里会告诉你文件大小、包数量、时间范围、接口信息。如果发现包数量不对,或者时间跨度太大,很可能文件损坏或者捕获期间发生了翻转。

4.4 知识体系图:抓包基础操作全流程

抓包基础操作流程 抓包基础操作流程 选择网络接口 开始捕获 停止捕获 保存文件 另存为 .pcapng 打开历史文件 提示:大文件先切割再打开,避免卡死。保存时加时间戳备注。

4.5 实战避坑指南:三个我踩过的坑

光看流程还不够,我把这几年遇到的典型问题列出来,你抓包时碰到了可以少走弯路。

  1. 捕获满了自动停止,我却没保存。 Wireshark 默认会使用一个环形缓冲区,当文件大小达到上限(比如 100MB)时,会覆盖最早的包。如果你没在「捕获选项」里改成「停止捕获:文件大小达到...」并设置保存动作,那自动停止后的数据就丢了。我建议在正式抓长时间包之前,先在 捕获 → 选项 → 输出 里指定保存位置和文件大小限制,让它自动分段保存。
  2. 打开了历史文件,却发现时间戳不对。 有一次我抓包后保存,第二天打开发现所有包的时间戳都是 UTC 时间,而我需要本地时间。这是因为捕获时 Wireshark 默认使用系统时间,但如果你换了时区或者开了虚拟机,时间戳就可能扭曲。解决办法:在 视图 → 时间显示格式 里改成 日期和时间(本地),并确认系统时间准确。
  3. 导出特定分组时选错了范围。 我原想只导出前 500 个包,结果选了「显示的分组」,而当时我正好有个过滤器只显示了 3 个包... 导出出来只有 3 个。记住:「显示的分组」= 当前过滤视图下的包,「已选中的分组」= 手动点选的包,「所有分组」= 全部包。 搞混了你就得重新抓了。
重申一次: 不要在抓包过程中直接关闭 Wireshark 窗口!哪怕你点「取消捕获」也不行。先停止捕获,再保存,再关闭。我教的学生里有 3 个都犯过这个错,最后跑来问我抓的包去哪儿了,我只能说“空气里”。

4.6 归纳总结:你的抓包基本功是否过关?

到现在,你应该能独立完成以下四项操作了:

  • 选择正确的网卡接口并开始捕获
  • 在合适的时候停止捕获
  • 将捕获数据保存为 .pcapng 并做好命名规范
  • 打开历史文件,并快速查看文件属性确认数据完整性

这些看似简单,却是后面所有高级分析的基础。你想想看,如果你连文件都存不对、打不开,后面那些 TCP 流跟踪、HTTP 过滤全白搭。嗯,我建议你现在就打开 Wireshark,拿一个自己电脑上的流量试一遍这个流程。哪怕只抓 30 秒的包,走一遍保存和重新打开,手感就有了。

好了,这一章的内容就这么多。抓包基础操作你都掌握了,接下来就可以放心地钻到更深的数据包里去了。