2. 抓包基础:选网卡、启停抓包、文件操作与过滤器快速上手
说实话,很多初学者拿到 Wireshark 第一反应就是——点开就抓。结果呢?抓了一堆乱七八糟的数据,自己都看懵了。我刚开始干网络那会儿也犯过这毛病,抓了半小时,发现全是跟自己设备无关的广播包。嗯,今天咱们就把这第一步走扎实。
2.1 选对网卡,抓包就成功了一半
Wireshark 启动后,你会看到一个网卡列表。别急着点,先看清楚。
核心原则:选那个 有实际流量、IP 地址正确 的网卡。别选虚拟机的虚拟网卡,除非你确实要抓虚拟机流量。
我个人习惯先看一眼网卡后面的 IP 地址。如果显示 0.0.0.0 或者 169.254.x.x,那说明这张网卡没拿到有效 IP,抓了也多半是废包。
| 网卡类型 | 典型用途 | 我踩过的坑 |
|---|---|---|
| 有线以太网卡 | 抓公司内网、服务器流量 | 有一次抓了半天没数据,结果是网线松了…… |
| 无线网卡 (Wi-Fi) | 抓无线客户端流量 | 注意:默认只能抓到自己发的包,抓不到别人的 |
| 虚拟网卡 (VMware/VirtualBox) | 抓虚拟机与宿主机通信 | 选错了会抓到宿主机本身的流量,很乱 |
| Loopback (回环) | 抓本机进程间通信 (127.0.0.1) | Windows 下默认抓不到,需要装 Npcap 并勾选 |
小技巧:双击网卡名称,Wireshark 会直接开始抓包。但我建议你先单击选中,看看底部的「捕获过滤器」输入框,有时候这里能帮你省大事。
2.2 开始与停止抓包——别让数据淹死你
选好网卡,点击那个蓝色的「鲨鱼鳍」图标,或者直接双击网卡,抓包就开始了。你会看到数据包像流水一样刷屏。
这时候很多人会慌:「怎么这么多包?我看不过来啊!」
别急。抓包不是让你实时看完所有包的。你只需要关注几个关键操作:
- 开始抓包:点击工具栏的 蓝色鲨鱼鳍 按钮,或菜单
捕获 → 开始。 - 停止抓包:点击 红色方块 按钮,或菜单
捕获 → 停止。 - 重新开始:点击 绿色鲨鱼鳍 按钮(带循环箭头),会清空当前数据重新抓。
警告:我曾经在客户现场抓包,忘了停止,结果抓了 2 个 G 的文件。打开的时候电脑直接卡死。记住:抓到你要的包就立刻停止,别让它一直跑。
还有一个实用操作:抓包过程中,你可以随时在显示过滤器里输入条件,Wireshark 会实时过滤显示结果,但后台仍然在继续抓。这个后面会细讲。
2.3 保存与打开抓包文件——你的证据要存好
抓完包,你得保存下来。Wireshark 默认格式是 .pcapng,这是新一代的抓包格式,支持多接口、注释等信息。老一点的工具可能用 .pcap,Wireshark 也兼容。
保存时我建议你养成两个习惯:
- 文件名要有意义。别叫
抓包1.pcapng,要叫2025-04-10_用户反馈登录慢.pcapng。不然过两天你自己都忘了这是啥。 - 只保存需要的包。如果你只对某几个包感兴趣,先选中它们,然后
文件 → 导出特定分组。这样文件小,打开快。
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 保存当前抓包 | Ctrl + S |
保存为 .pcapng 格式 |
| 另存为 | Ctrl + Shift + S |
可选择 .pcap 或 .pcapng |
| 打开抓包文件 | Ctrl + O |
支持 .pcap、.pcapng 等 |
| 合并抓包文件 | Ctrl + M |
把多个抓包文件拼在一起 |
提示:打开别人发给你的抓包文件时,如果提示「未识别的协议」,别慌。可能是对方用了特殊端口,你手动 解码为 一下就行。这个后面章节会讲。
2.4 抓包过滤器快速上手——只抓你想要的
这是今天最核心的内容。抓包过滤器(Capture Filter)是在 抓包开始前 设置的,它决定了哪些包能进入 Wireshark 的「口袋」。设置对了,你的抓包文件会干净很多。
你想想看,如果你只想看 HTTP 流量,结果抓了一堆 ARP、DNS、SSDP 广播包,那不是给自己添乱吗?
抓包过滤器的语法用的是 BPF (Berkeley Packet Filter),说白了就是一套简单的表达式。我常用的几个给你列出来:
# 只抓 IP 地址为 192.168.1.1 的流量
host 192.168.1.1
# 只抓某个网段的流量
net 192.168.1.0/24
# 只抓 TCP 端口 80 的流量(HTTP)
tcp port 80
# 只抓 UDP 端口 53 的流量(DNS)
udp port 53
# 只抓某个 MAC 地址的流量
ether host 00:11:22:33:44:55
# 组合条件:抓 192.168.1.1 的 HTTP 流量
host 192.168.1.1 and tcp port 80
# 排除某个 IP
not host 10.0.0.1
重点:抓包过滤器是在 网卡选择界面 的「捕获过滤器」输入框里填的。不是在主界面的显示过滤器里填!这两个地方长得像,但作用完全不同。
我曾经有一次排查一个应用慢的问题,抓包时没设过滤器,结果抓了 10 万多个包。我花了两个小时才找到那关键的 3 个包。后来我学乖了:抓之前先想清楚我要看什么,然后设好过滤器。
下面这张图帮你理清抓包过滤器和显示过滤器的区别:
你看,抓包过滤器就像门口的保安,只让符合条件的人进来。显示过滤器就像办公室里的秘书,从已经进来的人里再挑出你要见的。两者配合使用,效率最高。
2.5 实战小练习——抓一次你自己的 HTTP 请求
光说不练假把式。你现在就可以试一下:
- 打开 Wireshark,选择你的上网网卡。
- 在捕获过滤器里输入:
tcp port 80 - 点击开始抓包。
- 打开浏览器,随便访问一个 HTTP 网站(比如
http://example.com)。 - 回到 Wireshark,点击停止抓包。
- 你会看到只有 TCP 80 端口的包,干净利落。
扩展一下:如果你访问的是 HTTPS 网站(443 端口),把过滤器改成 tcp port 443。但 HTTPS 的包内容是加密的,你只能看到握手过程,看不到具体数据。这个后面讲 SSL/TLS 时会细说。
嗯,今天的内容就到这儿。抓包基础打牢了,后面分析协议才能得心应手。记住:选对网卡、设好过滤器、及时保存,这三点做好了,你已经超过 80% 的初学者了。