跳至主要内容

ALFA 無線網絡卡——疑難排解索引

排查鐵律(Diagnosis iron rule)先硬體 → 再驅動程式 → 最後設定。超過 80% 的「我的 ALFA 壞了」回報其實是電源問題、缺少 DKMS 重建,或核心更新的副作用——而不是無線網絡卡壞了。在責怪硬體之前,先依照下方的決策樹。

ALFA 網絡卡疑難排解決策樹——先硬體、再驅動、最後設定

問題分類索引

類別典型問題
偵測無線網絡卡不在 lsusb 中、沒有介面、重新開機後消失
驅動程式DKMS 建置失敗、模組未載入、dmesg 中的韌體錯誤
連線無法關聯、持續斷線、連結緩慢
監聽模式airmon-ng 失敗、注入測試失敗、沒有擷取到訊框
電源高負載下無線網絡卡失效、在一臺電腦可用但另一臺不行
法規頻道設定錯誤、TX 功率被限制、「5 GHz 頻道消失」

每顆晶片都有自己的深入探討頁面——把屬於你的加入書籤:

晶片無線網絡卡驅動程式頁面
MT7612UAWUS036ACMmt7612u
MT7610UAWUS036ACHMmt7610u
MT7921AUNAWUS036AXM / AWUS036AXMLmt7921aun
RTL8812AUAWUS036ACHrtl8812au
RTL8811AUAWUS036ACSrtl8811au
RTL8832BUAWUS036AX / AWUS036AXERrtl8832bu
RTL8821CUAWUS036EACSrtl8821cu

問題 1:無線網絡卡完全偵測不到(lsusb 為空)

症狀

已插上,LED 可能亮也可能不亮,lsusb 沒有顯示 Realtek/MediaTek 那一行。

診斷

lsusb
dmesg | tail -30

dmesg 中尋找 device descriptor read/64, error -71device not accepting address——典型的電源握手失敗。

根本原因

幾乎都是 USB 電源或傳輸線——尤其是高功率機型(AWUS036AXM/AXML、AWUS036AX)接到前面板連線埠或未供電的 hub 時。

修復

  1. 後方 USB 連線埠(或透過轉接頭使用 USB-C 連線埠)。
  2. 不同的傳輸線——某些便宜的 USB-C 傳輸線只能充電。
  3. 使用供電的 USB hub
  4. 在筆電上,拔掉其他高功率 USB 裝置。
  5. 如果在兩臺不同的電腦上仍然看不見,無線網絡卡有問題——請聯絡支援。

問題 2:lsusb 看得到,但沒有 wlanX 介面

症狀

lsusb 顯示無線網絡卡;iw dev / ip link 什麼都沒顯示。

診斷

dmesg | grep -iE "wlan|firmware|error"
lsmod | grep -iE "mt76|8812|8811|88x2|8821"

根本原因

兩個常見原因:

  • Realtek 晶片:DKMS 模組從未載入(或核心更新後建置失敗)。
  • MediaTek Wi-Fi 6E:核心比 5.18 舊(缺少 mt7921u)或韌體 blob 不存在。

修復

  • Realtek:sudo modprobe 8812au(對應你的晶片),並把它加入 /etc/modules-load.d/alfa.conf 讓它開機時自動載入。如果 modprobe 顯示 Module not found,重建:sudo dkms autoinstall
  • MediaTek:sudo apt install linux-firmware 然後重新開機。核心太舊?升級作業系統——請見相容性矩陣

問題 3:核心更新後 DKMS 建置失敗

症狀

apt upgrade 後「無線網絡卡不能用了」;dmesg 顯示 8812au: version magic ... should be ...

診斷

dkms status

如果你的模組顯示 Error! 或損壞的核心版本專案,那就是問題所在。

根本原因

驅動程式的 DKMS 配方無法針對新核心重建——通常是缺少標頭檔,或 repo 對全新核心來說太舊。

修復

  1. 安裝標頭檔:sudo apt install linux-headers-$(uname -r)
  2. 強制重建:sudo dkms autoinstall
  3. 仍然失敗?更新驅動程式 repo 並重新安裝:
    cd /opt/rtl8812au && sudo git pull && sudo make dkms_install
  4. 重新開機並再次檢查 dkms status——它應該把你的模組列為 installed

問題 4:監聽模式啟動了但注入測試失敗

症狀

airmon-ng start 成功、wlan0mon 存在,但 aireplay-ng --test 回報 0/30Failed

診斷

sudo aireplay-ng --test wlan0mon
sudo iw dev wlan0mon info # confirm it really is type monitor

根本原因

驅動程式建置時沒有正確的監聽/注入支援,你在一個沒有 AP 使用的頻道上(注入需要 AP beacon 來回覆), RF 環境是空的(隔離的實驗室)。

修復

  1. 鎖定有活躍 AP 的頻道:sudo iw dev wlan0mon set channel 6
  2. 重測。還是 0/30?用 aircrack-ng 驅動程式 repos 重建,它們預設啟用 monitor + VIF:
  3. 在無 RF 的區域,用手機熱點在同一個頻道上建立你自己的 AP。

問題 5:Wi-Fi 一直斷線或很慢

症狀

連結連上後每隔幾分鐘就斷;吞吐量遠低於等級標示。

診斷

iw dev wlan0 link # signal + tx rate
iw reg get | head -20 # regulatory domain

根本原因

  • 法規領域:如果 iw reg get 顯示 country 00(未設定),TX 功率會被限制在預設的 20 dBm 上限。
  • 省電:激進的 USB 電源管理會節流無線電。
  • 過熱:高功率無線網絡卡持續 TX。

修復

  1. 設定你的地區:sudo iw reg set TW(或你的國家程式碼)。
  2. 設定 TX 功率:sudo iwconfig wlan0 txpower 30(你領域的法定上限)。
  3. 停用省電:sudo iwconfig wlan0 power off
  4. AC1200+ 無線網絡卡優先使用 USB 3.0 連線埠——USB 2.0 會限制吞吐量。

問題 6:5 GHz 頻道消失

症狀

只看到 2.4 GHz 網路;iwlist wlan0 freq 沒有 5 GHz 專案。

根本原因

法規領域未設定或被限制(全新安裝時通常是 country 00),所以驅動程式拒絕 5 GHz 頻道。

修復

sudo iw reg set TW # replace with your country code
sudo ip link set wlan0 down && sudo ip link set wlan0 up

還是沒解決?

在放棄之前,收集這些確切資訊並聯絡我們(或驅動程式專案)——這是維護者協助你所需要的:

uname -r
lsusb
dkms status
dmesg | tail -50
iw dev

附上以上所有內容,再加上:你的無線網絡卡型號、作業系統/核心,以及輸出讓你意外的確切指令。還有一件事值得檢查——如果你在跑 Jetson、Raspberry Pi 或 Unitree 機器人,請看硬體整合指南;嵌入式主機板有自己的電源與驅動程式怪癖。