2. 环境准备:Linux系统安装、网卡模式切换与驱动兼容性检查

说实话,做无线抓包这件事,最怕的不是协议复杂,而是环境没搭好就急着开干。我见过太多人拿着Windows笔记本插上USB网卡,打开Wireshark发现只能抓到自己的流量——那种挫败感,我懂。

这一章,咱们就把地基打牢。你跟着我走一遍,后面30个章节都会顺风顺水。

2.1 为什么非要用Linux?

你可能想问:Windows也能装Wireshark啊,为什么非要折腾Linux?

原因很简单:无线网卡的Monitor模式,在Windows上基本是个摆设。Windows的无线栈把网卡管得死死的,你没法让它进入真正的监听状态。Linux就不一样了——它给了你底层控制权。

我个人习惯用Ubuntu 22.04 LTS。为什么?

  • 驱动支持最全,尤其是那些便宜的RTL8812AU网卡
  • 社区活跃,遇到问题一搜就有答案
  • apt包管理省心,一条命令装完所有依赖
我的建议:如果你手头有闲置的旧笔记本,直接装Ubuntu 22.04桌面版。虚拟机也行,但USB直通网卡有时会掉链子。我在项目中吃过这个亏——虚拟机里网卡模式切着切着就挂了,排查了半天才发现是VMware的USB控制器在捣乱。

2.2 网卡模式:Managed vs Monitor

先搞清楚这两个模式的区别。说白了:

  • Managed模式:网卡只收发给自己的包。你连上Wi-Fi上网,用的就是这模式。
  • Monitor模式:网卡变成“收音机”,空中所有802.11帧都能收——不管是不是发给你的。

抓包必须用Monitor模式。但有个坑:不是所有网卡都支持Monitor模式。我踩过这个坑——买了个某品牌的USB网卡,插上去怎么切都切不过去,查了半天发现芯片组压根不支持。

模式 能收什么 典型用途 驱动要求
Managed 只收本机关联的帧 正常上网 标准驱动即可
Monitor 所有空中802.11帧 抓包、审计、分析 需驱动支持

2.3 驱动兼容性检查——这一步别跳过

嗯,这里要注意:装系统之前,先确认你的网卡芯片型号。别等系统装好了才发现网卡不认,那就尴尬了。

怎么查?我一般这么做:

  1. 在Windows或现有系统里,用 lsusb 或设备管理器看芯片ID
  2. 去 wireless.wiki.kernel.org 查芯片是否被主线内核支持
  3. 如果不支持,找对应的第三方驱动(比如 rtl88x2bu、rtl8812au)

下面这张图,是我自己画的知识体系,帮你快速定位问题出在哪一环:

无线抓包环境准备知识体系 无线抓包环境准备 · 核心流程 选择Linux系统 检查网卡芯片型号 驱动兼容性判断 主线内核支持 安装第三方驱动 切换Monitor模式 💡 建议:优先选主线内核 支持的网卡,省去编译驱动

2.4 实战:在Ubuntu 22.04上切换网卡模式

假设你的网卡已经被系统识别了。我们来走一遍切换流程。

先看看当前网卡状态:

iwconfig
# 输出示例:
# wlan0     IEEE 802.11  ESSID:"MyWiFi"  
#           Mode:Managed  Frequency:2.412 GHz  Access Point: XX:XX:XX:XX:XX:XX

看到 Mode:Managed 了吧?这就是普通上网模式。现在把它切到Monitor:

# 先停掉网络管理,不然它会抢网卡
sudo systemctl stop NetworkManager

# 把网卡降下来
sudo ip link set wlan0 down

# 切换模式
sudo iw dev wlan0 set type monitor

# 再升起来
sudo ip link set wlan0 up

# 确认模式
iwconfig wlan0
# 应该看到:Mode:Monitor
注意:有些网卡在切换模式后,无线指示灯会熄灭或闪烁异常——这是正常的。另外,切换后你就没法用这个网卡正常上网了。我建议你准备两块网卡:一块用来抓包,一块用来上网查资料。

2.5 驱动兼容性速查表

下面这张表是我自己整理的,覆盖了市面上常见的抓包网卡。你买网卡的时候可以对着看:

芯片型号 USB接口 Ubuntu 22.04支持 Monitor模式 备注
Atheros AR9271 USB 2.0 主线内核 ✅ 原生支持 经典款,稳定
RTL8812AU USB 3.0 需第三方驱动 ✅ 需编译 支持5GHz,抓包首选
RTL8821AU USB 2.0 需第三方驱动 ✅ 需编译 性价比高
MediaTek MT7610U USB 2.0 主线内核(较新) ⚠️ 部分支持 内核版本需≥5.10
Intel AX200/210 M.2 主线内核 ✅ 原生支持 笔记本内置,需确认

我的经验:如果你刚开始学,直接买Atheros AR9271芯片的网卡(比如TP-Link TL-WN722N v2/v3)。插上就能用,不用编译驱动,省心。我第一块抓包网卡就是它,到现在还在用。

2.6 驱动装不上怎么办?

你可能会遇到这种情况:网卡插上去,lsusb 能看到,但 iwconfig 里没有。这说明驱动没加载。

别慌。我遇到过好几次,解决思路是这样的:

  1. 先查芯片ID:lsusb | grep -i wireless,记下ID(比如 0bda:8812)
  2. 去GitHub搜这个ID,大概率能找到对应的驱动项目
  3. 按项目README编译安装

举个例子,RTL8812AU的驱动安装:

# 安装编译工具
sudo apt update
sudo apt install -y build-essential git dkms

# 克隆驱动源码
git clone https://github.com/aircrack-ng/rtl8812au.git
cd rtl8812au

# 编译并安装
sudo make
sudo make install

# 加载驱动
sudo modprobe 8812au

# 确认网卡出现
iwconfig
一个小技巧:编译驱动前,先看看内核版本。用 uname -r 查看。有些驱动对内核版本有要求。我上次在5.19内核上编译一个老驱动,死活过不去,后来降级到5.15才搞定。

2.7 验证环境是否就绪

所有步骤走完后,做一次最终验证:

# 1. 确认网卡在Monitor模式
iwconfig wlan0 | grep Monitor

# 2. 确认能抓到空中的帧(不需要关联任何Wi-Fi)
sudo tcpdump -i wlan0 -c 10

# 3. 如果看到类似下面的输出,说明环境OK
# 11:22:33.445566 Beacon (MyWiFi) [1.0* 2.0* 5.5* 11.0* Mbit] ESS

看到Beacon帧了吗?恭喜你,环境已经准备好了。后面我们就可以开始真正的抓包实战了。