
如何在 Kali Linux 與 Ubuntu 24.04 安裝 ALFA USB WiFi 驅動程式(2026 完整教學)
目錄
Linux USB WiFi 驅動安裝的關鍵在於晶片組。MT7612U 與 MT7921AUN 為核心內建驅動,RTL8812AU 需從 aircrack-ng 安裝外部驅動搭配 DKMS 使用。
要讓 USB WiFi 網路卡在 Linux 上正常運作,關鍵幾乎都在驅動程式。Windows 有廠商提供的安裝程式,Linux 則不同——系統使用核心模組(kernel module)來與硬體溝通,也就是由作業系統在開機時或需要時載入的編譯程式碼。理解這個機制,除錯就會變得清晰,驅動程式安裝也更有規律可循。
本教學涵蓋所有主要 ALFA Network USB WiFi 網路卡的晶片組,適用於 Kali Linux 2024/2025 和 Ubuntu 24.04 LTS。
Linux 上的 USB WiFi 驅動程式運作原理#
核心模組#
Linux WiFi 驅動程式是一個核心模組——副檔名為 .ko 的檔案,在開機時或需要時載入正在運行的核心。當你插入 USB 裝置,核心會讀取其 USB Vendor ID 和 Product ID,從資料庫中找到對應的模組並自動載入。
以 MediaTek MT7612U 等常見晶片組為例,這個過程是透明的:插入網路卡、模組載入、介面出現。但對於較新或較少見的晶片組,核心內並沒有對應模組,你就必須自行從原始碼編譯。
非主線(Out-of-Tree)驅動程式#
當驅動程式未被收錄於主線核心(稱為「非主線」或「外部」驅動程式)時,你需要:
- 下載驅動程式原始碼
- 針對目前執行中的核心標頭檔進行編譯
- 將編譯產生的
.ko檔案安裝至核心模組目錄 - 用
modprobe載入它
編譯步驟需要核心標頭檔已安裝,且版本必須與執行中的核心完全一致。這是驅動程式安裝失敗最常見的原因。
DKMS:動態核心模組支援#
單純執行 make install 只會針對當前核心編譯驅動程式。當 Kali 或 Ubuntu 更新核心時(這是常態),舊驅動程式就無法載入,你必須重新編譯。
DKMS 解決了這個問題——它將驅動程式原始碼註冊到一個系統背景程式,每當新核心安裝時,DKMS 會自動重新編譯所有已註冊的模組。對於任何需要非主線驅動程式的網路卡,這是推薦做法。
確認你的晶片組#
你需要的驅動程式完全取決於晶片組,而非網路卡的型號名稱。相同名稱但不同硬體版本的網路卡,可能使用不同的晶片組。
ALFA 型號與晶片組對照表#
| ALFA 型號 | 晶片組 | USB ID | 驅動程式 |
|---|---|---|---|
| AWUS036ACH | RTL8812AU | 0bda:8812 | aircrack-ng/rtl8812au |
| AWUS036ACM | MT7612U | 0e8d:7612 | mt76x2u(內建核心) |
| AWUS036AX | RTL8832BU | 0e8d:885a | OOK driver (<6.14) |
| AWUS036AXML | MT7921AUN | 0e8d:7961 | mt7921u(核心 5.18+) |
用 lsusb 確認網路卡型號#
插入網路卡後執行:
lsusb輸出範例:
Bus 003 Device 002: ID 0bda:8812 Realtek Semiconductor Corp. RTL8812AU 802.11a/b/g/n/ac
Bus 003 Device 003: ID 0e8d:7612 MediaTek Inc. MT7612U 802.11a/bgn/ac將 ID xx:xx 的值對照上方表格,確認你的晶片組。
準備系統環境#
無論你的晶片組是哪一種,請先安裝通用的編譯相依套件:
Kali Linux:
sudo apt update
sudo apt install -y \
git \
dkms \
build-essential \
libelf-dev \
linux-headers-$(uname -r)Ubuntu 24.04:
sudo apt update
sudo apt install -y \
git \
dkms \
build-essential \
libelf-dev \
linux-headers-$(uname -r) \
linux-headers-generic確認標頭檔已針對目前執行的核心安裝完成:
uname -r
# 範例:6.6.9-amd64
ls /lib/modules/$(uname -r)/build
# 應該存在——若不存在,表示標頭檔未安裝RTL8812AU 驅動程式(AWUS036ACH)#
RTL8812AU 需要非主線驅動程式。目前有兩個由社群維護的 fork 可供選擇,依作業系統決定。
方案 A:aircrack-ng/rtl8812au(Kali Linux — 推薦)#
此 fork 由 Aircrack-ng 團隊維護,對 Kali 有明確的相容性支援,並針對封包注入做了最佳化:
git clone https://github.com/aircrack-ng/rtl8812au
cd rtl8812au
make
sudo make install
sudo modprobe 88XXau確認介面是否出現:
ip link show | grep wlan
# 應顯示 wlan0 或類似名稱方案 B:morrownr/8812au-20210708(Ubuntu 24.04 — 推薦)#
morrownr fork 針對 Ubuntu 最佳化,內含整合 DKMS 的便利安裝腳本:
git clone https://github.com/morrownr/8812au-20210708
cd 8812au-20210708
sudo ./install-driver.sh安裝腳本會自動處理 DKMS 註冊。執行完成後:
# 重新開機以載入新模組
sudo reboot
# 重開機後確認
lsmod | grep 8812au手動 DKMS 註冊(任一 fork 皆適用)#
如果你偏好手動控制:
# 複製驅動程式(使用任一 fork)
git clone https://github.com/aircrack-ng/rtl8812au
# 從 Makefile 取得版本號
grep "^MODULE_VERSION" rtl8812au/Makefile
# 記下版本,例如 v5.6.4.2 → 使用 5.6.4.2
# 將原始碼複製到 DKMS 目錄
sudo cp -r rtl8812au /usr/src/rtl8812au-5.6.4.2
# 註冊、編譯、安裝
sudo dkms add -m rtl8812au -v 5.6.4.2
sudo dkms build -m rtl8812au -v 5.6.4.2
sudo dkms install -m rtl8812au -v 5.6.4.2
# 確認
dkms status
# 預期結果:rtl8812au/5.6.4.2, 6.x.x-kali-amd64: installed安裝成功後的 lsusb 與 lsmod 輸出#
lsusb
# Bus 001 Device 003: ID 0bda:8812 Realtek Semiconductor Corp. RTL8812AU ...
lsmod | grep 88XXau
# 88XXau 3461120 0MT7612U 驅動程式(AWUS036ACM、AWUS036ACX)#
MT7612U 晶片組是四款中最容易設定的,因為它的驅動程式自 Linux 核心 4.19 起就已內建。在 Kali Linux 2022+ 和 Ubuntu 20.04+ 上,完全不需要另外安裝驅動程式。
確認核心版本#
uname -r只要輸出為 4.19 或以上(任何現代 Kali 或 Ubuntu 皆符合),mt76x2u 模組就已可用。
載入模組#
sudo modprobe mt76x2u確認已載入:
lsmod | grep mt76x2u
# mt76x2u 86016 0
# mt76x2_common 61440 1 mt76x2u
# mt76_usb 40960 1 mt76x2u無線介面應立即出現:
ip link show
# wlan0: ...設定開機自動載入模組#
大多數系統偵測到網路卡時會自動載入模組。若要明確確保開機時載入:
echo "mt76x2u" | sudo tee -a /etc/modules無需編譯#
這是 MT7612U 晶片組的最大優勢:完全不需要編譯、不需要驅動程式原始碼、也不依賴核心標頭檔。在所有受支援的發行版上都能直接使用。對於不想花時間管理驅動程式的用戶,AWUS036ACM 是目前最即插即用的滲透測試網路卡。
MT7921AUN 驅動程式(AWUS036AXM、AWUS036AXML — Wi-Fi 6E)#
MT7921AUN 是 MediaTek 的 Wi-Fi 6E 晶片組。其 Linux 驅動程式 mt7921u 已在核心 5.18 版被合併進主線。
確認核心版本#
uname -rKali Linux 2022.2 及以後版本預裝核心 5.18 或更新——已支援。 Ubuntu 22.04 LTS 預裝核心 5.15——不支援,需升級核心。 Ubuntu 24.04 LTS 預裝核心 6.8——完整支援。
載入模組(核心 5.18+)#
sudo modprobe mt7921u確認:
lsmod | grep mt7921u
# mt7921u 57344 0
# mt7921_common 196608 1 mt7921uUbuntu 22.04:核心升級路徑#
如果你使用的是 Ubuntu 22.04 搭配核心 5.15,有兩種選擇:
方案 A:HWE 核心(推薦)
sudo apt install linux-generic-hwe-22.04
sudo rebootUbuntu 22.04 的 HWE(硬體啟用)核心為 6.2+,支援 mt7921u。
方案 B:升級至 Ubuntu 24.04
Ubuntu 24.04 LTS 預裝核心 6.8,完整支援 mt7921u。這是最乾淨的長期解決方案。
Wi-Fi 6E 與監聽模式現況#
截至 2026 年,mt7921u 驅動程式在 2.4 GHz、5 GHz 和 6 GHz 頻段上的受管理模式(連線至網路)已穩定運作。2.4 GHz 和 5 GHz 的監聽模式功能正常。6 GHz 監聽模式仍在持續完善中——在用於 6 GHz 評估前,請先確認 mt76 核心驅動程式 issue tracker 上的最新狀態。
DKMS:核心更新後保持驅動程式正常運作#
Kali Linux 和 Ubuntu 都會定期更新核心。若未使用 DKMS,每次核心更新後非主線驅動程式(RTL8812AU)就會失效,直到你手動重新編譯為止。
正確設定 DKMS 後,執行 apt upgrade 時重新編譯會自動完成。
確認 DKMS 正在管理你的驅動程式#
dkms status正確管理的輸出範例:
rtl8812au/5.6.4.2, 6.6.9-amd64: installed
8814au/5.8.7.4, 6.6.9-amd64: installed核心更新時的流程#
apt upgrade
→ 下載新核心套件
→ 觸發 DKMS hook
→ 針對新核心重新編譯 rtl8812au 原始碼
→ 安裝新的 .ko 檔案
→ 系統重開機進入新核心
→ 驅動程式自動載入若 DKMS 在更新過程中失敗(透過 dkms status 顯示「built」但非「installed」),手動重新安裝:
sudo dkms install rtl8812au/5.6.4.2 -k $(uname -r)除錯#
| 症狀 | 可能原因 | 解決方法 |
|---|---|---|
| 插入後沒有出現 wlan 介面 | 驅動程式未載入 | sudo modprobe 88XXau 或 sudo modprobe mt76x2u |
modprobe: FATAL: Module not found | 驅動程式未針對當前核心編譯 | 重新編譯驅動程式或執行 sudo dkms install |
| 介面出現後數秒消失 | 電源管理干擾 | sudo iwconfig wlan0 power off |
make 失敗:「linux/module.h not found」 | 核心標頭檔未安裝 | sudo apt install linux-headers-$(uname -r) |
make 失敗:版本不符 | 標頭檔與執行中的核心不符 | 對照 uname -r 與 ls /lib/modules,重新安裝對應標頭檔 |
| lsusb 顯示裝置但沒有介面 | 模組已載入但未建立介面 | 執行 dmesg | tail -30 查看錯誤訊息 |
| 監聽模式失敗:「Operation not supported」 | 驅動程式版本不支援監聽模式 | 改用 aircrack-ng fork,而非發行版內建的驅動程式 |
| aireplay-ng 注入測試:0% | 介面未進入監聽模式 | 用 iwconfig 確認,重新執行 airmon-ng start |
| 驅動程式正常但重開機後失效 | 模組未加入 initramfs | sudo update-initramfs -u 或使用 DKMS |
| 核心更新後 DKMS 編譯失敗 | 新核心缺少標頭檔 | sudo apt install linux-headers-$(uname -r) |
詳細診斷指令#
# 檢查所有已載入的無線模組
lsmod | grep -E "8812|8814|mt76|mt79"
# 查看 USB 和無線相關的核心訊息
dmesg | grep -iE "rtl|mt76|mt79|usb 802|wlan"
# 列出所有無線介面
iw dev
# 查看特定介面使用的驅動程式
ethtool -i wlan0 | grep driver
# 查看 USB 裝置詳細資訊
lsusb -v -d 0bda:8812 2>/dev/null | grep -E "idVendor|idProduct|iProduct"
# 確認所有已註冊模組的 DKMS 狀態
dkms status快速查詢:哪款網路卡用哪個驅動程式#
| 你的網路卡 | 晶片組 | Kali Linux | Ubuntu 24.04 |
|---|---|---|---|
| AWUS036ACH | RTL8812AU | aircrack-ng/rtl8812au | morrownr/8812au-20210708 |
| AWUS036ACM | MT7612U | 內建(mt76x2u) | 內建(mt76x2u) |
| AWUS036AX | RTL8832BU | OOK (<6.14) | N/A |
| AWUS036AXML | MT7921AUN | 內建(mt7921u,核心 5.18+) | 內建(mt7921u,核心 6.8) |
確保購買到原廠正品#
驅動程式問題有時源自仿冒品——這類產品可能回報錯誤的 USB ID,或使用與標示不符的劣質晶片組。從授權經銷商購買的正品 ALFA Network 網路卡,其行為與本文說明完全一致。
Yopitek 是 ALFA Network 的授權經銷商。歡迎瀏覽完整的 ALFA Network 產品目錄,確保你購買到附原廠保固、驅動程式相容性有保障的正品硬體。
常見問題
ALFA USB WiFi 網卡在 Linux 上需要安裝驅動嗎?
視晶片組而定。MT7612U 與 MT7921AUN 已內建核心,執行 modprobe 即可。RTL8812AU 需從 aircrack-ng GitHub 安裝外部驅動。
如何確認我的 ALFA 網卡使用哪種晶片組?
插入網卡後執行 lsusb,對照 USB ID 即可辨識。0bda:8812 為 RTL8812AU,0e8d:7612 為 MT7612U,0e8d:7961 為 MT7921AUN。
DKMS 是什麼?為什麼需要它?
DKMS 會在新核心安裝時自動重新編譯驅動模組。未使用 DKMS 時,每次核心更新後外部驅動都會失效,需手動重新編譯。
Ubuntu 22.04 能使用 MT7921AUN 網卡嗎?
預裝核心 5.15 不支援。需安裝 HWE 核心 linux-generic-hwe-22.04 升級至 6.2 以上,或升級至 Ubuntu 24.04 LTS。
make 編譯驅動時報錯 linux/module.h not found 怎麼辦?
核心標頭檔未安裝。執行 sudo apt install linux-headers-$(uname -r) 安裝與當前核心版本一致的標頭後重新編譯。
總結#
Linux WiFi 驅動程式安裝有一套簡單的決策流程:
- 用
lsusb搭配上方對照表確認晶片組 - MT7612U 或 MT7921AUN(核心 5.18+)? → 執行
modprobe,完成 - RTL8812AU?? → Clone 對應儲存庫,執行
make && sudo make install,啟用 DKMS 確保持久運作 - 有問題? → 查看除錯表、確認標頭檔與核心版本一致、檢查
dmesg
ALFA Network 網路卡的優勢在於:四款主要晶片組都有文件完整、積極維護的驅動程式解決方案,不會讓你陷入無支援的困境。