Skip to main content

How to Set Up a Captive Portal on Starlink: A Guide for Remote & Maritime Venues

This guide details how to bypass the native Starlink hardware and integrate a cloud-managed captive portal using enterprise routing equipment. You will learn how to overcome the CGNAT limitation, enforce VLAN segmentation, manage satellite bandwidth constraints, and ensure regulatory compliance.

📖 5 min read📝 1,227 words🔧 2 worked examples3 practice questions📚 8 key definitions

Listen to this guide

View podcast transcript
Speak in British English with a confident, authoritative, and conversational tone - like a senior consultant briefing a client. Measured pace, clear articulation, warm but professional. No filler words. Occasional brief pauses for emphasis: Welcome to the Purple Technical Briefing. I'm going to walk you through everything you need to know about setting up a captive portal on Starlink - specifically for remote venues, maritime operators, and anyone running guest WiFi where fibre simply isn't an option. [medium pause] Let's start with the problem. Starlink has genuinely changed the connectivity picture for venues that were previously stuck with slow, expensive satellite links or patchy 4G. A cruise vessel, a remote highland hotel, a construction site welfare unit, a festival site in a field - all of these can now get 100 to 220 megabits per second from a dish the size of a large pizza. That's remarkable. But here's the thing: raw connectivity is only half the job. The moment you put that connection in front of guests, passengers, or crew, you need authentication, access control, GDPR-compliant consent, and bandwidth management. Starlink doesn't give you any of that out of the box. That's where a captive portal comes in. And that's what we're going to build today. [medium pause] Section one: understanding the Starlink network constraints. Before you touch a router, you need to understand what Starlink actually gives you at the WAN interface. The standard Starlink dish connects to a proprietary router that handles DHCP and NAT. By default, you're behind carrier-grade NAT - what engineers call CGNAT. That means your WAN IP address is in the 100.64 to 100.127 range. It's not a public IP. You cannot receive inbound connections from the internet. And that matters enormously for captive portal architecture. The fix is bypass mode - sometimes called bridge mode. You enable this in the Starlink app under Settings, then toggle "Bypass Starlink WiFi router." Once enabled, the Starlink dish passes the CGNAT address directly to your enterprise router's WAN port. The Starlink router stops doing DHCP and NAT. Your router takes over. You're still behind CGNAT, but now you have full control of the routing layer. One critical point: if the Starlink dish is factory reset for any reason, bypass mode is disabled. You'll need to re-enable it. Build that into your site runbook. [medium pause] Now, Starlink offers three plan tiers relevant to venue operators. Standard gives you up to 100 megabits down, best-effort priority, and no static IP option. Business gives you up to 220 megabits, priority data allocation, and a static IP add-on. Maritime gives you the same speeds with global portability - essential if the vessel moves between ocean regions. For any multi-user venue, I'd recommend Business or Maritime as a minimum. Best-effort data on Standard means your guests get deprioritised whenever the satellite cell is congested. [medium pause] Section two: the architecture stack. Here's the four-layer stack you're building. Layer one is the Starlink uplink in bypass mode. Layer two is your enterprise router or firewall - Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Fortinet - any of these work. Layer three is VLAN segmentation at the switch or access point level. Layer four is the cloud captive portal, which handles authentication, consent, and analytics. Let me spend a moment on VLAN segmentation because it's non-negotiable. You need at minimum three VLANs. VLAN 10 for staff - this carries your POS systems, back-office applications, and management traffic. VLAN 20 for guests - this is the internet-only segment that hits the captive portal. VLAN 30 for IoT - cameras, smart thermostats, building management systems. These three networks must not be able to talk to each other. Inter-VLAN routing should be blocked at the firewall. A guest on VLAN 20 must never be able to reach your POS terminal on VLAN 10. That's not just good practice - it's a PCI DSS requirement if you're processing card payments anywhere on the same physical infrastructure. [medium pause] The captive portal itself sits in the cloud. When a guest connects to your guest SSID and opens a browser, the router intercepts the HTTP request and redirects it to the portal login page. The guest authenticates - via email, social login, or a voucher code - accepts your terms of service, and the portal signals the router to grant that MAC address internet access. The whole flow should complete in under 10 seconds on a mobile device. With Purple, that cloud portal integrates directly with Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme, and Fortinet. You configure the RADIUS or API integration once, and Purple handles the authentication handshake. No on-premise authentication server required. That's critical for remote venues where you cannot run a local RADIUS server. [medium pause] Section three: the CGNAT problem and how to solve it. Here's the challenge that catches most IT teams out. Standard captive portal architectures assume the cloud portal can reach back into your network. With CGNAT, that's impossible. Inbound connections are blocked. The solution is a reverse tunnel. Your router establishes an outbound connection to the cloud portal and keeps it open persistently. All authentication traffic flows through that tunnel. The cloud never needs to initiate an inbound connection. Purple's cloud overlay architecture handles this natively - you don't need to configure WireGuard or OpenVPN manually, though both are valid alternatives if you're running your own infrastructure. If you do need a static IP - for example, if you're running a RADIUS server on-site or need consistent IP allowlisting - Starlink Business and Maritime offer a static IP as an add-on. At the time of recording, that's available in most regions. Check Starlink's current plan pages for your specific territory. [medium pause] Section four: GDPR and data compliance. This is where remote and maritime venues often get caught out. The fact that your venue is on a vessel in international waters, or in a remote location, does not exempt you from GDPR if you're collecting data from EU residents. And if you're operating in UK waters post-Brexit, the UK GDPR applies. Your captive portal must present a specific, unticked consent checkbox for marketing communications. It must clearly state what data you're collecting, why, and how long you'll retain it. The terms of service must be accessible before the guest authenticates. And you must be able to demonstrate, on request, that a specific individual gave consent on a specific date and time. Purple is ISO 27001 certified, GDPR compliant, CCPA compliant, and Cyber Essentials certified. Every login event is logged with a timestamp, IP address, and consent record. That audit trail is what protects you if a regulator asks questions. [medium pause] Section five: bandwidth management. On Starlink, bandwidth is your most constrained resource. A single passenger streaming 4K video can consume 25 megabits per second continuously. On a vessel with 50 passengers and a 220 megabit connection, that's one person taking 11% of total capacity. You address this at the captive portal and router level. Set per-device bandwidth caps - for example, 5 megabits down and 2 megabits up per guest device. Implement fair-use policies that throttle after a daily data allowance. Use traffic shaping to prioritise web browsing and messaging over video streaming. And consider tiered access: a free tier for basic connectivity, a paid premium tier for streaming. That converts your WiFi from a cost line into a revenue stream. [medium pause] Now let me give you two real-world scenarios. Scenario one: a 120-cabin cruise vessel. The operator runs Starlink Maritime at 220 megabits. They deploy Cisco Meraki access points throughout the vessel with three VLANs - crew, passenger, and ship systems. Purple's captive portal handles passenger authentication via email or a cabin number lookup integrated with the PMS. Each passenger gets a 2-gigabyte daily allowance. Premium tier passengers get 10 gigabytes. The portal collects first-party email data for post-voyage marketing. Result: WiFi revenue covers the Starlink subscription cost, and the operator has a growing direct marketing list. Scenario two: a remote Highland hotel with no fibre. They run Starlink Business at 150 megabits average. HPE Aruba access points cover the main building and three outbuildings. Guests authenticate via email on Purple's portal. The hotel uses Purple's analytics to understand peak usage times and adjusts bandwidth policies accordingly. They've reduced guest WiFi complaints by 60% compared to their previous 4G bonding setup, according to their own operational data. [medium pause] Common pitfalls. Let me run through the five I see most often. One: forgetting to re-enable bypass mode after a dish reset. Document this in your runbook and set a monitoring alert on your router's WAN interface. Two: not blocking inter-VLAN routing. Every deployment I've reviewed that had a security incident had this misconfigured. Check it twice. Three: using HTTP redirect for the captive portal on a network where guests are using HTTPS-first browsers. Modern browsers default to HTTPS. Your router needs to handle the HTTPS intercept correctly, or guests will see certificate errors before they reach the portal. Purple's portal handles this, but your router configuration needs to be correct. Four: not testing on iOS and Android separately. Apple's Captive Network Assistant and Android's network probe behave differently. Test both before go-live. Five: ignoring latency. Starlink's LEO constellation delivers 20 to 40 millisecond latency - far better than traditional geostationary satellite. But during handoffs between satellites, you can see brief spikes. Your captive portal timeout settings need to account for this. Set session keepalive intervals to 60 seconds or less. [medium pause] Rapid-fire questions. Do I need a static IP for a captive portal on Starlink? No, if your portal uses a cloud-hosted architecture with reverse tunnelling. Yes, if you're running on-premise RADIUS. Can I run multiple SSIDs on Starlink? Yes - your enterprise access points handle SSID creation. Starlink in bypass mode just provides the uplink. You can run as many SSIDs as your access points support. Does Purple work with Starlink out of the box? Yes. You configure bypass mode on the Starlink dish, connect your supported access points, and point the RADIUS or API integration at Purple's cloud. The portal is live within the hour. What happens if the Starlink connection drops? Purple's portal caches active sessions locally on the router for a configurable period - typically 24 hours. Guests who are already authenticated stay online. New authentications queue until connectivity restores. [medium pause] To summarise. Starlink gives you the pipe. Your enterprise router in bypass mode gives you control of the routing layer. VLAN segmentation isolates your guest, staff, and IoT traffic. A cloud captive portal - Purple's, in this case - handles authentication, GDPR consent, bandwidth policy, and first-party data collection. The CGNAT constraint is solved by reverse tunnel architecture, not by static IP. And bandwidth management at the portal level is what keeps your Starlink connection usable for everyone. If you're evaluating this for your venue, the next step is to check which access point hardware you're running - Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme, or Fortinet - and confirm Purple's integration documentation for that platform. You can find the full technical guide at purple.ai, and the Purple team can walk you through a proof-of-concept configuration for your specific site. Thanks for listening. I'll see you in the next briefing.

