4、Wireshark 快速上手:安装、界面布局、首选项配置、捕获过滤器与显示过滤器
好,咱们直接进入正题。Wireshark 这东西,说白了就是网络工程师的「听诊器」。你网络出问题了,抓包看看,往往比瞎猜管用得多。这一章,我带你把 Wireshark 从安装到核心过滤器捋一遍,保证你学完就能上手干活。
4.1 安装与第一印象
安装没什么特别的,去官网下载对应系统的版本就行。我个人习惯装 64 位稳定版,别追新,稳定第一。
安装小提示: Windows 下安装时,记得勾选「Install Npcap」——这是抓包的核心驱动。我曾经遇到过同事装了半天抓不到包,最后发现是忘了装这个。
装好后打开,你会看到这个界面:
- 主工具栏:最上面一排图标,开始/停止抓包、打开文件、保存等。
- 显示过滤器工具栏:紧挨着工具栏下方,绿色文本框,这是你日常用得最多的区域。
- 数据包列表窗格:中间上半部分,显示所有抓到的包,一行一个。
- 数据包详情窗格:中间下半部分,选中某个包后,这里会分层展示协议细节。
- 数据包字节窗格:最下面,显示原始十六进制和 ASCII 数据。
嗯,刚上手可能会觉得眼花。别急,你只需要记住:列表看概况,详情看结构,字节看原始数据。这三个窗格配合着用,大部分问题都能定位。
4.2 首选项配置:让工具更顺手
Wireshark 默认配置够用,但有些地方调一下,能让你效率翻倍。我建议你按下面这几项来配:
- 调整时间显示格式:点击
View → Time Display Format,选Seconds Since Beginning of Capture。这样每个包的时间戳都是从抓包开始算的,方便对比相对时间。 - 开启自动滚动:抓实时流量时,勾选
View → Auto Scroll in Live Capture。不然包一多,画面卡住不动,你会以为软件死了。 - 配置列显示:右键点击列表顶部的列标题,可以增删列。我一般保留这几列:
No.、Time、Source、Destination、Protocol、Length、Info。够用,不乱。 - 设置捕获接口:点击
Capture → Options,勾选你要抓包的网卡。如果你不确定用哪个,就选Any(所有接口)。
注意: 别在生产环境的服务器上长时间抓包。我曾经有一次在核心交换机上抓了半小时,结果磁盘写满了,业务直接挂了。抓包前先估算流量大小,或者设置文件大小上限和自动停止条件。
4.3 捕获过滤器:只抓你想要的
捕获过滤器是在抓包之前就过滤掉不想要的数据。它的语法比显示过滤器简单,但功能也弱一些。说白了,就是「抓之前先筛一遍」,减少磁盘压力和 CPU 开销。
语法格式:协议 方向 类型 值
| 场景 | 捕获过滤器表达式 | 说明 |
|---|---|---|
| 只抓某台主机的流量 | host 192.168.1.100 |
源或目标 IP 为 192.168.1.100 |
| 只抓某端口的流量 | port 80 |
HTTP 流量 |
| 只抓某网段的流量 | net 10.0.0.0/8 |
10 网段的所有流量 |
| 排除广播包 | not broadcast |
减少干扰 |
| 组合条件 | host 192.168.1.100 and port 443 |
抓该主机的 HTTPS 流量 |
实战经验: 我排查 DNS 问题时,常用
port 53 作为捕获过滤器。这样抓到的包全是 DNS 查询和响应,干净利落,不用在几千个包里翻。
4.4 显示过滤器:强大的事后分析工具
显示过滤器是在抓包之后,对已经抓到的数据包进行筛选。它的语法更丰富,功能也更强大。你想想看,抓了一万个包,你不可能一个一个翻吧?这时候显示过滤器就是你的救星。
语法格式:协议.字段 运算符 值
| 场景 | 显示过滤器表达式 | 说明 |
|---|---|---|
| 只看 HTTP 请求 | http.request |
只显示 HTTP 请求包 |
| 只看特定 IP 的流量 | ip.addr == 192.168.1.1 |
源或目标 IP 为 192.168.1.1 |
| 只看 TCP 重传 | tcp.analysis.retransmission |
网络有丢包时,这个过滤器能帮你快速定位 |
| 只看特定端口的流量 | tcp.port == 443 |
HTTPS 流量 |
| 组合条件(与) | ip.src == 10.0.0.1 and tcp.port == 80 |
从 10.0.0.1 发出的 HTTP 流量 |
| 组合条件(或) | dns or http |
只看 DNS 或 HTTP 流量 |
小技巧: 显示过滤器支持自动补全。你输入
tcp. 后,按 Tab 键,Wireshark 会列出所有可用的字段。多试试,你会发现很多好用的字段,比如 tcp.flags.syn == 1 可以只看 SYN 包。
4.5 捕获过滤器 vs 显示过滤器:什么时候用哪个?
很多新手会搞混这两个概念。我直接给你一个判断标准:
- 捕获过滤器:用在抓包前,目的是减少抓到的数据量。比如你只关心某台服务器的流量,就用
host 服务器IP。 - 显示过滤器:用在抓包后,目的是从已抓到的数据中快速找到目标。比如你抓了一堆包,现在想只看 TCP 重传,就用
tcp.analysis.retransmission。
说白了,捕获过滤器是「节流阀」,显示过滤器是「筛子」。我个人的习惯是:能用显示过滤器解决的,就不用捕获过滤器。因为捕获过滤器一旦设置错了,你就得重新抓包。而显示过滤器随时可以改,灵活得多。
4.6 知识体系总览
下面这张图,帮你把本章的核心逻辑串起来。从安装到实战,每一步都有它的作用。
4.7 避坑指南
最后,分享几个我踩过的坑,你遇到了能少走弯路:
- 捕获过滤器语法写错,Wireshark 不会报错,它只会抓不到任何包。如果你发现抓包结果为空,先检查捕获过滤器是不是写对了。
- 显示过滤器写错,文本框会变红色。这时候别慌,看看是不是少了个引号或者括号。Wireshark 的提示其实挺友好的。
- 抓无线网卡流量时,记得开启混杂模式。不然你只能抓到发给自己网卡的包,看不到别人的。
- 抓包文件别存默认路径。我曾经有一次把抓包文件存在 C 盘,结果系统盘满了,电脑直接蓝屏。现在我都存到 D 盘或者移动硬盘。