這個功能屬於偏進階功能,OpenWRT 有一定的專業性,
如果實在不知道怎麼做,請不要貿然嘗試
得利於 OpenWRT 第三方韌體,
可以在家用設備上有做出商用等級才有的功能,
由衷的讚嘆開源的偉大
什麼是 WiFi 漫遊 (Wi-Fi Roaming)?
問題痛點
你可能會遇到類似的情境,
當你有二顆以上的 Wi-Fi AP 路由器,來覆蓋不同的區域,
但你只要一組 SSID 就好(先討論 2.4GHz 與 5GHz 分開的情況)
你可能會先下意識的把主要路由器與子機路由器,設定了同一組 Wi-Fi SSID 與密碼。
主要 Wi-Fi AP 路由器(下稱主機)連上 ADSL,
其他顆 Wi-Fi AP 路由器(下稱子機)插上 LAN 網路線,關閉 DHCP Server,二台路由器變成一個內網。
但,這樣雖然可以用,但不完美。
假設裝置連接上第一顆 Wi-Fi,
如果裝置移動了,
離開第一顆 Wi-Fi AP 的範圍,進入第二顆 AP 的範圍,
裝置會斷線 AP 再重連接入第二顆 AP 路由器,
雖然接上也是同一個網路,但這會造成有點惱人的小問題。
這個時候你就需要 802.11r 與 802.11k/v 的
Wi-Fi Roaming 技術來「無縫」在不同 Wi-Fi AP 間切換。

802.11r(快速漫遊)
802.11r 又稱為「快速 BSS 轉換」(Fast BSS Transition, FT),主要解決無線裝置在不同存取點(AP)間切換時的延遲問題。傳統漫遊需重新進行完整的 802.1X 認證,可能耗時數百毫秒,導致語音或視訊通話中斷。802.11r 透過預先快取金鑰並簡化握手程序,將漫遊時間縮短至 50 毫秒以下,確保即時應用不受影響。此標準對企業環境中需要無縫移動的 VoIP 電話、視訊會議設備特別重要。
802.11k/v(智慧漫遊輔助)
802.11k(無線資源管理)讓 AP 向用戶端提供鄰近 AP 的資訊清單,使裝置能更快找到最佳切換目標,減少掃描所有頻道的時間與電力消耗。
802.11v(無線網路管理)則允許網路主動建議用戶端切換至負載較輕或訊號更佳的 AP,實現負載平衡並優化整體網路效能。
兩者常搭配 802.11r 共同運作,形成完整的智慧漫遊解決方案,提升大型無線網路的使用體驗。
配置