header_image.png

Executive Summary

Starlink delivers 220 Mbps connectivity to locations where fibre cannot reach, fundamentally altering the networking landscape for remote and maritime venues. However, raw connectivity is insufficient for public-facing environments. When you deploy Starlink for guests, passengers, or crew, you must implement authentication, access control, GDPR-compliant consent, and bandwidth management. The native Starlink router provides none of these capabilities.

This guide details how to bypass the native Starlink hardware and integrate a cloud-managed captive portal using enterprise routing equipment. You will learn how to overcome the Carrier Grade NAT (CGNAT) limitation, enforce VLAN segmentation, manage satellite bandwidth constraints, and ensure regulatory compliance.

By implementing this architecture, venue operators convert an unmanaged internet pipe into a secure, segmented network that captures first-party data and protects the core business infrastructure.

Technical Deep-Dive

The CGNAT Constraint

The primary technical hurdle when deploying a captive portal on Starlink is Carrier Grade NAT (CGNAT). The standard Starlink dish connects to a proprietary router that handles DHCP and NAT. By default, the WAN IP address assigned to your equipment falls within the 100.64.0.0/10 range. Because this is not a public IP address, your router cannot receive inbound connections from the internet.

Standard captive portal architectures often assume the cloud portal can reach back into your network to authenticate users or update access control lists. With CGNAT, inbound connections fail.

