跳到主要内容

ALFA 网卡适配器在 Kali Linux 上——监听模式与数据包注入

学习目标(Learning goal):学完本指南,你的 ALFA 网卡适配器将进入监听模式,并且证明数据包注入可用——这是每个 Wi-Fi 审计工具(Aircrack-ng、Wifite、Wireshark、Bettercap)都依赖的两项能力。 适用对象:初学者–中级,Kali 用户 | 前置需求:已安装 Kali Linux(任意较新版本)、网络访问、你的 ALFA 网卡适配器。

概念:为什么 Kali 与众不同

Ubuntu 把 Wi-Fi 网卡适配器当作礼貌的客户端:它们只捕获自己的流量。Kali 的整套工具链——Aircrack-ng、Reaver、Wifite——假设网卡适配器还能做两件额外的事:

  1. 监听模式(monitor mode)——捕获信道上的每一个帧,而不仅仅是你的连接。
  2. 数据包注入(packet injection)——发送原始构造的帧(deauth、probe request、握手重放)。

不是每个芯片组都能做到这两点。好消息是:除 AWUS036EACS 外,所有 ALFA 网卡适配器都可以,而且内核内置的 MediaTek 芯片组无需安装任何驱动就能做到。

前置需求

  • 已安装 Kali Linux(在 Kali rolling、内核 6.x 上测试过)
  • sudo 权限和网络连接
  • 你的 ALFA 网卡适配器——先查看兼容性矩阵
  • (仅 Realtek 型号)构建工具:sudo apt install -y build-essential dkms git

第 1 步:检查内核看到了什么

插上网卡适配器并确认它被检测到:

lsusb | grep -iE "realtek|mediatek"
iw dev

预期输出:你的网卡适配器出现在 lsusb 中,并且 iw dev 中至少有一个 Interface wlan0(或 wlan1)。

第 2 步:安装驱动(仅 Realtek 芯片组)

如果你的芯片组是 RTL8812AU / RTL8811AU / RTL8832BU,用 DKMS 构建 aircrack-ng 维护的驱动。如果你的芯片组是 MediaTek(MT7612U / MT7610U / MT7921AUN),跳到第 3 步——驱动已经在你内核里。

RTL8812AU(AWUS036ACH)

sudo apt update
sudo apt install -y build-essential dkms git
cd /opt
sudo git clone https://github.com/aircrack-ng/rtl8812au.git
cd rtl8812au
sudo make dkms_install

预期输出:以 DKMS: install completed. 结尾。

为什么用 aircrack-ng 分支?Kali 的内核滚动很快,aircrack-ng 维护者会在每次内核发布后几天内更新这些驱动——在滚动发行版上至关重要。RTL8812AU 驱动页面有深度解析。

RTL8811AU(AWUS036ACS)

cd /opt
sudo git clone https://github.com/aircrack-ng/rtl8811au.git
cd rtl8811au
sudo make dkms_install

RTL8832BU(AWUS036AX / AWUS036AXER)

cd /opt
sudo git clone https://github.com/aircrack-ng/rtl88x2bu.git
cd rtl88x2bu
sudo make dkms_install

重新插拔网卡适配器(或 sudo modprobe <module>)并确认出现接口:iw dev

第 3 步:终止干扰进程

Kali 的 NetworkManager 会争夺 Wi-Fi 接口的控制权。在切换到监听模式之前先停掉它:

sudo airmon-ng check kill

预期输出

Killing these processes:

PID Name
1234 wpa_supplicant
2345 NetworkManager

⚠️ 这会断开你当前的 Wi-Fi 连接(你杀掉了 NetworkManager!)。如果你正通过 Wi-Fi 工作,会失去连接——请使用以太网线或在本机操作。之后可以用 sudo systemctl restart NetworkManager 恢复。

第 4 步:启动监听模式

sudo airmon-ng start wlan0

(把 wlan0 替换成第 1 步得到的接口名。)

预期输出

PHY Interface Driver Chipset
phy0 wlan0 mt76x2u MediaTek Inc. MT7612U
(mac80211 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon)
(mac80211 station mode vif disabled for [phy0]wlan0)

你的接口现在是 wlan0mon。验证:

iwconfig

预期输出wlan0mon IEEE 802.11 Mode:Monitor ...

第 5 步:证明数据包注入可用

注入是每款 Wi-Fi 网卡适配器的技能考核。运行 Aircrack-ng 自测(它广播发送,无需目标):

sudo aireplay-ng --test wlan0mon

预期输出

12:34:56 Trying broadcast probe requests...
12:34:56 Injection is working!
12:34:56 Found 1 AP
12:34:56 30/30: 100%

30/30: 100%——这就是魔法行。它意味着网卡适配器注入了 30 个 probe request 并听到了全部 30 个,证明监听模式下 TX 和 RX 都正常。如果你看到 Failed 或低百分比,说明网卡适配器实际上没有在注入——参见下面的常见错误表。

第 6 步:把工具指向它

一个快速的端到端健全性检查——捕获并计数 10 秒内的帧:

sudo timeout 10 tcpdump -i wlan0mon -c 100

预期输出100 packets captured(或 10 秒内到达的任意数量——看到任何 802.11 帧就证明捕获可用)。

完成后,把网卡适配器恢复正常模式:

sudo airmon-ng stop wlan0mon
sudo systemctl restart NetworkManager

常见错误(FAQ)

错误 / 症状原因修复
airmon-ng start 提示 No such device接口名是 wlan1 或驱动未加载运行 iw dev 找到真实名称;Realtek 用 sudo modprobe <module>
aireplay-ng --testNo such device你还在 wlan0 上,而不是 wlan0mon重新检查 iwconfig;从第 4 步重新启动监听模式
Injection is working!0/30 回复网卡适配器 TX 正常但 RX 过滤坏了(某些 Realtek 驱动常见)尝试锁定信道:sudo iw wlan0mon set channel 6;重测;升级 DKMS 驱动
DKMS 构建失败并提示 "No rule to make target"Kali 内核对仓库快照来说太新cd /opt/rtl8812au && sudo git pull && sudo make dkms_install
监听模式几分钟后失效USB 省电 / 热节流使用带供电的 USB 集线器或 USB 3.0 端口;sudo iwconfig wlan0mon txpower 20
airmon-ng check kill 杀掉了我的网络预期行为——NetworkManager 被停止了会话结束后 sudo systemctl restart NetworkManager
网卡适配器在 managed 模式正常,但 iw 中没有列出 monitor驱动构建时未包含监听支持用 aircrack-ng 仓库重建(它们启用监听 + VIF)

你可能想知道——「捕获这些东西合法吗?」 监听模式和注入是技术能力,不是许可证。在大多数司法管辖区,在你未拥有或未获授权测试的网络上捕获或注入是非法的。每门课程实验都假设你在自己的接入点或实验网络上测试。请保持在那里。

参考