跳至主要内容

ALFA 無線網絡卡在 Ubuntu 上的完整設定指南

學習目標(Learning goal):完成本指南後,你的 ALFA 無線網絡卡將能在 Ubuntu 中顯示(iw dev)、連上 Wi-Fi,並且——針對支援的晶片——可以切換到監聽模式(monitor mode)。 適用物件:初學者–中階 | 前置需求:Ubuntu 20.04+(Wi-Fi 6E 機型需 22.04+)、網路連線(安裝套件需要它!),以及你的 ALFA 無線網絡卡。

概念:兩種驅動程式

在碰終端機之前,先了解為什麼不同無線網絡卡的設定會不同。這裡有兩個世界:

  1. 內建於核心的晶片(MediaTek)——驅動程式已編譯進 Ubuntu。插上 → 即可使用。這涵蓋 MT7612U(AWUS036ACM)、MT7610U(AWUS036ACHM)與 MT7921AUN(AWUS036AXM / AWUS036AXML,需要 Ubuntu 22.04+ / 核心 5.18+)。
  2. DKMS 晶片(Realtek)——驅動程式不在核心內,所以你編譯一次,之後 DKMS 會在每次核心更新後自動重新建置。這涵蓋 RTL8812AU(AWUS036ACH)、RTL8811AU(AWUS036ACS)與 RTL8832BU(AWUS036AX / AWUS036AXER)。

前置需求

  • Ubuntu 20.04 或更新版本(用 lsb_release -a 確認)
  • 可用的網路(Wi-Fi 或乙太網路)以下載套件
  • 你的 ALFA 無線網絡卡與一條 USB-A 或 USB-C 傳輸線(AXML 使用 USB-C)
  • sudo 許可權

步驟 1:確認你的晶片

插上無線網絡卡,然後問 Ubuntu 它看到了什麼:

lsusb

預期輸出(尋找 MediaTek / Realtek 那一行):

Bus 001 Device 004: ID 0e8d:7612 MediaTek Inc. MT7612U 802.11a/b/g/n/ac 2T2R Wireless Adapter
Bus 001 Device 005: ID 0bda:8812 Realtek Semiconductor Corp. RTL8812AU 802.11a/b/g/n/ac 2T2R Wireless Adapter
  • 0e8d = MediaTek(內建於核心路徑)
  • 0bda = Realtek(DKMS 路徑)
  • 不確定?在相容性矩陣中交叉比對晶片表。

步驟 2:內建於核心的路徑(MediaTek——隨插即用)

如果你的無線網絡卡使用 MediaTek 晶片,什麼都不用安裝。驗證:

iw dev

預期輸出

phy#0
Interface wlan0
ifindex 3
addr 00:c0:ca:xx:xx:xx
type managed

看到 wlan0 了嗎?恭喜——驅動程式已生效。透過桌面 Wi-Fi 選單或 NetworkManager 連線:

nmcli device wifi connect "MySSID" password "my-passphrase"

預期輸出Device 'wlan0' successfully activated with 'MySSID'.

跳到步驟 4:驗證一切

步驟 3:DKMS 路徑(Realtek——一次性建置)

針對 RTL8812AU(AWUS036ACH)、RTL8811AU(AWUS036ACS)與 RTL8832BU(AWUS036AX / AXER),建置一次驅動程式。三者都遵循相同模式——安裝工具、複製 repo、執行安裝程式。

3.1 安裝建置工具

sudo apt update
sudo apt install -y build-essential dkms git

預期輸出:以 Setting up dkms ... 結尾且沒有錯誤。DKMS 就是在核心更新後負責重新編譯驅動程式的元件。

3.2 RTL8812AU(AWUS036ACH)

最經得起考驗的 repo 由 aircrack-ng 專案維護:

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

預期輸出

DKMS: install completed.

模組現在是 8812au,DKMS 會在每次核心更新時重新建置它——你可以當它不存在。

3.3 RTL8811AU(AWUS036ACS)

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

預期輸出DKMS: install completed.——模組名稱 8811au

3.4 RTL8832BU(AWUS036AX / AWUS036AXER)

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

預期輸出DKMS: install completed.——模組名稱 88x2bu

3.5 重新插上並檢查

拔下再重新插上無線網絡卡(或執行 sudo modprobe <module>),然後驗證:

iw dev

預期輸出:出現一行 Interface wlan1(如果它是你唯一的無線網絡卡則為 wlan0)。

你可能會想問——「哪個模組名稱對應我的無線網絡卡?」 對照你的晶片:8812au → AWUS036ACH、8811au → AWUS036ACS、88x2bu → AWUS036AX / AXER。驅動程式頁面 有更深入的各晶片細節。

步驟 4:驗證一切

三指令健康檢查:

ip link show | grep -E "^[0-9]+: wl" # interface exists?
iw dev # interface + phy info
iw reg get | head -20 # regulatory domain (affects power/channels)

預期輸出

3: wlan1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP
phy#1
Interface wlan1
ifindex 3
addr 00:c0:ca:xx:xx:xx
type managed

三個指令都有輸出 = 你的 ALFA 無線網絡卡已完全正常運作。

進階:監聽模式(支援的晶片)

監聽模式(monitor mode)讓無線網絡卡擷取某個頻道上的所有封包,而不只是自己的連線。在內建於核心的晶片上,這是兩個指令的工作:

sudo ip link set wlan1 down
sudo iw wlan1 set monitor none
sudo ip link set wlan1 up
iw dev

預期輸出type monitor 取代 type managed

⚠️ 重要type managed(預設值)表示驅動程式會過濾掉所有不是傳送給你的流量。type monitor 會停用該過濾器——突然之間會有大量流量變得可見。只能在你自己擁有或已明確授權測試的網路上執行。完整的封包注入工作流程請見 Kali 指南

常見錯誤(FAQ)

錯誤 / 症狀原因修復
lsusb 顯示無線網絡卡但沒有 wlanX 介面DKMS 模組未載入(Realtek)sudo modprobe 8812au(對應你的晶片),然後檢查 dmesg | tail
make dkms_install 失敗並顯示 "Kernel preparation unnecessary"缺少核心標頭檔sudo apt install linux-headers-$(uname -r) 後重試
apt upgrade 後無線網絡卡消失核心更新,DKMS 重建靜默失敗sudo dkms autoinstall 然後重新開機
重新開機後 iw dev 什麼都沒有(Realtek)模組不在自動載入清單中echo 8812au | sudo tee /etc/modules-load.d/alfa.conf
Wi-Fi 6E 無線網絡卡(AXML)在 20.04 上偵測不到核心對 mt7921u 來說太舊升級到 Ubuntu 22.04+(核心 5.18+)

參考資料