假設你的 Wi-Fi 路由器配置是這樣
- 主要 Wi-Fi AP 路由器主機 (192.168.1.1): WAN 孔連接著 ADSL 網路,DHCP Server 開啟
- 第二顆 Wi-Fi AP 路由器子機 (Dumb AP) (192.168.1.2): 主要延伸 主機 Wi-Fi 的訊號與範圍,
DHCP Server 關閉(DHCP 純靠主要 AP 路由器)
操作步驟
第一步:更換驅動套件 (一定要做)
這邊我推薦用 ssh 操作,不然在更換套件可能會遇到斷線問題比較麻煩
- 注意:移除時 WiFi 會斷線,建議使用電腦接網路線操作,或者操作完後重啟路由器。
ssh 的做法
OpenWrt 預設安裝的 wpad-basic 或 wpad-mini
不支援 完整的 802.11r/k/v 功能或 LuCI 選項。
必須先更換套件,換成全功能的版本。
請在「主機」與「子機」上都執行:
電腦分別用 ssh 連接路由器
ssh [email protected]
ssh [email protected]
更新套件清單
opkg update
查詢套件
opkg list-installed | grep wpad
記錄一下細節
# opkg list-installed | grep wpad
wpad-basic-mbedtls - 2025.08.26~ca266cc2-r1
我們主要目標是要找到 wpad-basic、wpad-basic-wolfssl 或 wpad-mini
我這邊是找到 wpad-basic-wolfssl 這個套件,
那我們用 wpad-wolfssl 套件取代它,
二個套件會衝突,不可同時安裝,所以在 ssh 指令列裡面做事比較方便。
我們移除 wpad-basic-mbedtls 套件,改安裝 wpad-wolfssl 套件
opkg remove wpad-basic-mbedtls && opkg install wpad-wolfssl
記錄一下細節
# opkg remove wpad-basic-mbedtls && opkg install wpad-wolfssl
Removing package wpad-basic-mbedtls from root...
Installing wpad-wolfssl (2024.09.15~5ace39b0-r2) to root...
Downloading https://downloads.openwrt.org/releases/24.10.4/packages/mipsel_24kc/base/wpad-wolfssl_2024.09.15~5ace39b0-r2_mipsel_24kc.ipk
Installing libwolfssl5.7.6.e624513f (5.7.6-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.4/packages/mipsel_24kc/base/libwolfssl5.7.6.e624513f_5.7.6-r1_mipsel_24kc.ipk
Configuring libwolfssl5.7.6.e624513f.
Configuring wpad-wolfssl.
再查詢一次,就是我們需要的套件了
# opkg list-installed | grep wpad
wpad-wolfssl - 2024.09.15~5ace39b0-r2
備註:新版 24.10 之後與 SNAPSHOTS 版本,
opkg 套件管理器改成用 apk 套件管理器了
查詢套件
apk info | grep wpad
記錄一下細節
# apk info | grep wpad
WARNING: opening from cache https://downloads.openwrt.org/snapshots/targets/mediatek/filogic/packages/packages.adb: No such file or directory
WARNING: opening from cache https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/base/packages.adb: No such file or directory
WARNING: opening from cache https://downloads.openwrt.org/snapshots/targets/mediatek/filogic/kmods/6.12.67-1-aa4948ece684816486d1fa5040ce0bb3/packages.adb: No such file or directory
WARNING: opening from cache https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/luci/packages.adb: No such file or directory
WARNING: opening from cache https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/packages/packages.adb: No such file or directory
WARNING: opening from cache https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/routing/packages.adb: No such file or directory
WARNING: opening from cache https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/telephony/packages.adb: No such file or directory
WARNING: opening from cache https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/video/packages.adb: No such file or directory
wpad-basic-mbedtls
(這些 WARNING 可以先不用理會,關注在搜尋結果即可)
移除wpad-basic-mbedtls 套件,改安裝 wpad-wolfssl 套件
apk del wpad-basic-mbedtls && apk add wpad-wolfssl
記錄一下細節
# apk del wpad-basic-mbedtls && apk add wpad-basic-wolfssl
(1/1) Purging wpad-basic-mbedtls (2025.08.26~ca266cc2-r1)
Executing wpad-basic-mbedtls-2025.08.26~ca266cc2-r1.pre-deinstall
OK: 22.4 MiB in 159 packages
(1/2) Installing libwolfssl5.8.4.e624513f (5.8.4-r1)
Executing libwolfssl5.8.4.e624513f-5.8.4-r1.post-install
(2/2) Installing wpad-wolfssl (2025.08.26~ca266cc2-r1)
Executing wpad-wolfssl-2025.08.26~ca266cc2-r1.post-install
OK: 25.3 MiB in 161 packages
安裝完成後,記得要 重啟路由器,
不然新的選單不會出現。
LuCI 網頁管理做法
- 登入 LuCI,進入 System (系統) -> Software (軟體)。
- 點擊 Update lists (更新清單)。
- 在 Filter 搜尋
wpad。 - 移除
wpad-basic、wpad-basic-wolfssl或wpad-mini(看你原本裝哪個)。- 注意:移除時 WiFi 會斷線,建議使用電腦接網路線操作,或者操作完後重啟路由器。
- 安裝
wpad(通常是指向wpad-wolfssl或wpad-openssl的完整版)。- 推薦安裝
wpad-openssl(或wpad-wolfssl)。
- 推薦安裝
- 安裝完成後,記得要 重啟路由器,
不然新的選單不會出現。
第二步:設定 802.11r (Fast Transition)
現在進入 LuCI 設定漫遊參數。請在「主機」和「子機」的 2.4GHz 和 5GHz 介面都要做一樣的設定。
- 進入 Network (網路) -> Wireless (無線)。
- 對你的 SSID 點擊 Edit (編輯)。
- 切換到 Wireless Security (無線安全) 分頁。
- 確認 Encryption (加密模式) 為
WPA2-PSK(相容性最好) 或WPA2/WPA3 Mixed(這邊要每台都一致)。
在 WLAN roaming 頁籤裡

設定以下參數:
-
勾選 802.11r Fast Transition (啟用快速切換)。
(Enables fast roaming among access points that belong to the same Mobility Domain) -
Mobility Domain (行動網域): 輸入一個 4 位數的十六進位碼,例如
4f57。
(4-character hexadecimal ID)
關鍵點: 主機和子機必須設定 完全一樣 的代碼。 -
Reassociation Deadline: 保持預設值 (通常是 1000) 即可。
(time units (TUs / 1.024 ms) [1000-65535]) -
FT Protocol (FT 協議): 選擇 FT over the Air (相容性較佳)。
-
勾選 Generate PMK locally (本地生成 PMK) 。
(When using a PSK, the PMK can be automatically generated. When enabled, the R0/R1 key options below are not applied. Disable this to use the R0 and R1 key options.)
說明:勾選後路由器會自動處理金鑰,不需要手動輸入繁瑣的 R0KH/R1KH 列表。
點擊 Save (儲存)。
第三步:啟用 802.11k 與 802.11v (輔助漫遊)
這兩個標準能幫助手機「提早」知道何時該切換,以及該切換到哪裡,避免手機死抓著遠處的訊號不放。

在同一個 在 WLAN roaming 頁籤裡 頁面中:
(需安裝完整版 wpad 才會出現這些選項)
802.11k (RRM) 的部分
- 勾選 802.11k RRM
(Radio Resource Measurement – Sends beacons to assist roaming. Not all clients support this.) - 勾選 Neighbour Report (預設會勾)
(802.11k: Enable neighbor report via radio measurements.) - 勾選 Beacon Report (預設會勾)
(802.11k: Enable beacon report via radio measurements.)
802.11v (WNM/BSS Transition) 的部分
-
(選填)勾選 WNM Sleep Mode (省電功能)。
(802.11v: Wireless Network Management (WNM) Sleep Mode (extended sleep mode for stations).) -
勾選 BSS Transition。
(802.11v: Basic Service Set (BSS) transition management.)
最後按 Save & Apply (儲存並套用)。
第四步:檢查頻道與功率 (最佳化)
為了避免干擾並讓漫遊更順暢:
-
頻道 (Channel):
- 主機與子機的 SSID、密碼、加密方式、Mobility Domain 都要一樣。
- 但是 頻道 (Channel) 建議錯開。
- 例如:主機 2.4G 設 Ch 1,子機 2.4G 設 Ch 6。主機 5G 設 Ch 36,子機 5G 設 Ch 44。
- 原因:若頻道相同,重疊區域的訊號會互相干擾,反而影響漫遊體驗。
-
發射功率 (Transmit Power):
- 不要盲目調到最大 (Max)。
- 適度降低功率(例如設為 20dBm 或 auto),讓兩個 AP 的訊號覆蓋範圍有適當的重疊(約 15-20%),但不要重疊太多,這樣手機才會願意切換。
總結檢查清單
| 設定項目 | 主機 (Master) | 子機 (Slave) | 備註 |
|---|---|---|---|
| 軟體套件 | wpad-wolfssl |
wpad-wolfssl |
必須移除 basic 版,改安裝 full 版 |
| SSID | MyWiFi (範例) | MyWiFi (範例) | 必須相同 |
| 密碼 | xxxxxxxx | xxxxxxxx | 必須相同 |
| 802.11r | 啟用 | 啟用 | |
| Mobility Domain | 4f57 (範例) |
4f57 (範例) |
必須相同 |
| FT Protocol | FT over the Air | FT over the Air | |
| 頻道 (Channel) | 1 (範例) | 6 (範例) | 建議不同 |
設定完成後,當你在兩個 AP 之間移動時,手機應該會顯示 WiFi 訊號滿格但不會斷線重連(不會出現 4G/5G 圖示),這就代表漫遊成功了。
若不換套件,只有 wpad-basic 套件能做到什麼程度?
簡單來說:只能做到「同名 WiFi」,無法做到「漫遊」。
如果你只保留預設的 wpad-basic,因為它閹割了 802.11r/k/v 協議的支援,你的網路狀況會變成這樣:
- 黏滯效應 (Sticky Client): 手機連著客廳的主機,當你走到臥室(子機旁)時,即使客廳訊號只剩一格、臥室訊號滿格,手機依然會死抓著客廳的訊號不放,直到完全斷線才會切換。
- 切換會斷線: 當手機終於決定切換時,因為沒有 802.11r 的快速握手協議,手機必須重新執行完整的 4 次握手驗證。這會導致 3~5 秒的網路中斷(Line 通話會斷掉、遊戲會掉線、影片會轉圈圈)。
- 若不換
wpad完整版,你設定相同的 SSID 意義不大,體驗會很差。強烈建議一定要更換。
Troubleshooting:如果路由器無法上網更新套件
如果你的 AP 路由器的症狀是「下面連接的電腦能上網(因為封包透過 Switch 直接轉發給主機),但路由器自己不能上網」。
這是因為你的 缺了「閘道器 (Gateway)」和「DNS」的設定。
因為你是用 LAN 接 LAN,OpenWrt 預設認為 LAN 是內部網路,通常不會去設定 Gateway。
你必須手動告訴 AP 路由器:「如果要下載軟體,請找主機幫忙。」
假設你的 主機 (Main Router) 的 LAN IP 是 192.168.1.1。
修改子機的 LAN 設定
-
登入子機的 LuCI。
-
進入 Network (網路) -> Interfaces (介面)。
-
找到 LAN,點擊 Edit (編輯)。
-
在 General Settings (一般設定) 頁面中,確認以下設定:
- IPv4 address (IPv4 位址): 應該已經設為固定 IP (例如
192.168.1.2),這是正確的,不要動它。 - IPv4 gateway (IPv4 閘道器): 這裡目前應該是空的,請填入主機 IP (例如
192.168.1.1)。 - IPv4 broadcast (IPv4 廣播): 留空即可。
- Use custom DNS servers (使用自訂 DNS 伺服器): 這裡也很重要。請填入主機 IP (
192.168.1.1) 或者 Google DNS (8.8.8.8)。 - 如果不填 DNS,路由器雖然連得到網路,但無法解析
downloads.openwrt.org的網址,一樣無法安裝軟體。
- IPv4 address (IPv4 位址): 應該已經設為固定 IP (例如
-
(選用檢查) 往下滑到 DHCP Server,確認它是勾選 Ignore interface (忽略介面/停用)。
-
點擊 Save (儲存)。
套用並測試
- 點擊右上角的 Save & Apply (儲存並套用)。
- 注意:如果你的子機 IP 和電腦不在同網段,改完可能會連不上管理頁面,請確保電腦 IP 是自動取得或手動設為同網段。
- 進入 Network -> Diagnostics (診斷)。
- 點擊 Ping (預設是 openwrt.org)。
- 如果有看到類似
64 bytes from ...的回應,代表子機已經可以自己上網了!
Troubleshooting:如果路由器跳出 SSL verify error
如果你的 AP 路由器跳出這個錯誤:
SSL verify error: unknown error
這個錯誤在 OpenWrt 的子機(AP 模式)上非常常見。
這通常不是網路不通,而是因為路由器的 「系統時間」跑掉了。
原因說明
OpenWrt 路由器通常沒有內建電池,斷電重啟後時間會重置(例如回到 2018 年或 1970 年)。
當你執行 opkg update 時,系統會檢查軟體源伺服器的 SSL 安全憑證。但憑證都有「有效期限」,
如果你的路由器認為現在是 1970 年,它會判定伺服器的憑證「尚未生效」,因此報錯並拒絕連線。
解決方式:透過 LuCI 同步瀏覽器時間
這是最快讓時間恢復正常的方法,不需要打指令。
- 登入子機的 LuCI 介面。
- 進入 System (系統) -> System (系統)。
- 找到 System Properties (系統屬性) 區塊。
- 你會看到 Local Time (本地時間) 可能顯示一個舊的日期。
- 點擊旁邊的 Sync with browser (與瀏覽器同步) 按鈕。
- 確認時間變正確後,點擊 Save & Apply。
- 再次嘗試執行
opkg update,應該就正常了。
解決方式:修正 NTP 設定
為了避免下次重開機又發生一樣的問題,你需要讓子機知道去哪裡自動對時。
- 進入 System (系統) -> System (系統) -> Time Synchronization (時間同步)。
- 勾選 Enable NTP client (啟用 NTP 客戶端)。
- NTP server candidates (NTP 伺服器候選):
- 因為 DNS 可能還沒完全穩,建議加入你的 主機 IP (例如
192.168.1.1) 作為第一順位 (前提是主機有開 NTP 服務,OpenWrt 主機預設都有開)。 - 或者加入 Google 的 NTP IP:
216.239.35.0。
- 因為 DNS 可能還沒完全穩,建議加入你的 主機 IP (例如
