如何在 Starlink 上设置 Captive Portal:海事、交通和偏远地区站点指南
本技术指南阐述了如何绕过 Starlink 原生的 CGNAT 限制,部署安全且符合 GDPR 的访客 WiFi Captive Portal。内容涵盖海事、交通和偏远企业站点的网络架构、VLAN 隔离以及云端 RADIUS 集成。
收听本指南
查看播客转录

执行摘要
Starlink 向偏远地区提供高速卫星连接,但其原生的消费级路由器缺乏企业环境所需的安全性、身份验证和合规性控制。对于运营海上船舶、偏远建设营地或交通枢纽的 IT 经理而言,在 Starlink 上部署 Captive Portal 面临着一个特定的技术挑战:Starlink 在运营商级网络地址转换 (CGNAT) 后运行,这会破坏传统的入站 RADIUS 身份验证流程。
本指南详细介绍了如何绕过原生 Starlink 硬件,并使用企业级路由设备集成云管理 Captive Portal。通过实施仅出站的云 RADIUS 身份验证和严格的 VLAN 隔离,网络架构师可以提供安全、品牌化且符合法律合规的 Guest WiFi 体验,同时隔离关键的业务运营系统。Purple 提供了身份管理层,用于捕获第一方数据并执行带宽配额,确保单个访客不会耗尽卫星上行链路带宽。
技术深度剖析
CGNAT 限制
Starlink 使用 CGNAT 管理其 IPv4 地址空间。您的终端与其他订户共享一个公网 IP 地址,这意味着您无法接受入站连接,也无法配置传统的端口转发。
传统的本地 Captive Portal 控制器通常期望接收来自 RADIUS 服务器的入站身份验证回调。当部署在 Starlink 之后时,这些入站数据包会在 CGNAT 边界处被丢弃,从而导致登录流程中断。
架构上的解决方案是采用仅出站身份验证模型。控制器不再等待入站请求,而是向云原生 RADIUS 服务器发起安全的出站隧道。Purple 的平台使用由云数据库支持的 FreeRADIUS 服务器来处理此身份验证 [1]。现场控制器将客户端详细信息传递给 Purple,Purple 处理登录并通过已建立的出站连接返回 Access-Accept 数据包,从而完全绕过了 CGNAT 的限制。

