跳至主要內容

UniFi captive portal 設定指南

如何將 Purple captive portal 新增至 Ubiquiti UniFi:包含外部入口網站伺服器、控制器授權和 walled garden,並附有指向 Purple 逐步設定指南的連結以進行精確配置。

發佈於 更新於
📖 2 分鐘閱讀115 字數5 關鍵定義

Video overview

收聽此指南

查看播客逐字稿
Captive Portal for Ubiquiti UniFi - A Purple 技術簡報 [引言與背景資訊 - 約 1 分鐘] 歡迎收看 Purple 技術簡報系列。我是你們的主持人,今天我們要深入探討在 Ubiquiti UniFi 基礎架構上部署外部 Captive Portal 的細節 - 這是全球旅宿業、零售業和企業環境中部署最廣泛的網路平台之一。 如果您是使用 UniFi Cloud Gateways、Dream Machines 或 UniFi Network Application 的 IT 經理、網路架構師或系統整合商,這一集就是為您準備的。我們將逐步說明外部 Portal 機制在底層到底是如何運作的、如何正確配置它、常見的陷阱在哪裡,以及為什麼對於需要基本 Splash 頁面以外功能的場所來說,在 UniFi 部署之上疊加 Purple 是正確的架構決策。 讓我們開始吧。 [技術深挖 - 約 5 分鐘] 首先,讓我們瞭解當訪客連接到已啟用 Captive Portal 的 UniFi SSID 時,實際上發生了什麼事。 當訪客裝置與您的訪客 SSID 關聯時,UniFi 存取點(AP)會像往常一樣透過 DHCP 為其分配一個 IP 地址。但該裝置會立即被置於 UniFi 所謂的「待處理」(pending)狀態。在此狀態下,AP 內建的 DNSmasq 程序會攔截裝置發出的每一次 DNS 查詢,而不管裝置認為自己正在使用什麼 DNS 伺服器。AP 會將所有 DNS 流量重導向到自身。 同時,AP 會在連接埠 80 上運作一個輕量級的 HTTP 重導向器。當訪客的瀏覽器發出任何 HTTP 請求(請注意,這是關鍵字,是 HTTP,而非 HTTPS)時,重導向器就會立即回傳一個 302 重導向,將瀏覽器傳送到 Captive Portal Splash 頁面。這就是觸發 iOS 和 Android 裝置上「登入 WiFi」通知的機制。 現在,這就是內建 Portal 與外部 Portal 的區別變得至關重要的關鍵所在。使用內建的 UniFi Hotspot Portal,Splash 頁面直接由 UniFi Network Application 提供。它功能尚可、設定快速,但限制非常多。您只能獲得基本的密碼驗證、憑證和 Stripe 付款。沒有電子郵件擷取、沒有社群登入、沒有 GDPR 同意管理、沒有 CRM 整合,也沒有工作階段計數以外的實質分析。 當您配置外部 Portal 伺服器(External Portal Server)時 - 這正是我們今天關注的設定 - 您是在告訴 UniFi 控制器將訪客重導向到一個完全獨立的 Web 應用程式。在我們的案例中,那就是 Purple。您在「External Portal Server」欄位中輸入的 URL,就會成為所有那些 302 重導向的目的地。 以下是關於該重新導向 URL 的重要技術細節。當 UniFi 將訪客重新導向到您的外部入口網站時,它會在 URL 中附加幾個查詢參數。這些參數包括:AP MAC 位址、用戶端裝置 MAC 位址、Unix 時間戳記、用戶端原先嘗試造訪的原始 URL 以及 SSID 名稱。您的外部入口網站 - 在此情境中為 Purple - 會擷取這些參數,並使用它們來識別連線的裝置、呈現適當的歡迎頁面、處理驗證,然後向 UniFi Network Application 進行 API 呼叫,以授權該 MAC 位址。 該 API 呼叫是至關重要的交握程序。自 UniFi Network Application 9.1 及更新版本起,已提供具有適當金鑰驗證功能的官方 REST API。授權端點是對第一版 sites API 發送的 POST 請求,針對特定的用戶端 ID,並帶有 JSON 本文,其中可指定以分鐘為單位的時間限制、以百萬位元組(MB)為單位的資料使用量限制,以及以每秒千位元(kbps)為單位的速率限制。一旦控制器收到該授權,它就會將指令推送到 AP,訪客狀態就會從待處理變更為已授權,並獲得網際網路存取權限。 現在讓我們來談談 Walled Garden(圍牆花園),UniFi 將其稱為 Pre-Authorization Access(預先授權存取)。這是訪客在驗證之前可以造訪的網域和 IP 位址白名單。這至關重要,也是最常見的設定錯誤來源之一。 您的 walled garden 至少需要包含 Purple 入口網站的完整網域名稱(FQDN),以及 Purple 基礎設施所解析的 IP 位址或 CIDR 範圍。如果您使用社群登入 - Facebook、Google、Microsoft - 您也需要新增這些提供業者的 OAuth 端點網域。Google 的登入端點涵蓋多個 IP 範圍和多個網域,包括 accounts.google.com 和 oauth2.googleapis.com。Facebook 的登入基礎設施同樣需要多個條目。Purple 的說明文件提供了所需確切條目的維護清單,並且隨著這些提供業者更新其基礎設施,此清單會保持最新狀態。 有一個專屬於 UniFi 的關鍵特異之處,常常讓許多部署方案措手不及。AP 上的 HTTP 重新導向器僅攔截連接埠 80 上的純 HTTP 流量。現代裝置 - iOS、Android、Windows、macOS - 都會執行基於 HTTPS 的 Captive Portal 偵測。Apple 裝置會透過 HTTPS 存取 captive.apple.com。Android 裝置則會存取 connectivitycheck.gstatic.com。如果這些 HTTPS 請求沒有收到特定回應,裝置可能會認定沒有 Captive Portal,因而無法顯示登入提示。 解決方案是確保您的 walled garden 包含主要作業系統的 Captive Portal 偵測網域,並且您的 Purple 入口網站可透過具有有效、受信任 SSL 憑證的 HTTPS 進行存取。自我簽署的憑證會導致瀏覽器出現安全性警告,進而阻擋入口網站的載入。在實際生產部署中,這是不可妥協的要求。 另一個 UniFi 特有的考量是控制器可存取性。無論 UniFi Network Application 是在 Cloud Gateway、Cloud Key 還是自託管伺服器上執行,都必須能夠從 Purple 的基礎架構存取,API 授權調用才能成功。如果您的控制器位於 NAT 後方的私有網路中,您需要確保相關的 API 連接埠可供存取。對於自託管控制器,傳統 API 通常是連接埠 8443,而 9.1 版本中引入的新 API 則是標準的 HTTPS 連接埠 443。Purple 的支援文件指定了需要輸入存取權限到您控制器的確切 IP 範圍。 對於基於 RADIUS 的驗證 - 這適用於您將 Purple 與 WPA2-Enterprise 或 WPA3-Enterprise SSID 一起部署,而不是採用開放式訪客 SSID 模式時 - UniFi 的內建 RADIUS 伺服器支援標準的 802.1X EAP 方法。您可以在 Settings、Networks、RADIUS Servers 下設定 RADIUS 設定檔,然後在 SSID 設定中引用該設定檔。UniFi 還自 8.4 版本起支援透過 TLS 進行 RADIUS 傳輸(即 RADSEC),這會對 AP 和驗證伺服器之間的 RADIUS 流量進行加密。對於 RADIUS 流量需要經過公共網際網路的多站點部署,強烈建議使用 RADSEC。 [實作建議與常見陷阱 - 約 2 分鐘] 讓我為您提供與任何在 UniFi 上部署 Purple 的客戶一起逐步檢查的實作檢查清單。 第一,網路分段。您的訪客 SSID 必須位於專用的 VLAN 上,並與您的企業和 IoT 網路隔離。UniFi 讓這點變得簡單 - 在 Settings、Networks 中建立一個專用網路,指派一個 VLAN ID,並將您的訪客 SSID 與該網路建立關聯。在訪客網路上啟用用戶端隔離,以防止訪客之間的流量。 第二,控制器必須擁有有效的 FQDN 和受信任的 SSL 憑證。不要依賴 IP 地址。請使用適當的網域名稱,為其取得 Let's Encrypt 或商業憑證,並將 UniFi 設定為使用該憑證。這可以解決大部分的 HTTPS 重新導向問題。 第三,小心建立您的 walled garden 並進行測試。最少需輸入的項目包括:您的 Purple 入口網站網域及其 IP 範圍、iOS、Android 和 Windows 的 Captive Portal 偵測網域,以及您正在使用的任何 OAuth 提供者網域。請使用以前從未連線到該網路的裝置進行測試 - 快取的 DNS 和網路狀態可能會在測試期間掩蓋 walled garden 的缺口。 第四,對於 API 整合,請在 UniFi Network Application 中使用具有最低所需權限的專用本機管理員帳戶。請勿使用您的主要管理員憑證。如果您使用的是 Network Application 9.1 或更新版本,請使用 Control Plane、Integrations 下的新 API 金鑰機制 - 這樣做更安全,且不需要基於憑證的驗證。第五,請仔細考慮工作階段持續時間。UniFi 預設的訪客工作階段過期時間可能短至八小時。對於訪客可能會入住多晚的旅宿業部署,請在 Purple 入口網站設定中配置適當的工作階段持續時間,並確保在 API 授權呼叫中正確傳遞這些持續時間。 我最常看到的陷阱是將其部署在無法公開存取的自我託管控制器上。如果 Purple 無法連線至您的控制器來授權訪客,入口網站將會載入,但驗證會悄然失敗。在正式上線之前,請務必驗證來自 Purple 基礎架構的 API 連線能力。 [快速問答 - 約 1 分鐘] 這適用於 UniFi Dream Machine Pro 嗎?是的。所有 UniFi OS 主機 - UDM、UDM Pro、UDM SE、UCG Ultra、UCG-Max - 都支援 External Portal Server 配置。Network Application 會在裝置上執行。 我可以在單一 Purple 帳戶中將 Purple 用於多個 UniFi 站點嗎?是的。Purple 的多站點架構正是為此而設計的。每個場域在 Purple 中都配置為獨立站點,並對應到相應的 UniFi 站點。 我需要開啟 UniFi 閘道器上的防火牆連接埠嗎?您需要確保訪客 VLAN 流量可以透過連接埠 443 抵達 Purple 入口網站網域。控制器 API 連接埠也必須可從 Purple 的伺服器存取。Purple 的說明文件提供了特定的 IP 範圍。 那 WPA3 呢?UniFi 支援 WPA3 Personal 和 WPA3 Enterprise。Captive Portal 機制可在訪客網路上與 WPA3 Personal 搭配運作。WPA3 Enterprise 則使用 802.1X 和 RADIUS,這是不同的驗證流程。 [總結與後續步驟 - 約 1 分鐘] 總結來說:將 Purple 部署為 UniFi 上的外部 Captive Portal 是一個得到良好支援且架構健全的整合。關鍵步驟為:將您的訪客 SSID 配置為指向 Purple 入口網站 URL 的 External Portal Server 選項、建立涵蓋 Purple 基礎架構和您所使用的任何 OAuth 供應商的完整 Walled Garden、確保您的 UniFi 控制器擁有有效的 SSL 憑證且可從 Purple 的 API 伺服器存取,並為您的場域類型配置適當的工作階段持續時間。 商業效益顯而易見。內建的 UniFi 入口網站只提供您一個歡迎頁面。而 Purple 則為您提供一個符合法規、數據分析驅動的訪客體驗平台,該平台可與您的 CRM 整合、在符合 GDPR 同意的情況下收集第一方數據,並提供場域營運商和行銷團隊真正需要的客流量與停留時間分析。 如果您是進行大規模 UniFi 部署的 MSP 或系統整合商,Purple 的多站點管理和白牌功能使其成為您客戶的理想解決方案。 如需詳細的配置說明文件、Walled Garden IP 清單和 API 整合指南,請造訪 purple.ai。感謝您的聆聽。

