Wireshark 基础操作:从界面到实战抓包

说实话,很多新手拿到 Wireshark 第一反应就是懵。满屏的列表、各种颜色、一堆看不懂的协议……我当年第一次打开也是这个感觉。但别急,这东西用熟了,它就是你的「网络显微镜」。

这一章,咱们就把 Wireshark 的基础操作捋一遍。你不需要记住所有按钮,但下面这几个核心功能,我建议你练到肌肉记忆。

界面布局:别被吓到,就四个区

Wireshark 的界面其实就四个区域,我习惯叫它「四块玻璃」:

  • 数据包列表区(最上面):抓到包以后,这里一行一个包。编号、时间、源地址、目的地址、协议、长度、信息摘要,全在这。
  • 协议树区(中间左下):点中一个包,这里会展开它的协议栈。从物理层到应用层,一层一层剥开看。
  • 十六进制区(中间右下):原始字节流。左边是偏移量,中间是十六进制,右边是 ASCII。做底层分析时必看。
  • 过滤栏(最上面工具栏下方):这是 Wireshark 的灵魂。后面我会重点讲。
我的小习惯: 我会把「时间」列改成「相对时间」(View → Time Display Format → Seconds Since Beginning)。这样看两个包之间的间隔,一眼就知道延迟在哪。

捕获过滤器 vs 显示过滤器:别搞混了

这是新手最容易踩的坑。我见过有人把显示过滤器的语法填到捕获过滤器里,结果抓了半天啥也没抓到。

说白了,区别就一句话:

  • 捕获过滤器:在抓包之前设置。它决定「哪些包进内存」。语法是 BPF(Berkeley Packet Filter),简单粗暴。
  • 显示过滤器:在抓包之后设置。它决定「哪些包显示在屏幕上」。语法是 Wireshark 自己的表达式,功能更强大。
类型 设置时机 语法 典型例子
捕获过滤器 抓包开始前 BPF host 192.168.1.1
显示过滤器 抓包开始后 Wireshark 表达式 ip.addr == 192.168.1.1
我曾经踩过的坑: 有一次在客户现场抓 LTE 核心网的信令,我用了捕获过滤器 tcp port 80,结果发现 S1AP 的包全没了。因为 S1AP 走的是 SCTP,不是 TCP。从那以后,我抓核心网信令时,捕获过滤器只限 IP 地址,协议过滤全交给显示过滤器。

着色规则:一眼看出异常

Wireshark 默认会给不同协议涂上颜色。比如 TCP 是浅蓝,UDP 是浅绿,HTTP 是深绿。但真正好用的是「自定义着色」。

我个人的做法:

  • 把重传包(TCP Retransmission)标成 红色。
  • 把丢包(TCP Dup ACK)标成 橙色。
  • 把 LTE 的 NAS 信令标成 紫色。

这样一打开抓包文件,哪里有问题,颜色直接告诉你。不用一行一行看。

设置路径:View → Coloring Rules。你可以新建规则,条件是显示过滤器表达式,颜色自己选。

统计工具:别只会看列表

很多人抓完包就盯着列表看,其实 Wireshark 的统计工具才是效率神器。

  • Statistics → Protocol Hierarchy:一眼看出流量里哪个协议占比最大。我排查流量异常时,第一步就看这个。
  • Statistics → Conversations:看哪些 IP 之间在通信,流量多大。找「谁在跟谁说话」特别快。
  • Statistics → IO Graph:流量随时间变化的曲线图。看有没有突发流量,或者周期性波动。
实战场景: 有一次我怀疑某个基站上行流量异常。打开 IO Graph,把过滤条件设为 s1ap,发现每隔 10 秒就有一个尖峰。后来定位到是终端频繁发起 TAU 请求。如果没有 IO Graph,这种周期性模式很难在列表里发现。

跟踪 TCP/UDP 流:还原对话

这个功能我几乎天天用。右键点击一个 TCP 包 → Follow → TCP Stream。Wireshark 会把整个 TCP 连接里的应用层数据拼在一起,按客户端和服务端分色显示。

对于 HTTP、FTP、SIP 这类文本协议,直接就能看到请求和响应内容。对于 LTE 的 S1AP 或 NAS,虽然内容是二进制,但你可以看到完整的信令交互序列。

小技巧: 跟踪流的时候,Wireshark 会自动在显示过滤器里加一个 tcp.stream eq X。你可以把这个表达式记下来,以后手动输入也能快速定位到同一个流。

导出特定数据包:别每次都存整个文件

抓包文件动辄几百 MB,发给别人或者归档时,我只导出相关的包。

操作很简单:选中你要的包(可以多选),File → Export Specified Packets。你可以选择:

  • 只导出选中的包
  • 只导出当前显示过滤器匹配的包
  • 只导出某个范围内的包(比如第 100 到 200 个)

我经常用「导出当前显示过滤器匹配的包」这个选项。比如我只想保留 S1AP 的包,先设好显示过滤器 s1ap,然后导出,新文件里就只有 S1AP 信令。

本章知识体系

下面这张图,把 Wireshark 基础操作的几个核心模块串起来了。你可以把它当作操作地图:

Wireshark 基础操作知识体系 Wireshark 基础操作 界面布局 四区:列表/协议树/十六进制/过滤 捕获 vs 显示过滤器 BPF 语法 vs Wireshark 表达式 着色规则 重传红/丢包橙/NAS 紫 统计工具 协议分层/会话/IO Graph 跟踪 TCP/UDP 流 还原完整对话 导出特定数据包 按选中/过滤/范围导出 💡 实战建议 先练界面布局 → 再学显示过滤器 → 最后用统计工具 着色规则和导出功能,遇到具体问题时再查

嗯,这一章的内容就这些。你不需要一次全记住,但下次打开 Wireshark 时,试着按这个顺序走一遍:先看界面布局,然后设个显示过滤器,再打开统计工具看看流量分布。用上两三次,这些操作就变成你的本能了。