
Raspberry Pi 4 變酒店 Wi‑Fi 分享器:雙 radio 點處理登入頁
OpenWrt、Travelmate 同雙 radio 分工係今次改動重點
酒店 Wi‑Fi 最麻煩嗰刻,通常係手機連到、登入頁亦開到,偏偏 travel router 後面幾部裝置全部上唔到網。XDA 作者 Samir Makwana 今次拎返舊 Raspberry Pi 4,加一隻 USB Wi‑Fi adapter,再由 RaspAP 轉用 OpenWrt 同 Travelmate。按佢嘅經驗,呢套組合應付部分酒店 captive portal 順手好多,亦可以將一條酒店連線派畀手機、手提電腦同手錶。
Captive portal 點解會卡住分享器
Captive portal 會先扣起新裝置嘅上網權限,等系統或瀏覽器用 HTTP 探測連線時,再送去條款、房號或者登入頁。完成驗證後,酒店系統先會按 MAC address、IP、cookie 或 session 等資料放行。普通手機自己處理呢個流程唔難;travel router 隔住一層 NAT,加上登入頁有機會彈咗去錯嘅裝置,個 portal 就容易卡喺「Wi‑Fi 已連接、Internet 冇反應」嘅狀態。OpenWrt 對 captive portal detection 嘅說明亦提到,現代裝置通常會先發出 HTTP 探測,再由網關送去登入頁。
原本個 RaspAP 方案仲有另一個弱點:同一張 radio 同時做酒店 Wi‑Fi client 同私人 access point,兩份工作會互相牽制,穩定性亦好睇晶片同 driver 支援。RaspAP 自己嘅 AP-STA 文件都建議,想要可靠嘅 AP 加 client 模式,最好加第二隻 Wi‑Fi adapter。順帶一提,RaspAP 嘅 captive portal plugin 主要係畀你向自己個 AP 提供登入頁,唔等於識得代你處理酒店上游嗰個 portal,兩樣嘢好易混淆。
今次方案做啱咗咩
作者用 Pi 4 內建 radio 連酒店 Wi‑Fi,當成一部普通 client;TP-Link Archer T2U AC600 就轉做 AP,專門派私人 Wi‑Fi 畀身邊裝置。兩張 radio 各做一份工作,私人 Wi‑Fi 唔使跟住酒店 uplink 一齊停。OpenWrt 入面嘅 mwan3 再管理 Ethernet、酒店 Wi‑Fi、iPhone USB tethering 同 Android USB tethering,當主要連線斷咗,就按預設次序轉去後備來源。
處理登入頁嗰部分交畀 Travelmate。佢會偵測 captive portal、保持 uplink session,亦可以按個別 Wi‑Fi 呼叫自動登入 script。要留意,官方文件列出嘅現成 script 只覆蓋幾個指定酒店、電訊商同德國鐵路熱點,其他 portal 可能要手動登入或者自己寫 script。XDA 作者話佢遇到嘅登入頁少咗麻煩,但冇列出完整酒店名單,標題所講嘅「defeats」唔應該理解成所有酒店都保證過到。
設定門檻高過成品 router
今次用嘅 build script支援 Raspberry Pi 3、4 同 5,亦預先包好 Travelmate、mwan3 同多種 WAN 設定。不過要先喺另一部 x86 Linux 電腦編譯 image,再寫入 microSD。USB adapter 亦唔可以淨係睇產品名:同一型號可能換過晶片,而部分 Realtek 晶片要另外搵社群 driver。作者用嘅舊 adapter 就要手動加入 driver package。呢類 DIY 最大風險往往係出發前屋企試到,去到酒店先發現 portal、DNS 或 adapter driver 唔合作,所以手機 tethering 仍然要留做後備。
私人 AP 唔代表酒店 Wi‑Fi 變安全
裝好之後第一件事係改 OpenWrt admin 密碼、預設 SSID,同埋為私人 AP 開 WPA2 或 WPA3,唔好照用 script 預設嘅開放網絡。連酒店官方 SSID 前亦要向職員核對名稱,減低撞入假熱點嘅機會。登入完成先開 WireGuard、OpenVPN 或公司 VPN 會穩陣啲;部分 portal 要攔截 DNS 或 HTTP,VPN、加密 DNS 同擋廣告服務太早開,反而可能令登入頁出唔到。
Travelmate 有指定或者隨機 uplink MAC 嘅選項,但原文冇證明今次靠 MAC cloning 過關。亂換 MAC 可能令酒店當成新裝置,結果又要登入;真係要複製,只可用自己已獲授權裝置嘅 MAC,亦要先睇酒店條款。個 build script 仲列出 TTL 調整,用嚟減低上游偵測分享連線嘅機會,同樣唔代表酒店容許咁做。技術上做到,同獲准使用係兩回事。
CISA 嘅公共 Wi‑Fi 建議仍然適用:敏感資料只經 HTTPS 或可信 VPN 傳送,用完關掉自動連線。呢部 Pi router 可以減少逐部裝置登入,亦方便統一管理 VPN;佢保護到裝置同 Pi 之間嗰段私人 Wi‑Fi,酒店上游依然係你控制唔到嘅公共 Wi‑Fi。屋企本身有閒置 Pi 4、又肯花時間試 driver,呢個 project 幾實用;只為一次旅行臨急砌機,就要預埋除錯時間同手機後備連線。
參考來源
- XDA Developers — I built a travel router that actually defeats hotel Wi-Fi login pages — here's how — original report
- OpenWRT Raspi travel-router build script — 核對 build script 支援型號、雙 radio、多 WAN、TTL 調整同預設設定。
- Travelmate, a connection manager for travel routers — OpenWrt 官方文件,解釋 captive portal 偵測、自動登入 script、VPN hook 同 MAC 選項。
- AP-STA mode — RaspAP Documentation — 核對單一 radio 同時做 AP、STA 嘅限制,以及官方對第二隻 Wi‑Fi adapter 嘅建議。
- OpenNDS Captive Portal — 補充 captive portal detection、HTTP 探測同登入頁運作背景。
- Best Practices for Using Public WiFi — 公共 Wi‑Fi、HTTPS、自動連線同敏感資料傳送嘅安全建議。
本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。