核心系列的一部分:Captive Portal 指南 →

UniFi Network Hotspot ArchitectUbiquiti UniFi OS & Network Application 8.x

Ubiquiti UniFi captive portal and guest WiFi configurator

Generate UniFi Network Hotspot Manager settings, configure pre-authorization walled gardens, calculate guest VLAN subnet sizing, and validate cloud RADIUS accounting for seamless Purple deployment.

Target controller
UniFi Dream Machine Pro / SE
UniFi OS 3.x / Network 8.x
Native Hotspot Manager (External Portal Server)
Walled garden domains
9 FQDN rules
OS captive probe safe
Recommended subnet
/23 (509 IPs)
73% peak pool load
AAA interim accounting
300s
RFC 2866 accounting sync

Internal routing engine handles guest captive redirection with native gateway isolation.

Local IP or internal hostname used for controller API communication.

Redirection security parameters
UniFi Network Hotspot Manager Configuration Payload
{
  "hotspot_portal": {
    "authentication": "external_portal_server",
    "server_ip_or_hostname": "auth.purplewifi.net",
    "port": 443,
    "use_secure_portal": true,
    "redirect_mode": "original_url"
  },
  "controller_authorisation_profile": {
    "target_model": "UDM-Pro / UDM-SE / UDM-Enterprise",
    "controller_management_host": "192.168.1.1",
    "controller_api_port": 8843,
    "enable_https": true
  },
  "pre_authorization_allowed_hostnames": [
    "auth.purplewifi.net",
    "securelogin.purplewifi.net",
    "api.purplewifi.net",
    "cdn.purplewifi.net",
    "fonts.googleapis.com",
    "fonts.gstatic.com",
    "accounts.google.com",
    "graph.facebook.com",
    "linkedin.com"
  ],
  "radius_profile": {
    "profile_name": "Purple-Guest-RADIUS",
    "auth_server": "10.0.10.15",
    "auth_port": 1812,
    "acct_server": "10.0.10.15",
    "acct_port": 1813,
    "interim_update_interval_sec": 300,
    "dynamic_vlan_rfc3580": true,
    "default_guest_vlan": 20
  },
  "wireless_guest_profile": {
    "ssid": "Guest-WiFi",
    "client_isolation": true,
    "dhcp_recommended_lease_seconds": 7200,
    "recommended_cidr_scope": "/23",
    "per_client_bandwidth_limit_down_kbps": 10240,
    "per_client_bandwidth_limit_up_kbps": 3072
  }
}
Looking to deploy guest WiFi across enterprise UniFi hardware?
Review our architecture framework or talk directly to our wireless solutions engineering team.
Explore Captive Portal Guide
Useful? Link to this tool