To resolve this, you must configure the Starlink dish in Bypass Mode (often called bridge mode). In Bypass Mode, the Starlink router functions are disabled, and the dish passes the CGNAT address directly to your enterprise router's WAN port. Your enterprise router then takes full control of the routing layer.

architecture_overview.png

Reverse Tunnel Architecture

With the enterprise router handling traffic, the CGNAT inbound restriction remains. The solution is a reverse tunnel architecture. Your router establishes an outbound connection to the cloud portal and maintains it persistently. All authentication traffic flows through this established tunnel. The cloud infrastructure never needs to initiate an inbound connection.

Purple's cloud overlay architecture handles this natively. You do not need to configure manual VPN tunnels. If your deployment requires a static IP for legacy on-premise RADIUS servers or strict IP allowlisting, Starlink Business and Maritime plans offer a static IP as a paid add-on.

Bandwidth Constraints and Traffic Shaping

Satellite bandwidth is a shared, constrained resource. A single user streaming 4K video can consume 25 Mbps continuously. On a vessel with 50 passengers sharing a 220 Mbps Starlink connection, one user can consume 11% of the total capacity.

You must address this at the captive portal and router level through aggressive traffic shaping:

  • Per-Device Caps: Restrict individual guest devices to 5 Mbps download and 2 Mbps upload.
  • Fair-Use Policies: Implement daily data allowances (e.g., 2GB per 24 hours).
  • Application Control: Prioritise web browsing and messaging protocols over video streaming and peer-to-peer file sharing.
  • Tiered Access: Offer a free tier for basic connectivity and a paid premium tier for streaming, converting the WiFi infrastructure from a cost centre into a revenue stream.

