臭名昭著aTrust隔离计划1.臭名昭著aTrust隔离计划2.VPN原理与aTrust隔离网络实践3.docker-easyconnect到底做了什么4.TUN(tunnel-隧道-虚拟网卡)模式
个人项目
personal(个人展示)GitHub Actions 自动部署个人展示项目
基于Quartz搭建的个人博客1.Quartz个人博客使用教程2.使用 rsync 增量部署 Quartz 博客3.使用 GitHub Actions 自动部署 Quartz 博客5.域名绑定6.CDN加速7.Google 搜索收录排查:为什么关键词搜得到别人,却搜不到我的网站?Obsidian、双向链接与知识图谱
架构设计
分布式分布式事务RPC原理
旅行
行程攻略青岛三日游行程攻略
前端
NginxNginx配置与反向代理入门
Nodenpm与npx的区别
数据库
mysql01.MySQL基础语法与约束02.MySQL数据库类型03.MySQL多表查询04.MySQL 索引05.MySQL 事务06.MySQL 隔离级别07.MySQL MVCC08.MySQL 锁09.EXPLAIN10.慢查询与 SQL 优化
mysql面试题01.索引问题02.事务与隔离级别03.锁机制04.存储引擎与性能优化05.用户权限、字符集与备份恢复
mysql实战01.EXPLAIN实战02.测试环境菜单误删排查与恢复03.MySQL IN 详解
网络
网络安全1.无线监听网卡苹果M系列虚拟机安装Kali Linux教程3.kali怎么使用RTL8812AU4.kali基础命令
网络基础进程之间怎样通过网络传递数据
网址常用网址
中间键
esElasticsearch 入门
mq
RabbitMQRabbitMQ高级RabbitMQ基础
1. MQ 基础2. MQ 核心角色与代码对应3. MQ Consumer Group 与消费模式4. SOFAMQ 账户变更代码实践5. MQ 可靠性问题6. 消息幂等
redis缓存击穿、穿透与雪崩Redis 分布式锁Redis 缓存问题Redis 数据结构
AI
使用说明
第三方插件&技能简介Archify使用与安装指南geekgeekRun使用OfferFlow使用指南Ponytail使用指南Skills Manager使用指南
CodexCodex CLI与IDE区别及使用指南Codex Hook单独配置与提交通知Codex MCP安装与使用指南Codex第三方插件安装与使用指南
Agent开发0-学习路线1.LLM、Token、上下文窗口与模型参数2.大模型 API、请求参数与响应结构3.Spring AI ChatClient4.Prompt、System Prompt、Prompt 模板6.结构化输出、JSON Schema7.SSE 流式响应8.会话 ID、聊天记录、Redis9.超时、重试、限流、降级10.*完成可运行聊天接口11.Function Calling、Tool Calling 原理12.用 Java 方法定义 Tool13.工具参数设计和校验14.实现订单查询工具15.实现物流查询工具16.实现库存查询工具17.多个工具自动选择18.工具异常、超时、重试
diy主机
主机零件学习1.CPU2.主板3.内存4.显卡5.硬盘6.散热7.风扇8.机箱热门型号价格表
捡垃圾diy-13600kf+5060diy-14600kf+5070
English高频词汇英文基础语法简单句子音标
GitGit常用命令Sublime Merge 使用指南
Java
工具库Caffeine本地缓存Reactor教程
工作实践如何使用@Async线程池使用与排查线上服务 CPU 使用率过高排查压测下RPC接口大量失败排查记录
基础1.HashMap2.ConcurrentHashMap3.HashSet4.final5.static6.volatile7.AtomicInteger8.String动态代理反射锁与线程同步线程注解
面试题1.HashMap 存储在方法内是线程安全的吗2.ArrayList参数传递与引用重新赋值3.== 和 equals 的区别、hashcode4.重载和重写的区别5.String、StringBuffer、StringBuilder区别及使用场景6.接口和抽象类7.ArrayList 与 LinkedList 的区别和扩容机制8.HashMap 和 Hashtable 的区别及底层实现9.Object 和 Objects 的区别10.ThreadLocal的原理和使用场景11.字节码是什么及作用12.Java类加载器有哪些13.双亲委派模型14.Java异常体系15.GC是什么16.GC如何判断对象可以被回收
面试总结0.HR面试模板1.面试一2.面试二3.面试三笔试
网络与 IO(黑马程序员-纯理论)01-网络编程基础02-IO模型与零拷贝03-BIO04-NIO基础与缓冲区05-NIO通道与选择器06-AIO
juc00-目录01-进程与线程02-线程同步与通信03-并发设计模式04-Java内存模型05-CAS与原子类06-ThreadLocal07-阻塞队列08-线程池使用与原理09-任务调度10-ForkJoin与享元模式11-AQS12-ReentrantLock13-读写锁14-并发协作工具15-ConcurrentHashMap16-CopyOnWrite与同步容器17-SkipListMap18-非阻塞队列
juc(工作常见)Java并发编程三个重点拆解
jvm1. JVM运行时数据区
Spring1.Spring IoC、DI与构造方法注入CGLIB、Byte Buddy 与 Spring AOPSpring 常用注解详解Spring Bean 生命周期
Spring MVC异常处理机制
linux常用命令
mac快捷键终端常用操作
python
基础01.Python是什么,为什么要安装Python02.Python项目中.venv是什么03.Python基础语法
基础实战sql替换
HTTPXHRMS员工详情接口调用(Python HTTPX)
windowswindows激活