captive portal 是訪客在上網前看到的登入頁面。在 Ubiquiti UniFi 上,存取點和 UniFi 網路控制器負責運行 WiFi;Purple 則負責運行該入口網站及其背後的第一方數據,而無需更換您現有的任何 UniFi 設備。

Ubiquiti UniFi 如何與 Purple 訪客 WiFi 協同運作

Purple 是一個雲端重疊系統。您的 UniFi 網路控制器會繼續運行 WiFi;Purple 則透過 UniFi 已具備的功能來運行訪客體驗。

  • **外部入口網站伺服器。**在 UniFi 的熱點管理器(Hotspot Manager)中,您將到達頁面指向 Purple,而非 UniFi 內建的頁面。新裝置會被重新導向至您的 Purple 歡迎頁面(splash page),訪客登入後,控制權會交還給 UniFi。
  • **控制器授權。**Purple 透過使用您為此目的建立的專用控制器登入憑證和公開位址,直接與您的 UniFi 網路控制器進行通訊,從而為每位訪客授權。如果控制器無法從外部公開存取,則可透過連接埠轉送(port forward)來建立連線。
  • **Walled garden。**UniFi 的預先授權規則允許歡迎頁面(splash page)以及任何付款或社群登入步驟,在訪客登入之前完成載入。