comparison_chart.png

Implementation Guide

Follow these steps to deploy a secure captive portal over Starlink using enterprise hardware.

Step 1: Enable Bypass Mode

  1. Install the Starlink hardware and verify connectivity using the native router.
  2. Open the Starlink mobile application and navigate to Settings.
  3. Select Bypass Starlink WiFi router and confirm.
  4. Connect the Starlink Ethernet adapter to the WAN port of your enterprise router (Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme, or Fortinet).

Note: If the Starlink dish is factory reset, Bypass Mode is disabled automatically. Document this in your site runbook and configure a monitoring alert on your router's WAN interface.

Step 2: Configure VLAN Segmentation

You must isolate guest traffic from your core business systems. Configure at least three VLANs on your core switch and access points:

  • VLAN 10 (Staff): Carries POS systems, back-office applications, and management traffic.
  • VLAN 20 (Guest): The internet-only segment that redirects to the captive portal.
  • VLAN 30 (IoT): Isolated network for cameras, smart thermostats, and building management systems.

Configure firewall rules to block all inter-VLAN routing. A guest device on VLAN 20 must never be able to ping a POS terminal on VLAN 10. This segmentation is a strict requirement for PCI DSS compliance.

Step 3: Deploy the Cloud Captive Portal

  1. Configure your access points to broadcast the Guest SSID on VLAN 20.
  2. Set the authentication method to external RADIUS or use the vendor's API integration.
  3. Point the authentication servers to Purple's cloud infrastructure.
  4. Configure the walled garden (allowlist) to permit traffic to Purple's domains before authentication completes.
  5. Design the splash page in the Purple portal, ensuring the branding aligns with your venue and the terms of service are clearly visible.

Step 4: Test the User Flow

Test the authentication flow on both iOS and Android devices. Apple's Captive Network Assistant (CNA) and Android's network probe behave differently. Verify that the splash page loads within 10 seconds and that the device receives internet access immediately after authentication.

Best Practices

  • HTTPS Intercept: Ensure your router handles HTTPS interception correctly. Modern devices default to HTTPS. If the router cannot redirect HTTPS requests cleanly, guests will encounter certificate errors before reaching the portal.
  • Session Keepalive: Starlink's Low Earth Orbit (LEO) constellation delivers 20 to 40 millisecond latency, but brief spikes occur during satellite handovers. Set your captive portal session keepalive intervals to 60 seconds or less to prevent premature disconnects.
  • Offline Caching: Configure your router to cache active sessions locally. If the Starlink connection drops temporarily, guests who are already authenticated will stay online when connectivity restores, rather than being forced to log in again.

Troubleshooting & Risk Mitigation

