联发科(MediaTek) MT7921AU

联发科(MediaTek) MT7921AU是目前Linux开源社区支持最好的无线网卡,官方驱动很早就直接并入Linux 主线内核(Mainline Kernel),只要Linux Kernel 5.18+ (Ubuntu 22.04.2+、24.04 及更新版本)原生支持。

MT7921AU (WiFi 6E / AX1800 级别):

  • 状态:绝对的免驱之王。Linux Kernel 5.18+(Ubuntu 22.04.2+、24.04 及更新版本)原生支持。

  • 特性:支持 WiFi 6 甚至 6E,延迟低、吞吐量大,非常适合高带宽需求的边缘计算节点。

我在淘宝上找了一家 CHANEVE MT7921AU (带双天线 / 支持 Kali 抓包注入) :

  • 底层芯片:联发科 MT7921AU

  • 卖家申明: 明确支持 Kali Linux 的抓包(Monitor Mode,监听模式)和注入(Packet Injection) 说明它的固件和 Linux 驱动是非常纯血且无阉割的。这对于网络调试、安全审计或折腾 Homelab 来说是硬核刚需。

  • 外置天线: 扁平折叠一体式 ,天线横向折叠在网卡主体两侧。这种扁平紧凑的设计,整体重心离主机的 USB 接口近,不容易因为意外碰触而折断或者把主机的 USB 接口压松导致断连。

../../../_images/mt7921au.png

安装

  • 插入 **CHANEVE MT7921AU USB无线网卡后,使用 dmesg -T 观察,果然立即识别出设备并标记为 wlan0 :

设备识别的系统日志
[Fri Jun  5 10:58:19 2026] usb 2-5: new SuperSpeed USB device number 3 using xhci_hcd
[Fri Jun  5 10:58:19 2026] usb 2-5: New USB device found, idVendor=0e8d, idProduct=7961, bcdDevice= 1.00
[Fri Jun  5 10:58:19 2026] usb 2-5: New USB device strings: Mfr=2, Product=3, SerialNumber=4
[Fri Jun  5 10:58:19 2026] usb 2-5: Product: Wireless_Device
[Fri Jun  5 10:58:19 2026] usb 2-5: Manufacturer: MediaTek Inc.
[Fri Jun  5 10:58:19 2026] usb 2-5: SerialNumber: 000000000
[Fri Jun  5 10:58:19 2026] usb 2-5: reset SuperSpeed USB device number 3 using xhci_hcd
[Fri Jun  5 10:58:19 2026] usbcore: registered new interface driver mt7921u
[Fri Jun  5 10:58:19 2026] mt7921u 2-5:1.0: HW/SW Version: 0x8a108a10, Build Time: 20240219110958a
[Fri Jun  5 10:58:19 2026] mt7921u 2-5:1.0: WM Firmware Version: ____010000, Build Time: 20240219111038
[Fri Jun  5 10:58:21 2026] mt7921u 2-5:1.0 wlxfc221c500043: renamed from wlan0

注意,现代Linux默认不使用传统的 wlan0 ,而是使用了 可预测网络接口命名(Predictable Network Interface Names) 机制,所以使用 iwconfig 检查可以看到无线网卡如下:

使用iwconfig检查看到的无线网卡
wlxfc221c500043  IEEE 802.11  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on
  • 前缀 wlx :代表这是一块 Wireless(无线)网卡,且使用的是 X (MAC 地址)进行唯一标识

  • 后缀 fc221c500043 : 无线网卡的 物理 MAC 地址(即 fc:22:1c:50:00:43

  • 软件堆栈安装:

安装无线相关软件包
sudo apt update
sudo apt install linux-firmware wpasupplicant network-manager

备注

现在 wap_supplicant 的软件包名被修改为 wpasupplicant 了!!! ( 文件查找 搜索提供文件的软件包名 )

无线网络软件堆栈

软件包名称

作用层级

用途

linux-firmware

物理芯片层

包含全球主流无线芯片(包括联发科 MediaTek、Intel、Realtek)的闭源固件(Firmware)。MT7921AU 网卡虽然被内核识别了,但在初始化射频时,必须把固件注入到网卡芯片的 SRAM 里,网卡才能真正发射微波信号

wpasupplicant

链路认证层

Linux 体系下 Wi-Fi 认证工具

network-manager

状态机管理层

包含 NetworkManager 守护进程以及命令行控制工具 nmcli 和终端图形工具 nmtui。它负责向上对接 Netplan,向下调度 wpa_supplicant,并自动化管理 DHCP 客户端和路由表

可选软件包:

安装可选的软件包(方便运维)
sudo apt install iw wireless-tools net-tools
可选的 无线网络软件堆栈

软件包名称

作用层级

用途

iw

无线底层配置工具(替代iwconfig)

查看无线网卡支持的物理频段(2.4GHz/5GHz)、最大发射功率,或者强制切换信道

wireless-tools

兼容配置工具(iwconfig和iwlist)

虽然被逐渐弃用,但很多老旧的开源运维脚本和检测工具依然深度依赖

net-tools

传统网络国内工具(ifconfig和route)

方便传统运维使用

  • 编辑 /etc/netplan/60-wireless.yaml (不要直接修改 /etc/netplan/50-cloud-init.yaml 该文件是 cloud-init 处理的)

配置 /etc/netplan/60-wireless.yaml
network:
  version: 2
  renderer: NetworkManager  # 声明底层的网络渲染引擎
  wifis:
    wlxfc221c500043:        # 严格对齐无线网卡名
      dhcp4: true
      optional: true        # 极为关键:防止开机时因为Wi-Fi没连上卡死死锁2分钟
      access-points:
        "你的Wi-Fi名称_SSID":
          password: "你的Wi-Fi密码"

备注

建议加上 optional: true 。因为服务器默认在开机时,如果发现有网卡处于“未联网”状态,系统会硬卡在开机界面等待网络就绪(通常卡 120 秒),直到超时才放行。加上这一行,即使 USB 无线网卡没插,或者 Wi-Fi 信号不好,系统也能畅通无阻地秒级开机。

  • 执行测试:

验证配置
sudo netplan try

这里可能会提示警告

验证配置出现WARNING
** (process:69013): WARNING **: 17:28:53.431: Permissions for /etc/netplan/60-wireless.yaml are too open. Netplan configuration should NOT be accessible by others.

** (generate:69015): WARNING **: 17:28:53.440: Permissions for /etc/netplan/60-wireless.yaml are too open. Netplan configuration should NOT be accessible by others.

** (process:69013): WARNING **: 17:28:53.760: Permissions for /etc/netplan/60-wireless.yaml are too open. Netplan configuration should NOT be accessible by others.

** (process:69013): WARNING **: 17:28:54.046: Permissions for /etc/netplan/60-wireless.yaml are too open. Netplan configuration should NOT be accessible by others.
Do you want to keep these settings?


Press ENTER before the timeout to accept the new configuration


Changes will revert in  27 seconds

这里的WARNING是因为配置文件中包含了无线的 SSID 名字,更核心的是写入了明文的 Wi-Fi 密码(Pre-Shared Key)。Linux 的系统安全原则要求:任何包含明文凭据(密码、私钥、Token)的配置文件,在物理层面上绝对不允许除了 root 以外的其他普通用户读取。

所以执行以下命令进行文件权限修订:

修订配置文件权限
# 1. 收紧权限,只允许 root 读写
sudo chmod 600 /etc/netplan/60-wireless.yaml

# 2. 对齐文件的属主和属组(确保绝对归属于 root)
sudo chown root:root /etc/netplan/60-wireless.yaml

现在不再WARNING,此时提示:

请在120秒内回车来接受配置,否则配置就会放弃回滚
Do you want to keep these settings?


Press ENTER before the timeout to accept the new configuration


Changes will revert in 111 seconds <- 这里按回车
Configuration accepted.
  • 最后生效:

执行生效
sudo netplan apply