對於重複訪問的訪客,UniFi 的 SecurePass (Passpoint) 選項新增了由 RADIUS 支援的安全加密連線,因此已知使用者無需再次登入即可重新連線。

這就是整個運作模式:UniFi 傳輸封包並管理無線電,Purple 則擁有登入體驗和數據。由於它運行在標準外部網頁驗證和 RADIUS 上,因此在 Cisco Meraki、HPE Aruba、Ruckus、Juniper Mist、Ubiquiti UniFi、Cambium、Extreme Networks 和 Fortinet 上的運作方式完全相同。Purple 在設計上與硬體無關。

您需要準備的項目

  • 具有管理員權限的 UniFi 網路控制器(位於 Dream Machine、CloudKey 或您自己的伺服器上)。
  • 已設定好歡迎頁面(splash page)和登入流程的 Purple 場域。
  • 專用的 UniFi 控制器登入憑證和您控制器的公開位址,以便 Purple 授權訪客。

使用 Purple 進行設定

確切的設定、外部入口網站伺服器位址、熱點管理器(Hotspot Manager)到達頁面選項、預先授權網域、將 Purple 連結至控制器的場域設定(Venue Settings)以及選配的 SecurePass 配置,皆在 Purple 的支援指南中提供了逐步說明與精確的輸入值。

Ubiquiti UniFi 網路設定指南

請依照該指南進行配置。此頁面旨在說明各個部分如何協同運作,以便您瞭解每個步驟的作用。

您將獲得的效益