Failure Mode Root Cause Mitigation
Captive portal fails to load Walled garden misconfiguration Verify that all required Purple domains and CDN endpoints are added to the pre-authentication allowlist on the router.
Double NAT errors Bypass Mode disabled Check the Starlink app to confirm Bypass Mode is active. A power surge or manual reset may have reverted the dish to default settings.
Slow guest speeds Unrestricted bandwidth Enforce per-device bandwidth limits (e.g., 5 Mbps) and block high-bandwidth applications like BitTorrent at the firewall.
Security audit failure Inter-VLAN routing enabled Audit firewall rules to ensure traffic from the Guest VLAN cannot route to the Staff or Management VLANs.

ROI & Business Impact

Deploying a managed captive portal on Starlink transforms a raw internet connection into a measurable business asset.

For a 120-cabin cruise vessel running Starlink Maritime at 220 Mbps, raw access provides no commercial return. By deploying Cisco Meraki access points and Purple's captive portal, the operator can enforce a 2GB daily allowance for standard passengers while upselling a 10GB premium tier. The resulting WiFi revenue covers the $250+ monthly Starlink subscription cost. Furthermore, the portal collects fully compliant first-party email data, expanding the operator's direct marketing list for future voyages.

In a remote hotel environment, deploying a portal with strict bandwidth policies reduces guest complaints regarding slow WiFi by up to 60%, as heavy users are prevented from monopolising the satellite link.

Key Definitions

Bypass Mode

A configuration setting that disables the native Starlink router's DHCP and NAT functions, passing the WAN IP directly to a third-party enterprise router.

Required when integrating enterprise networking equipment with a Starlink dish to avoid double NAT and routing conflicts.

CGNAT (Carrier Grade NAT)

A method used by ISPs to share a single public IP address among multiple customers. The customer's router receives a private IP address (typically 100.64.0.0/10).

Starlink uses CGNAT by default, which prevents inbound connections from the internet and requires reverse tunnel architectures for cloud management.

VLAN (Virtual Local Area Network)

A logical subnetwork that groups a collection of devices from different physical LANs.

Used to isolate guest WiFi traffic from staff and IoT networks, ensuring security and compliance.

Captive Portal

A web page that a user of a public access network is obliged to view and interact with before access is granted.

Used to enforce terms of service, collect marketing data, and authenticate users on guest WiFi networks.

Walled Garden

A limited environment that controls the user's access to web content and services before they have fully authenticated.

Required to allow guest devices to reach the cloud captive portal and authentication servers before they are granted full internet access.

RADIUS

A networking protocol that provides centralized Authentication, Authorization, and Accounting management for users who connect and use a network service.

The underlying protocol used by enterprise access points to communicate with the cloud captive portal to verify user credentials.

Traffic Shaping

The manipulation and prioritization of network traffic to reduce the impact of heavy users or latency-sensitive applications.

Essential on Starlink networks to prioritize web browsing over high-bandwidth activities like video streaming.

First-Party Data

Information a company collects directly from its customers and owns.

Captured via the captive portal login process (e.g., email addresses) and used for direct marketing and loyalty campaigns.

Worked Examples

A 120-cabin cruise vessel running Starlink Maritime at 220 Mbps needs to provide passenger WiFi without degrading ship operations. They require a mechanism to monetise the connection and collect marketing data.

The operator deploys Cisco Meraki access points throughout the vessel with three strict VLANs: crew, passenger, and ship systems. Purple's captive portal handles passenger authentication via email or a cabin number lookup integrated with the PMS. Each passenger receives a 2GB daily allowance. Premium tier passengers can purchase a 10GB allocation. The portal collects first-party email data for post-voyage marketing.

Examiner's Commentary: This approach solves the bandwidth constraint through hard daily limits while generating direct revenue. The VLAN segmentation ensures passenger traffic cannot compromise critical ship systems. The PMS integration provides a frictionless login experience.

A remote Highland hotel with no fibre infrastructure runs Starlink Business at 150 Mbps. Guests frequently complain about slow speeds during the evening, and the hotel has no visibility into who is using the network.

