2. Wireshark入门:从安装到第一次抓包

说实话,我见过太多人一上来就点「Start Capture」,然后被满屏花花绿绿的包吓退。Wireshark 这东西,用好了是手术刀,用不好就是一团乱麻。这一章,我带你把它捋清楚。

2.1 安装与第一印象

Wireshark 的安装没什么玄学。Windows 用户一路 Next 就行,但有两个坑我得提醒你:

  • WinPcap 还是 Npcap? 现在官方推荐 Npcap。WinPcap 已经停更了,Windows 10/11 上兼容性有问题。我去年帮一个同事排查,他死活抓不到无线网卡的包,换 Npcap 立刻解决。
  • 安装时勾选「Install Npcap in WinPcap API‑compatible Mode」。这样老工具也能用,不冲突。

Mac 用户用 Homebrew 装:brew install --cask wireshark。装完记得把当前用户加到 access_bpf 组,否则没权限抓包。

我的习惯: 装完第一件事,去 View → Time Display Format 改成 Seconds Since Beginning of Capture。默认的「绝对时间」在分析长会话时根本没法看相对间隔。

2.2 界面速览:别被吓到

打开 Wireshark,你会看到四个核心区域。我按使用频率排个序:

区域 位置 一句话用途
数据包列表 顶部主窗格 所有包的流水账,一行一个
数据包详情 中间窗格 选中包的协议层级拆解
数据包字节 底部窗格 原始十六进制 + ASCII
过滤器工具栏 顶部输入框 输入过滤表达式的地方

嗯,这里要注意:数据包详情窗格才是你真正花时间的地方。列表只是索引,字节窗格是最后确认用的。中间那层,才是协议分析的战场。

2.3 捕获过滤器 vs 显示过滤器

这是新手最容易搞混的地方。我直接说结论:

  • 捕获过滤器:在抓包之前设置,只抓符合条件的包。语法是 BPF(Berkeley Packet Filter)。
  • 显示过滤器:在抓包之后设置,只显示符合条件的包。语法是 Wireshark 自己的表达式。

核心区别: 捕获过滤器是「丢掉的包永远找不回来」,显示过滤器是「只是藏起来了,数据还在」。我建议你平时多用显示过滤器,除非你明确知道要排除什么流量。

举个例子。你只想看 HTTP 流量:

# 捕获过滤器(抓包前写在 Capture → Options 里)
port 80

# 显示过滤器(抓包后写在顶部输入框里)
http

为什么我强调用显示过滤器?有一次我排查一个间歇性丢包问题,用捕获过滤器只抓了 TCP 80 端口,结果问题出在 DNS 解析阶段——我根本没抓到 DNS 包,白白浪费半天。从那以后,我除非在流量极大的生产环境,否则一律全量抓,用显示过滤器慢慢筛。

2.4 数据包列表:一眼看出门道

列表默认显示这些列:No.、Time、Source、Destination、Protocol、Length、Info。你想想看,几百个包滚过去,怎么快速定位?

我的做法是:

  1. 先看 Protocol 列。颜色会帮你分类(后面讲着色规则)。
  2. 再看 Info 列。TCP 的 SYN、ACK、HTTP 的 GET/POST,这里会简要描述。
  3. 双击进详情。别在列表层纠结太久。

另外,你可以右键任意列标题,选 Column Preferences 添加自定义列。我个人必加一列 Delta Time(前后包时间差),排查延迟问题特别好用。

2.5 着色规则:让异常自己跳出来

Wireshark 默认有一套着色方案。比如:

  • 浅紫色:TCP SYN
  • 浅红色:TCP RST
  • 浅绿色:HTTP 流量
  • 浅蓝色:DNS

但默认规则太保守了。我建议你按自己的场景改。比如我排查 TCP 重传时,会把 TCP Retransmission 设成亮红色背景 + 白字,让它在一堆绿油油的正常包里像红灯一样刺眼。

怎么改? 菜单 View → Coloring Rules。你可以新建规则,优先级从上到下匹配。记得把最具体的规则放上面。

2.6 统计功能:别只会看列表

很多人抓完包就盯着列表一条条翻。其实 Wireshark 的统计功能能帮你省 80% 的时间。常用的几个:

统计项 菜单位置 什么时候用
Protocol Hierarchy Statistics → Protocol Hierarchy 一眼看出流量构成,哪个协议占比最大
Conversations Statistics → Conversations 查看哪些 IP 之间在通信,流量大小
Endpoints Statistics → Endpoints 统计每个 IP/MAC 的总流量
IO Graph Statistics → IO Graph 看流量随时间的变化曲线,找突刺

我记得有一次客户说「网络下午 3 点准时卡顿」。我抓了 24 小时的流量,打开 IO Graph,发现每天 15:00 准时有个流量尖峰——后来查出来是备份脚本在跑。如果没有这个图,你根本不可能从几十万条包里看出时间规律。

避坑: Protocol Hierarchy 统计的是「有该协议头的包数」,不是「字节数」。比如一个包同时有 TCP 和 HTTP 头,它会被两个协议都计数。看字节占比要用 Endpoints 或 Conversations。

2.7 本章知识体系

下面这张图把 Wireshark 入门的核心逻辑串起来了。你可以把它当一张地图,以后迷路了就回来看看。

Wireshark入门知识体系 Wireshark 入门核心逻辑 安装与配置 界面四大窗格 捕获过滤器(BPF) 显示过滤器(表达式) 数据包列表 + 着色规则(视觉定位) 数据包详情(协议拆解) 统计工具(宏观分析) 定位问题根因 💡 从左到右:先选工具,再定策略,最后分析

这张图你看懂了吗?从上到下是操作流程,从左到右是选择分支。安装完 → 熟悉界面 → 决定用哪种过滤器 → 看列表和着色 → 深入详情或用统计工具 → 最终定位问题。每一步都有对应的 Wireshark 功能支撑。