1. 💡 一句话理解

核心结论

“监听网卡”通常是指硬件、驱动和系统配合后,支持监听模式的无线网卡。监听负责接收无线帧,注入负责主动发送构造的无线帧;捕获到数据,不等于能读懂加密内容。

本文根据课程截图整理,补充 Linux 官方资料,并结合 M 系列 Mac + Parallels + Ubuntu 24.04 ARM64 的使用场景。资料核对日期:2026-10-25。

2. 🧭 理论:从普通连接到监听模式

2.1 先想象一个无线“会议室”

家里有一个路由器,手机和电脑都通过它联网。无线信号在空间中传播,附近的接收设备可能收到这些信号。

普通上网时,电脑主要处理与自身通信有关的数据。做无线诊断时,我们可能想观察:路由器有没有广播、设备有没有尝试连接、某个信道是否存在大量重传。

这时需要网卡把更多接收到的原始无线帧交给分析工具。

图中的比喻实际技术含义比喻的边界
普通耳朵网卡处于普通连接模式不代表只能接收自己的单播,也会涉及广播等通信
超级耳朵网卡处于监听模式不会扩大到无限距离,也不能同时听遍所有信道
录音机抓包软件把无线帧保存到文件网卡负责收发,记录与分析主要由软件完成

2.2 普通连接模式:先加入网络,再正常上网

电脑日常连接 Wi-Fi,通常使用 Station/Managed 模式。它会与接入点(AP,通常就是无线路由器)完成认证和关联,再进行通信。

此时,网卡和驱动通常会过滤、处理无线帧,交给应用的内容也往往已经不是完整的原始 802.11 帧。因此,正常连接 Wi-Fi 时能抓到本机网络流量,不代表能观察周围所有无线通信。

2.3 监听模式:把收到的无线帧交给分析工具

**监听模式(Monitor Mode)**主要用于被动观察无线链路,不必先关联到目标接入点。

工具可以分析接收到的管理帧、控制帧、数据帧,以及驱动提供的信道、速率、信号强度等信息。具体能得到哪些信息,取决于硬件和驱动。

普通模式与监听模式是工作方式的差异,不一定是两种完全不同的硬件。有些平常用于上网的无线网卡,在合适的系统和驱动下也支持监听模式。

依据:Linux Wireless 的无线工作模式说明。

3. ⚙️ 理论:监听、注入与加密的边界

3.1 为什么“能听所有对话”不准确

截图用“超级耳朵”帮助理解,但实际捕获存在几层限制:

  • 频段限制:只支持 2.4 GHz 的网卡无法接收 5 GHz 无线帧。
  • 信道限制:单个无线射频通常只能在某一时刻观察一个信道配置。跳频扫描时,会漏掉离开某个信道期间的通信。
  • 接收条件限制:距离、遮挡、干扰、信号强度和设备能力都会影响接收,监听也可能丢帧。
  • 加密限制:收到 WPA2/WPA3 加密的数据帧,不代表已经得到其中的明文。

