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 了。
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 秒就有一个流量尖峰。顺着时间点去查,发现是一台服务器在做全量备份,把带宽占满了。
3.6 知识体系:一张图说清楚
下面这张 SVG 图,把 Wireshark 实战的核心逻辑串起来了。你一看就明白:
这张图的核心就是:先过滤再抓,抓完再筛,筛完再分析。每一步都有对应的工具,别搞混了。
好了,Wireshark 的安装配置、捕获过滤器、显示过滤器、追踪流和统计功能,咱们都过了一遍。这些东西看着简单,但真正用好了,能帮你省下大把时间。下次遇到网络问题,别急着重启,先抓个包看看。
公众号:蓝海资料掘金营,微信deep3321