The hotel deploys HPE Aruba access points across the main building and outbuildings. They configure the Starlink dish in Bypass Mode and connect it to an Aruba gateway. Guests authenticate via email on Purple's portal. The hotel enforces a strict 5 Mbps per-device bandwidth cap and uses Purple's analytics to monitor peak usage times.

Examiner's Commentary: By implementing per-device throttling, the hotel prevents individual guests from monopolising the 150 Mbps link during peak evening hours. The email authentication captures first-party data for future direct booking campaigns, reducing reliance on OTAs.

Practice Questions

Q1. A remote mining camp has deployed Starlink Business. They have connected a Cisco Meraki MX firewall to the Starlink router. Guests can connect to the WiFi, but the captive portal page times out and fails to load. What is the most likely cause?

Hint: Consider how the Starlink hardware handles routing by default and what the Meraki firewall requires to manage traffic effectively.

View model answer

The Starlink dish has not been placed in Bypass Mode. As a result, the network is suffering from double NAT (the Starlink router and the Meraki firewall are both attempting to perform Network Address Translation). The administrator must use the Starlink app to enable Bypass Mode, allowing the Meraki firewall to receive the CGNAT IP directly and manage the routing and captive portal interception.

Q2. You are deploying a captive portal for a hotel using Starlink. You have configured Bypass Mode and VLAN segmentation. During testing, you notice that Apple devices prompt the user to log in immediately, but some Android devices show a certificate error when the user tries to browse to a secure website before authenticating. How do you resolve this?

Hint: Think about how modern browsers handle initial connection requests and what the router must do to intercept them cleanly.

View model answer

The enterprise router is not configured to handle HTTPS interception correctly for the captive portal redirect. Modern browsers default to HTTPS. When the user attempts to visit an HTTPS site before authenticating, the router intercepts the traffic and presents its own certificate, which the browser rejects as invalid. You must ensure the router's captive portal settings are configured to use a valid SSL certificate for the redirect, or rely on the OS-level network probes (like Apple's CNA) which use HTTP endpoints to trigger the portal automatically.

Q3. A maritime operator complains that their Starlink Maritime connection (220 Mbps) becomes unusable every evening. They currently provide an open, password-free guest network. What three specific configurations should you implement on the enterprise router and captive portal to resolve this?

Hint: Focus on controlling how much data individual users can consume and prioritising critical traffic types.

View model answer
  1. Implement a captive portal requiring authentication to track and manage individual users. 2. Enforce per-device bandwidth caps (e.g., 5 Mbps down / 2 Mbps up) to prevent a single user from monopolising the connection. 3. Apply traffic shaping rules at the firewall to prioritise web browsing and messaging protocols while throttling or blocking high-bandwidth applications like video streaming and P2P file sharing.

Continue reading in this series

Hotel Guest WiFi Management: Integrating PMS, Portals, and Brand Standards

This technical guide details how to architect enterprise-grade hotel WiFi networks, focusing on VLAN segmentation, PMS integration for automated session management, and captive portal optimisation for GDPR-compliant data capture.

Read the guide →

Captive Portal Best Practice: Designing for High Conversion and Compliance

This technical guide gives IT managers, network architects, and venue operations directors a complete blueprint for deploying captive portals that balance network security with high user conversion. It covers the full architecture from VLAN segmentation and RADIUS authentication to GDPR-compliant consent design and authentication method selection. Drawn from Purple's operational experience across 80,000+ venues and 440 million logins in 2024, every recommendation is grounded in real deployment data.

Read the guide →

Captive Portal Best Practices: Designing for High Conversion and Compliance

This technical guide gives IT managers, network architects, and venue operations directors a complete blueprint for deploying captive portals that balance network security with high user conversion. It covers the full architecture from VLAN segmentation and RADIUS authentication to GDPR-compliant consent design and authentication method selection. Drawn from Purple's operational experience across 80,000+ venues and 440 million logins in 2024, every recommendation is grounded in real deployment data.

Read the guide →