第2章 抓包原理与基础:网卡的工作模式、混杂模式与普通模式、抓包过滤器与显示过滤器的区别、抓包前的准备工作

说实话,很多人一上来就打开 Wireshark 点开始,抓了一堆包然后懵了。为什么?因为根本不知道网卡在干什么,也不知道自己抓到的到底是什么。这一章,咱们就把这些底层的原理捋清楚。

2.1 网卡的工作模式

网卡这东西,说白了就是一块硬件,负责把网络上的电信号或者光信号变成我们能理解的数据帧。它有好几种工作模式,我挑最常用的三种讲。

模式 行为 典型场景
广播模式 接收目标 MAC 为广播地址(FF:FF:FF:FF:FF:FF)的帧 ARP 请求、DHCP 发现
多播模式 接收目标 MAC 为多播地址的帧 IGMP、组播视频流
直接模式 只接收目标 MAC 为自己 MAC 的帧 普通上网通信

网卡默认是这三种模式同时工作的。也就是说,它只收发给自己的单播帧、广播帧,以及它注册过的多播帧。其他数据,网卡直接扔掉,CPU 根本不知道。

2.2 混杂模式与普通模式

这里有个关键点。普通模式下,网卡像个守门员,只放行跟自己有关的包。但抓包的时候,我们往往想看到整个链路上的所有流量,怎么办?

答案就是:混杂模式(Promiscuous Mode)。

核心区别一句话:

  • 普通模式:网卡只接收目标 MAC 匹配自己的帧。
  • 混杂模式:网卡接收所有经过它的帧,不管目标 MAC 是谁。

我刚开始学抓包的时候,犯过一个低级错误。在交换机上抓包,开了混杂模式,结果只抓到自己的广播包和少量单播包。为什么?因为交换机不是集线器,它不会把流量复制到所有端口。后来我才明白,混杂模式只对共享介质(比如无线、集线器、或者端口镜像)有效。在交换网络里,你还得配合端口镜像(SPAN)或者用 ARP 欺骗才能看到别人的流量。

注意:在无线网络上,即使开了混杂模式,也不一定能抓到其他客户端的包。因为无线网卡还有一层“省电模式”和“加密”的限制。我建议你在有线环境下先练手,无线抓包坑太多。

2.3 抓包过滤器与显示过滤器的区别

这是新手最容易搞混的地方。Wireshark 有两种过滤器,名字像,但作用完全不同。

特性 抓包过滤器(Capture Filter) 显示过滤器(Display Filter)
作用时机 抓包开始前设置,抓包过程中生效 抓包完成后设置,对已抓到的包进行筛选
语法 BPF(Berkeley Packet Filter)语法 Wireshark 自己的表达式语法
性能 高,内核层面过滤,不想要的包根本不进内存 低,所有包已经抓下来了,只是隐藏显示
典型用途 只抓特定协议或 IP,减少抓包文件大小 在大量数据中快速定位问题包

举个例子。你只想抓 HTTP 流量,可以这样设置:

# 抓包过滤器(在 Capture Options 里设置)
port 80

# 显示过滤器(在 Filter 栏里输入)
http

抓包过滤器用的是 BPF 语法,说白了就是 tcpdump 那套东西。显示过滤器是 Wireshark 自己定义的,更灵活,支持协议字段级筛选。

我的建议:日常排查问题,我习惯先不设抓包过滤器,把包全抓下来。然后用显示过滤器慢慢筛。因为一旦设了抓包过滤器,漏掉的包就再也找不回来了。只有在明确知道要抓什么、且流量特别大的时候,我才会用抓包过滤器来减少文件体积。

2.4 抓包前的准备工作

准备工作做得好,抓包效率翻倍。我总结了一个清单,每次抓包前我都会过一遍。

  1. 确认抓包位置:在客户端抓?服务器端抓?还是中间交换机上做端口镜像?位置错了,抓到的东西可能完全没用。
  2. 确认网卡状态:用 ipconfig(Windows)或 ifconfig(Linux)确认网卡是否启用、是否获得 IP、是否开启混杂模式。
  3. 关闭不必要的应用:浏览器、即时通讯、后台更新,能关就关。不然抓到的全是噪音。
  4. 设置抓包过滤器(可选):如果流量太大,提前用 BPF 语法缩小范围。
  5. 选择正确的网卡:Wireshark 启动时会列出所有网卡。无线网卡和有线网卡要分清,别选错了。
  6. 保存路径与文件大小:大流量场景下,设置好自动停止条件(比如 100MB 或 10 分钟),防止磁盘写满。

我曾经踩过的坑:有一次在客户现场抓包,忘了关 Windows 自动更新,结果抓了 2 个小时,文件 5GB,里面 90% 都是更新流量。从那以后,我抓包前第一件事就是关掉所有非必要进程。

2.5 本章知识体系

下面这张图把本章的核心逻辑串起来了。你可以看到,从网卡模式到过滤器选择,再到准备工作,是一条完整的链路。

抓包原理与基础知识体系 抓包原理与基础 · 知识体系 网卡工作模式 普通模式 混杂模式 监控模式 过滤器 抓包过滤器(BPF) 显示过滤器(Display) 抓包前准备工作 确认位置 关闭无关应用 选择正确网卡 设置保存路径

嗯,这张图基本把本章的脉络讲清楚了。从网卡模式出发,到两种过滤器的选择,再到最后的准备工作,每一步都环环相扣。你把这个逻辑理清了,后面抓包就不会再迷茫。