即使某一层 Wi-Fi 加密能够在具备相应密钥等条件下解密,HTTPS 等应用层加密仍然是另一层保护。无线帧、网页内容和聊天内容不是同一个层次。

捕获不等于破解

监听网卡不会自动显示 Wi-Fi 密码,也不会自动把附近人的聊天内容变成明文。

3.2 数据包注入:从“听”变成“发”

**数据包注入(Packet Injection)**指通过工具和驱动,主动发送构造的无线帧。这里更精确的对象是 802.11 无线帧,“数据包注入”是常见叫法。

能力在做什么常见用途
监听被动接收、观察无线帧无线故障排查、协议学习、覆盖与重传分析
注入主动发送构造的无线帧在自有或授权实验环境验证协议与设备行为

支持监听,不自动等于支持可靠注入;能够发送某种帧,也不保证接收方接受或产生预期行为。Linux 的 mac80211 可以支持通过监听接口发送帧,但仍需具体硬件和驱动配合。

依据:Linux Wireless 对 Monitor Mode 与 Packet Injection 的说明。

3.3 图中的“必备功能”要按用途理解

如果只是分析自己网络的无线信道和帧,重点是监听能力,不一定需要注入。

如果实验需要主动构造无线帧,才要进一步验证注入能力。不能只看商品标题中的“监听+注入”,还要看实物芯片、驱动版本、系统内核和实际测试结果。

4. 📡 网卡选型:看芯片,也看驱动

4.1 三种常见芯片怎么区分

芯片频段Linux 驱动情况选型时关注什么
RTL8812AU2.4 GHz、5 GHz存在支持监听和注入的第三方驱动;不同内核的支持路径可能变化检查当前内核、ARM64 编译支持和所需功能,不照搬旧教程
AR92712.4 GHz使用 ath9k_htc,需相应固件不适合观察 5 GHz 网络
MT7612U2.4 GHz、5 GHz使用内核中的 mt76 家族驱动,USB 对应 mt76x2u通常少一步手动编译,但仍需驱动模块、固件和 USB 识别正常

RTL8812AU 与 AR9271 是截图提到的芯片,MT7612U 是结合前面的购买讨论补充的选项。它们不是完整产品型号:不同商家可能使用不同天线、电路和 USB 标识,甚至更换芯片,不能仅凭外壳判断。

资料:RTL8812AU 驱动项目、ath9k_htc 文档、MediaTek 无线驱动文档。

4.2 MT7612U 为什么常被称为“免驱”

“免驱”是指系统通常已经提供驱动,用户不用另行下载安装,并不是硬件不需要驱动。

可以把驱动理解为系统与硬件之间的翻译:Ubuntu 或 Kali 已经带了翻译,插入后系统就有机会自动识别。驱动模块或固件缺失时,仍然需要补齐。

因此,商品写“Kali 免驱”不能自动推导出所有 Linux 镜像都可即插即用,更不能推导出 macOS 原生支持。

4.3 5 GHz、5G 与 1200M 分别是什么

  • 5 GHz:Wi-Fi 的工作频段,与手机运营商的 5G 移动网络不是一回事。
  • 2.4 GHz+5 GHz:支持两种频段,不代表单个无线射频能同时监听两个频段的全部通信。
  • 1200M/AC1200:常见商品速率等级,通常综合不同频段的标称链路速率,不代表实际下载速度,也不是监听性能保证。

5. 🚀 实践:在 Mac 虚拟机里检查网卡

5.1 前置准备

沿用已有环境:M 系列 Mac、Parallels、Ubuntu 24.04 ARM64,以及一只实物芯片确认过的 USB 无线网卡。必要时使用支持数据传输的 USB-C 转接器。

Ubuntu 是通用 Linux 系统;Kali 也是 Linux 系统,只是预装较多安全测试工具。本节无需换装 Kali。

在 Parallels 的「设备 → USB 与蓝牙」中,把网卡交给 Ubuntu。USB 直通后由 Ubuntu 驱动设备,macOS 无需为这只网卡安装无线驱动。

