3. Wireshark实战:安装配置与核心功能

说实话,Wireshark 是我工具箱里最趁手的家伙。干了十几年网络,抓包分析这事儿,几乎天天都在干。今天咱们就聊聊 Wireshark 的实战,从安装配置到过滤器,再到追踪流和统计功能。嗯,我尽量把那些踩过的坑都给你指出来。

3.1 安装与配置:别小看这一步

Wireshark 的安装其实挺简单的,但有几个细节我得提醒你。

Windows 下安装,一路 Next 就行。但注意,安装过程中会提示安装 Npcap 或 WinPcap。我个人习惯选 Npcap,它更新,兼容性更好。我曾经遇到过 WinPcap 在 Win10 上抓包蓝屏的情况,换了 Npcap 就没事了。

Linux 下安装,一条命令搞定:

sudo apt-get install wireshark  # Debian/Ubuntu
sudo yum install wireshark       # CentOS/RHEL

装完后,记得把普通用户加入 wireshark 组,不然你每次都得 sudo 才能抓包:

sudo usermod -aG wireshark $USER

然后退出重新登录,就 OK 了。

小技巧: 抓包前先确认网卡是否处于混杂模式。Wireshark 默认会开启,但有些虚拟机环境需要手动勾选。不然你只能抓到发往本机的包,其他流量全丢了。

3.2 捕获过滤器:抓你想要的,别什么都抓

捕获过滤器是在抓包之前就生效的。说白了,就是告诉 Wireshark:「我只抓这些包,其他的别浪费我硬盘空间。」

它的语法基于 BPF(Berkeley Packet Filter),简洁但强大。常用的几个我列一下:

需求 捕获过滤器表达式
只抓某台主机的流量 host 192.168.1.100
只抓某端口的流量 port 80
只抓某网段的流量 net 192.168.1.0/24
排除某台主机 not host 10.0.0.1
只抓 TCP 流量 tcp

举个例子,你怀疑某台服务器在往外发异常数据,可以这样:

host 10.0.0.5 and not port 22

意思是只抓 10.0.0.5 的流量,但排除 SSH 端口,免得被自己的连接刷屏。

注意: 捕获过滤器一旦设置,抓包过程中无法修改。你得停止抓包,改完再重新开始。所以,如果你不确定要抓什么,建议先用显示过滤器。

3.3 显示过滤器:抓完再筛,灵活得多

显示过滤器是在抓包完成后,对已经抓到的包进行筛选。它比捕获过滤器更灵活,语法也更丰富。

常用的显示过滤器表达式:

需求 显示过滤器表达式
只看 HTTP 请求 http.request
只看某个 IP 的流量 ip.addr == 192.168.1.1
只看 TCP 端口 443 tcp.port == 443
只看 DNS 查询 dns.flags.response == 0
只看重传包 tcp.analysis.retransmission

你想想看,如果抓了 10 万包,想找某个 IP 的 HTTP 请求,手动翻得翻到猴年马月。用显示过滤器,一秒就定位了。

我个人习惯是:捕获过滤器尽量宽松,只排除明显不需要的流量(比如广播包)。剩下的靠显示过滤器慢慢筛。这样万一漏了什么,还能回头再查。

核心思路: 捕获过滤器做减法(减少抓包量),显示过滤器做筛选(从已抓数据中定位问题)。

3.4 追踪流:把对话拼起来看

Wireshark 抓到的包是零散的。比如一个 HTTP 请求,可能被拆成十几个 TCP 段。你想看完整的请求和响应内容,怎么办?

用「追踪流」功能。右键点击任意一个包,选择「追踪流」→「TCP 流」或「HTTP 流」。Wireshark 会自动把属于同一个会话的包重组,展示成连续的文本。

我记得有一次排查一个 API 调用失败的问题。客户端说发了请求,服务端说没收到。我抓包一看,TCP 三次握手都完成了,但 HTTP 请求报文被分成了两个 TCP 段发送。服务端只收到了第一个段,没收到第二个,所以一直没响应。用追踪流功能,我一眼就看到了不完整的请求体。

追踪流还能导出原始数据。比如你抓到一段 Base64 编码的图片,可以直接导出成文件,省得自己解码。

3.5 统计功能:用数据说话

Wireshark 的统计功能,说白了就是帮你从海量数据中提炼出有价值的信息。我常用的几个:

  • 协议层次统计:看看各种协议占了多少流量。如果发现某个协议占比异常高,那可能就是问题所在。
  • 对话统计:看看哪些 IP 之间在通信,流量多大。适合快速定位「谁在跟谁说话」。
  • 端点统计:看看每个 IP 的收发流量。如果某个 IP 发送量远大于接收量,可能是它在往外发数据。
  • IO 图表:以时间轴展示流量变化。适合观察流量突增或突降的时刻。

举个例子,有一次客户说网络卡。我抓了 5 分钟包,打开 IO 图表一看,每隔 30 秒就有一个流量尖峰。顺着时间点去查,发现是一台服务器在做全量备份,把带宽占满了。

我的习惯: 拿到一个抓包文件,先看协议层次统计,再看对话统计,最后用 IO 图表看时间分布。三步下来,问题基本就有方向了。

3.6 知识体系:一张图说清楚

下面这张 SVG 图,把 Wireshark 实战的核心逻辑串起来了。你一看就明白:

Wireshark 实战核心逻辑 捕获过滤器 抓包前筛选,减少数据量 抓包 原始数据采集 显示过滤器 抓包后筛选,定位问题 追踪流 重组会话,查看完整内容 统计功能 协议/对话/IO图表分析 输出:问题定位 / 性能分析 / 安全审计 用数据说话,而不是靠猜测

这张图的核心就是:先过滤再抓,抓完再筛,筛完再分析。每一步都有对应的工具,别搞混了。


好了,Wireshark 的安装配置、捕获过滤器、显示过滤器、追踪流和统计功能,咱们都过了一遍。这些东西看着简单,但真正用好了,能帮你省下大把时间。下次遇到网络问题,别急着重启,先抓个包看看。

公众号:蓝海资料掘金营,微信deep3321