一旦訪客透過 Purple 登入,每次存取都會轉化為經驗證、自願同意的第一方數據:誰存取過、頻率如何,以及如何取得授權與其聯絡。這就是單純連接大眾的 WiFi,與建立您專屬行銷受眾的 WiFi 之間的差別。Purple 符合 GDPR 規範並通過 ISO 27001 認證,在超過 80,000 個線上運作的場域中提供 99.999% 的可用性。

關鍵定義

Captive portal

訪客在上網前看到的登入頁面。由 Purple 代管並運行;UniFi 則將裝置重新導向至該頁面。

Purple 在您的 UniFi WiFi 之上新增的訪客體驗層。

外部入口網站伺服器

一項 UniFi 設定,可將未經驗證的裝置傳送至外部代管的登入頁面,而非 UniFi 內建的頁面。

UniFi 的熱點管理器(Hotspot Manager)如何將訪客引導至 Purple 歡迎頁面(splash page)。

控制器授權

Purple 透過專用登入憑證,在其公開位址上與您的 UniFi 網路控制器進行通訊,以授權每個訪客工作階段。

Purple 如何讓已登入的訪客在 UniFi 上網。

Walled garden

一個簡短的允許清單,列出裝置在登入前可以存取的位址。

允許歡迎頁面(splash page)、付款和社群登入在預先驗證前載入。

SecurePass (Passpoint)

由 RADIUS 支援的加密 WiFi 連線,可讓已知的使用者重新連線而無需再次登入。

供重複訪客選擇的安全性層級。

常見問題

Ubiquiti UniFi 如何與外部 captive portal 進行整合?

UniFi Network Hotspot Manager 允許管理員將訪客驗證委託給外部傳送門伺服器。當未經驗證的訪客連線至訪客 SSID 時,UniFi 閘道會攔截初始 HTTP 流量,並將用戶端瀏覽器重新導向至位於 auth.purplewifi.net 的 Purple。一旦訪客完成驗證,Purple 就會呼叫 UniFi 控制器 API 來授權該用戶端 MAC 位址以進行網際網路存取。

UniFi 控制器與 captive portal 之間必須開啟哪些連接埠?

若要進行雲端或外部 captive portal 整合,UniFi Network 控制器必須可透過 TCP 連接埠 8843(或舊版安裝上的 TCP 連接埠 8443)接收授權 API 呼叫。為了確保安全的訪客瀏覽器重新導向,請確保在訪客預先授權防火牆設定檔中允許 TCP 連接埠 443 上的輸出 HTTPS 以及 UDP 連接埠 53 上的 DNS。

為什麼絕對不應該將作業系統的 captive 探測主機列入允許清單?

包括 iOS, Android, macOS 和 Windows 在內的作業系統會探測特定端點(例如 captive.apple.com 和 connectivitycheck.gstatic.com)以偵測受限網路。如果將這些探測主機名稱放在 UniFi 預先授權存取中,裝置將接收到未經攔截的 HTTP 200 回應,進而判定網際網路連線處於活動狀態,並隱藏自動登入瀏覽器強制回應視窗。

在 UniFi 上使用 Purple 需要哪些預先授權存取規則?

UniFi Hotspot Manager 要求在訪客登入前,先在預先授權存取中將 Purple 驗證和資產網域列入允許清單。這包括 auth.purplewifi.net、securelogin.purplewifi.net、api.purplewifi.net 和 cdn.purplewifi.net。如果啟用了社群登入或付費層級,則也必須將對應的 OAuth 和金流閘道端點列入允許清單。

RADIUS 帳務如何增強 UniFi 上的訪客 WiFi 管理?

設定指向 UDP 連接埠 1812(驗證)和 1813(帳務)上 Purple 的 RADIUS 設定檔可實現即時工作階段追蹤。將過渡帳務更新間隔設定為 300 秒,可讓 UniFi 存取點定期向 Purple 分析平台回報訪客連線時間、傳輸的位元組數和停留時間,而不會讓控制器資源過載。

對於訪客網路,建議使用什麼子網路大小和 DHCP 租約時間?

訪客網路會經歷高流動率和租約頻繁變動。高流量的場域應至少設定一個 /22 子網路(1,021 個可用 IP 位址),並將 DHCP 租約時間縮短至 2 小時(7,200 秒)。這可以防止在訪客流動高峰期耗盡位址池,同時用戶端裝置隔離可防止未經授權的橫向裝置通訊。

對於您的特定設置有任何疑問嗎?

我們的團隊與超過 80,000 個場域的場域營運商、IT 經理和網路工程師合作。立即預約 20 分鐘的通話,我們將向您展示其他與您相似的用戶是如何解決此問題的。