USB 无线网卡
    ↓ Parallels USB 直通
Ubuntu ARM64
    ↓ Linux 驱动和固件
无线接口
    ↓ 抓包或诊断工具
观察与分析

参考:Parallels 外部设备连接说明。

5.2 共享网络与 USB 直通有什么不同

方式Ubuntu 看到什么适合什么
Parallels 共享网络通常是虚拟以太网接口上网、下载软件、访问服务
USB 无线网卡直通实际 USB 设备;驱动成功后出现无线接口操作该网卡的无线信道、检查监听能力

Mac 通过 Wi-Fi 上网,不代表 Ubuntu 就直接拥有 Mac 内置无线网卡的控制权。共享网络可以保留用于下载依赖,外接无线网卡用于无线实验。

5.3 完整检查:从设备到能力

以下命令在 Ubuntu 终端执行,用于确认识别情况;不会主动发送构造的无线帧。

如果没有这些工具,先通过共享网络安装:

# 更新软件索引,安装 USB 查询工具和无线接口查询工具。
sudo apt update
sudo apt install usbutils iw

然后按顺序检查:

# 确认 Ubuntu 的架构;M 系列 Mac 的 ARM64 虚拟机通常输出 aarch64。
uname -m
 
# 查看内核版本,后续判断驱动兼容性需要它。
uname -r
 
# 查看 Ubuntu 是否拿到了 USB 设备。
lsusb
 
# 查看驱动是否已注册无线接口,接口名可能是 wlan0 或 wlx 开头。
iw dev
 
# 查看无线硬件声明的能力,重点找 Supported interface modes。
iw list

结果按层理解:

结果说明下一步
lsusb 没有对应设备尚未成功交给 Ubuntu,或连接存在问题检查 Parallels 的 USB 归属、转接器与供电
lsusb 有设备,iw dev 无无线接口USB 已识别,但无线驱动可能未成功工作根据设备 ID 和内核版本查驱动、固件及日志
iw dev 有无线接口驱动已经注册接口再检查 iw list 的能力和频段
Supported interface modes 包含 monitor驱动声明支持监听模式仍需在实际环境验证抓帧稳定性

iw list 不包含 monitor 时,不能因为商家写“监听网卡”就认为该环境已支持。包含 monitor 也不证明注入能力已经验证;多块无线设备同时存在时,要对应到实际网卡的 PHY。

5.4 MT7612U 未识别时怎么排查

# 查看当前内核是否提供 MT7612U 对应的模块信息。
modinfo mt76x2u
 
# 查看近期内核消息,查找 USB、驱动或固件加载失败原因。
sudo dmesg | tail -n 80
  • Module mt76x2u not found:当前内核对应的模块可能未安装或未启用,需按实际 Ubuntu 内核包处理。
  • 日志出现固件加载失败:根据报错中的文件名检查固件;Ubuntu 中通常由 linux-firmware 软件包提供相关文件。
  • 命令提示不存在:先安装对应查询工具;不要把工具缺失当成网卡不兼容。

本节只完成识别和能力检查,没有切换监听模式,也没有实测捕获和注入。排查时不要同时安装多个来源的驱动,以免增加冲突。

6. 📌 快速回顾

  • 普通连接模式用于正常加入 Wi-Fi;监听模式用于观察接收到的无线帧。
  • “超级耳朵”只是比喻,实际受频段、信道、接收条件和加密限制。
  • 监听负责接收,注入负责主动发送,两种能力需要分别确认。
  • 选型看芯片、系统、驱动与固件;“免驱”只是通常不用手动装驱动。
  • Mac 虚拟机里使用外接无线网卡,先确认 USB 直通,再确认无线接口和能力。

记忆句:先让虚拟机拿到设备,再让驱动认出网卡,最后验证需要的功能。

7. 📚 参考资料

  1. Linux Wireless:无线工作模式
  2. Linux Wireless:ath9k_htc
  3. Linux Wireless:MediaTek 驱动
  4. Aircrack-ng:RTL8812AU 驱动项目
  5. Parallels:连接外部设备到虚拟机