绕过原生硬件
Starlink 路由器提供的是一个扁平的、未托管的网络。它不支持 802.1Q VLAN 标记、单用户带宽限制或企业级身份验证。
要部署 Captive Portal,您必须从路由路径中移除 Starlink 路由器。在标准套件上,这需要在 Starlink 应用中启用旁路模式并使用以太网适配器。对于使用 High Performance 或 Flat High Performance 套件的航海和企业部署,您需要将 Starlink 电源直接连接到企业路由器的 WAN 端口。
Purple 与所有主流企业硬件厂商无缝集成。此架构的经典硬件列表包括 Cisco Meraki、HPE Aruba、Ruckus、Juniper Mist 和 Ubiquiti UniFi。这些平台提供了配置 Walled Garden、标记 VLAN 以及将认证请求转发到 Purple 云 RADIUS 所需的功能。
Walled Garden 配置
在用户进行认证之前,其设备必须能够访问 Captive Portal 基础设施。这需要配置 Walled Garden - 一个在认证前可访问的允许域名列表。
当设备连接到开放 SSID 时,其内置的 Captive Network Assistant (CNA) 会尝试访问预定义的 URL 以检查互联网连接 [1]。当此请求被控制器拦截时,CNA 会启动一个伪浏览器以显示 Captive Portal。
您的 Walled Garden 必须允许访问 Purple 的 Splash Page 服务器、静态内容分发网络(Cloudfront)以及任何所需的社交登录端点(例如 Google 或 Microsoft Entra ID)。如果这些域名被阻止,CNA 将无法加载登录页面,用户将保持离线状态。
实施指南
1. 网络细分
切勿在共享的卫星链路上部署扁平网络。您必须使用 VLAN 隔离流量,以保护业务运行的完整性。
对于航海船只或远程站点,请至少实施三个 VLAN:
- VLAN 10 (Guest WiFi): 面向公众的网络,Captive Portal 部署于此。应用严格的单用户带宽限额(例如下行 5 Mbps / 上行 1 Mbps)以防止链路饱和。
- VLAN 20 (员工网络): 供船员或员工使用的安全网络,通过 WPA3-Enterprise 或安全密码进行认证。
- VLAN 30 (运营/IoT): 用于驾驶台导航、SCADA 系统或 POS 终端的高度受限网络。拒绝来自 VLAN 10 和 VLAN 20 的所有入站流量。
2. 控制器配置
配置您的企业路由器以指向 Purple 的 RADIUS 服务器。
- 设置 Purple 门户中提供的备用和主 RADIUS IP 地址。
- 配置 RADIUS 共享密钥。
- 将重定向 URL 设置为您的自定义 Purple Splash Page。
- 输入加载门户所需的 Walled Garden 域名。
3. 处理 SSL 证书(Cisco 特定)
如果您部署 Cisco Catalyst 9800 系列控制器,您可能会遇到初始重定向使用 HTTP(例如 http://192.168.0.2/login.html)的问题。现代桌面浏览器期望使用 HTTPS,并会显示“您的连接不是私密连接”警告,从而降低用户体验 [2]。要解决此问题,您必须在 Cisco WLC 上安装公开受信任的 SSL/TLS 证书。确保控制器上的虚拟 IPv4 主机名与证书中指定的公用名 (CN) 相匹配 [2]。这可以确保 Web 认证过程的安全,并满足浏览器的安全要求。
最佳实践
缓解 macOS CNA 限制
Apple 的 macOS 限制了 CNA 弹窗浏览器中的 Cookie。Purple 需要一个临时会话 Cookie 来在整个认证流程中维持登录状态 [1]。
当 macOS 用户连接时,CNA 弹窗会建议他们打开一个完整的系统浏览器(如 Safari 或 Chrome)并访问 neverssl.com [1]。这个纯 HTTP 网站可以干净地触发控制器的重定向,而不会受到 SSL 干扰,从而允许门户网站设置所需的 Cookie 并完成登录。确保您的支持人员了解这一行为,以便为用户提供帮助。
带宽管理
Starlink 提供了高带宽,但它是有限的。单个用户下载 50 GB 的游戏更新就可能导致整个场所的网速受到限制。
使用您的企业控制器来实施针对单用户的速度限制。Purple 平台允许您配置数据配额(例如,每天 1 GB)和时间限制。一旦用户达到配额,Purple 就会通过 RADIUS CoA (Change of Authorization) 撤销访问权限,或者提示用户购买高级套餐。

故障排除与风险缓解
Captive Portal 无法加载
如果设备连接时未出现 Captive Portal:
- 检查围墙花园 (Walled Garden): 确保所有 Purple 域名和社交登录端点均已列入白名单。如果所需的脚本被阻止,页面将会卡死。
- 验证 DNS: 客户端设备必须通过 DHCP 接收到有效的 DNS 服务器,以便解析围墙花园域名。
- 使用 HTTP 进行测试: 打开浏览器并访问一个 HTTP 网站(如 neverssl.com)以强制进行重定向。
认证失败
如果用户看到了门户网站,但在提交详细信息后无法上网:
- 检查 RADIUS 可达性: 确保您的企业路由器可以通过端口 1812 和 1813 访问 Purple 的 RADIUS IP。
- 验证共享密钥: RADIUS 密钥不匹配会导致服务器静默丢包。
- 确认出站 NAT: 确保路由器正确地将 RADIUS 数据包的源 IP 转换为 Starlink WAN IP。
投资回报率与业务影响
部署企业级 Captive Portal 可将 Starlink 从单纯的互联网管道转化为可管理的业务资产。
对于 酒店餐饮 和 交通运输 运营商而言,它提供了捕获第一方数据的机制。当每年有4.4亿次登录发生在Purple的网络中时,场所便能深入了解访客的人口统计特征、停留时间以及重复访问频率。这些数据直接输入到营销平台中,以推动客户忠诚度和收入增长。
此外,它还确保了合规性。提供开放式WiFi而不捕获明确的同意,会使组织面临数据隐私风险。Purple的Captive Portal可捕获有意识的选择性加入,从而确保您的网络运营符合GDPR、CCPA和ISO 27001标准。
参考文献
[1] Purple Support, "Captive Portal", https://support.purple.ai/hc/en-gb/articles/13856885831069-Captive-Portal [2] Purple Support, "Cisco WLC Captive Portal Certificate Setup", https://support.purple.ai/hc/en-gb/articles/31098410273693-Cisco-WLC-Captive-Portal-Certificate-Setup
关键定义
CGNAT (Carrier-Grade Network Address Translation)
互联网服务提供商(ISP)用于在多个客户之间共享单个公网 IP 地址的方法。
Starlink 使用 CGNAT,这会阻止 IT 团队配置端口转发或接受指向本地控制器的入站连接。
Captive Network Assistant (CNA)
嵌入在操作系统(iOS, Android, Windows)中的微型浏览器,它能检测互联网访问何时被阻断,并自动打开以显示登录页面。
CNA 是在访客连接 WiFi 时触发其手机上弹出窗口的机制,引导他们访问 Purple 的展示页面。
Walled Garden(围墙花园)
一种受限的网络环境,在用户通过身份验证之前,仅允许访问特定的、经批准的网页域名。
IT 团队必须配置 Walled Garden 以包含 Purple 的服务器和社交登录域名,否则 Captive Portal 将无法加载。
RADIUS (Remote Authentication Dial-In User Service)
一种提供集中化身份验证、授权和计费管理服务的网络协议。
Purple 使用托管在云端的 FreeRADIUS 服务器,在用户完成展示页面流程后对其进行安全的身份验证。
VLAN (Virtual Local Area Network)
一种对一组设备进行分组的逻辑子网,可将它们的流量与同一物理网络上的其他设备分离开来。
对于海事和偏远部署至关重要,用于将不可信的访客流量与关键的业务系统隔离开来。
Bypass Mode(旁路模式)
一种配置设置,可禁用家用路由器的路由和 WiFi 功能,使其转变为简单的桥接器。
在标准 Starlink 硬件上必须启用此模式,以允许企业级路由器管理网络并处理 Captive Portal 重定向。
Session Cookie
浏览器临时存储的一小段数据,用于在特定的浏览会话期间记住状态。
Purple 需要 session cookie 来维持登录状态。macOS CNA 会阻止这些 cookie,因此需要重定向到类似 neverssl.com 的 HTTP 网站。
授权变更 (CoA)
一种 RADIUS 扩展,允许服务器动态修改活动会话的授权属性。
Purple 使用此功能在用户超出其定义的流量配额时,立即撤销网络访问权限或限制网速。
应用实例
一家拥有 200 间客房的偏远生态旅馆安装了 Starlink 以提供访客互联网。在三天内,访客抱怨网速缓慢,运营商也注意到 Starlink 连接受到限制。IT 团队应该如何解决这个问题?
IT 团队必须绕过原生的 Starlink 路由器并安装企业级控制器(例如 HPE Aruba 或 Ubiquiti UniFi)。他们配置了两个 VLAN:一个用于员工,一个用于访客。在访客 VLAN 上,他们部署了 Purple 的 Captive Portal。他们将控制器配置为强制限制每位用户 5 Mbps 的网速。在 Purple 门户内,他们将每台设备的每日数据配额设为 1 GB。当访客达到限制时,其连接将被切断,以防占用他人带宽。
一家海事渡轮运营商部署了 Starlink。他们使用位于总部的本地 RADIUS 服务器配置了一个 Captive Portal。渡轮的本地控制器试图通过将 RADIUS 请求发送回总部来对访客进行身份验证,但所有登录均失败。为什么会这样,又该如何解决?
登录失败是因为 Starlink 使用了 CGNAT,这意味着渡轮没有专用的公网 IP。如果总部 RADIUS 服务器尝试向渡轮发送数据包,或者该架构依赖于入站连接,CGNAT 边界就会丢弃该流量。解决方案是迁移到类似 Purple 的云原生 RADIUS 架构。渡轮的控制器向 Purple 的云端 RADIUS 发起出站连接,从而完全绕过了 CGNAT 限制。
练习题
Q1. 您正在远程零售网点部署 Starlink。您已启用旁路模式并连接了 Cisco Meraki MX 路由器。用户连接到访客 SSID,但 Captive Portal 页面从未出现,屏幕保持空白。最可能的配置错误是什么?
提示:考虑设备在完成身份验证之前需要访问哪些域名。
查看标准答案
围墙花园(walled garden)配置不完整或缺失。在身份验证之前,设备必须能够访问 Purple 的展示页面服务器及任何相关的内容分发网络。如果这些域名未在 Meraki 控制器中加入白名单,则 Captive Network Assistant 无法加载该页面。
Q2. 一位海事 IT 总监希望使用其位于伦敦总部的现有本地 RADIUS 服务器,对配备 Starlink 的船只上的船员进行身份验证。为什么这种架构会失败,推荐的替代方案是什么?
提示:思考 Starlink 如何处理公网 IP 地址和入站路由。
查看标准答案
它会失败,因为 Starlink 使用 CGNAT,这意味着船只没有专用的公网 IP,无法接受来自伦敦总部的入站连接。推荐的替代方案是采用云原生 RADIUS 架构,由船只的本地控制器向云 RADIUS 服务器发起出站连接,从而绕过 CGNAT 的限制。
Q3. 一家酒店运营商报告称,使用 Apple MacBook 的宾客无法完成登录流程。弹窗出现了,但会话在身份验证完成前就中断了。Windows 和 Android 用户不受影响。支持团队应该如何指导 MacBook 用户?
提示:考虑 macOS 如何在 Captive Network Assistant 中处理 cookie。
查看标准答案
macOS 不允许在 CNA 浏览器会话中使用 cookie,而 Purple 需要 cookie 来维持登录状态。支持团队应指导 MacBook 用户打开完整的系统浏览器(如 Safari)并访问一个 HTTP 网站(例如 neverssl.com)。这将干净地触发重定向并允许设置 cookie。
继续阅读本系列
如何在 Starlink 上为 Guest WiFi 设置 Captive Portal
本技术指南阐述了如何绕过 Starlink 的原生 CGNAT 限制,部署符合 GDPR 合规要求的安全 Captive Portal 以用于 Guest WiFi。内容涵盖远程场所、海事运营商和活动空间所必需的网络架构、VLAN 隔离以及带宽管理策略。
Ruijie Captive Portal:使用 Purple 访客 WiFi 进行设置
介绍 Purple 的云端访客 WiFi 如何利用 Web 认证和 RADIUS(通过命令行配置)运行在 Ruijie RG 系列接入点之上,以及在何处可以找到具体的设置步骤。
设计 B2B Captive Portal:收集注册姓名与公司数据
本指南为 IT 经理和场所运营者提供了一个与供应商无关的技术框架,用于设计 B2B captive portals。它详细介绍了如何构建注册字段以捕获注册姓名和公司数据,在确保高完成率的同时,保持 GDPR 合规并构建账户级智能。