Apple CNA, Android Connectivity Check, Microsoft NCSI: Cómo funciona realmente la detección de Captive Portal
This definitive technical reference explains how Apple CNA, Android connectivitycheck, and Microsoft NCSI detect captive portals. It provides actionable guidance for IT managers and network architects on walled garden configuration, common failure modes, and best practices for seamless deployment.
🎧 Escuchar esta guía
Ver transcripción
- Resumen ejecutivo
- Análisis técnico en profundidad
- Apple Captive Network Assistant (CNA)
- Android Connectivity Check
- Microsoft Network Connectivity Status Indicator (NCSI)
- Guía de implementación
- Configuración del Walled Garden
- Pasos de implementación
- Mejores prácticas
- Resolución de problemas y mitigación de riesgos
- ROI e impacto comercial
- Referencias

Resumen ejecutivo
La detección de Captive Portal es un componente fundamental, aunque a menudo malinterpretado, de las redes empresariales. Cuando un dispositivo se une a una red WiFi pública, el sistema operativo ejecuta una serie de sondeos en segundo plano para determinar si hay acceso a Internet o si un Captive Portal está interceptando el tráfico. Apple, Android y Windows utilizan mecanismos distintos, con diferentes URL de sondeo, respuestas esperadas y modos de fallo.
Para los directores de TI y arquitectos de redes que implementan soluciones de WiFi para invitados en entornos de Hostelería , Retail o del sector público, la configuración incorrecta de estos mecanismos de detección genera una importante sobrecarga de soporte técnico. Los usuarios pueden recibir advertencias de certificados, no ver la página de inicio o sufrir bucles de inicio de sesión interminables. Esta guía de referencia detalla la arquitectura técnica definitiva de Apple CNA, Android Connectivity Check y Microsoft NCSI, proporcionándole los conocimientos prácticos necesarios para crear walled gardens robustos e independientes del proveedor, garantizando así una experiencia de conexión impecable.
Análisis técnico en profundidad
Apple Captive Network Assistant (CNA)
Cuando un dispositivo Apple (iOS o macOS) se conecta a una red, envía inmediatamente una solicitud HTTP GET a su URL de sondeo principal: http://captive.apple.com/hotspot-detect.html. El dispositivo espera una respuesta HTTP 200 OK con un cuerpo HTML específico que contenga la palabra "Success" [1].
Si la respuesta coincide con esta expectativa, el sistema operativo asume que hay acceso total a Internet. Si la respuesta es cualquier otra (como una redirección HTTP 302 o un tiempo de espera agotado), el sistema operativo activa el Captive Network Assistant (CNA). El CNA abre WebSheet, un mininavegador aislado (sandbox) con funcionalidad limitada (sin extensiones de Safari ni guardado de contraseñas) [2].
Restricción crítica: El sondeo inicial es HTTP. Si su puerta de enlace (gateway) intercepta el sondeo y lo redirige a una URL HTTPS, el CNA fallará de forma controlada, lo que a menudo resulta en una advertencia de certificado o una pantalla en blanco. La redirección inicial debe mantenerse en el puerto HTTP 80. Además, si permite inadvertidamente el paso de captive.apple.com a través de su walled garden, el dispositivo llegará al servidor real de Apple, recibirá la respuesta "Success" y omitirá su portal por completo.
Android Connectivity Check
Android funciona según un principio diferente. Su sondeo principal se dirige a http://connectivitycheck.gstatic.com/generate_204 (con alternativas a clients2.google.com y connectivitycheck.android.com). En lugar de esperar una respuesta HTTP 200 con contenido específico, Android espera una respuesta HTTP 204 No Content [3].
Si Android recibe un HTTP 204, asume que hay conectividad a Internet. Si recibe una redirección o una respuesta HTTP 200, marca la red como cautiva y muestra una notificación de "Iniciar sesión en la red WiFi". Al tocar esta notificación, se abre el navegador Chrome completo, lo que permite una experiencia de portal más rica en comparación con el CNA aislado de Apple.
Restricción crítica: Si su walled garden bloquea connectivitycheck.gstatic.com por completo en lugar de interceptarlo y redirigirlo, Android mostrará una advertencia de "Conectado, sin Internet" y no pedirá al usuario que inicie sesión.
Microsoft Network Connectivity Status Indicator (NCSI)
Windows emplea un mecanismo de doble sondeo a través del servicio Network Connectivity Status Indicator (NCSI). Al conectarse, Windows realiza una solicitud HTTP GET a http://www.msftconnecttest.com/connecttest.txt (esperando una respuesta 200 con el texto "Microsoft Connect Test") y una resolución DNS para dns.msftncsi.com [4].
Si se intercepta el sondeo HTTP, Windows detecta el portal y abre el navegador predeterminado (Edge). Sin embargo, Windows es propenso a un problema de bucle posterior a la autenticación. Después de que el usuario se autentica, Windows vuelve a ejecutar los sondeos NCSI. Si la puerta de enlace aún no ha propagado la autorización de la dirección MAC, el sondeo se intercepta de nuevo y Windows vuelve a abrir el portal, forzando al usuario a un bucle de inicio de sesión.

Guía de implementación
Para garantizar una detección fiable del Captive Portal en todos los dispositivos, debe configurar su zona de preautenticación (walled garden) para gestionar los requisitos específicos de cada sistema operativo.

Configuración del Walled Garden
Su walled garden debe incluir los siguientes hosts. Es fundamental que intercepte y redirija el tráfico HTTP a estos hosts, en lugar de simplemente permitir que pasen a Internet.
- Apple:
captive.apple.com,www.apple.com,www.appleiphonecell.com,www.itools.info - Android:
connectivitycheck.gstatic.com,clients2.google.com,connectivitycheck.android.com - Windows:
www.msftconnecttest.com,dns.msftncsi.com,www.msftncsi.com(para clientes heredados)
Pasos de implementación
- Configurar la resolución DNS: Asegúrese de que las solicitudes DNS para las URL de sondeo se resuelvan correctamente dentro de la zona de preautenticación.
- Interceptar sondeos HTTP: Configure su puerta de enlace para interceptar las solicitudes HTTP GET a las URL de sondeo y devolver una redirección HTTP 302 a la página de inicio de su portal.
- Mantener HTTP para la redirección inicial: La redirección inicial debe servirse a través de HTTP (puerto 80). Posteriormente, puede redirigir al usuario a una página de inicio de sesión HTTPS, pero el primer salto debe ser HTTP en texto plano para satisfacer al CNA de Apple.
- Propagar la autorización rápidamente: Asegúrese de que su puerta de enlace actualice inmediatamente sus reglas de firewall tras una autenticación exitosa para permitir el paso de los sondeos NCSI, evitando así los bucles de Windows.
Mejores prácticas
- Adoptar RFC 8910 (API de Captive Portal): Los sistemas operativos modernos (iOS 16+, Android 11+) admiten la opción DHCP 114, que proporciona una señal positiva de la presencia de un Captive Portal a través de una URL de API designada [5]. Esto elimina la dependencia de la interceptación de sondeos y es el enfoque recomendado de cara al futuro.
- Probar en todas las plataformas: Nunca asuma que un portal funciona basándose únicamente en pruebas con un iPhone. Exija una matriz de pruebas que incluya dispositivos iOS, Android nativo y Windows 10/11.
- Aprovechar plataformas automatizadas: Gestionar manualmente la evolución de las URL de sondeo es propenso a errores. Plataformas como Purple actualizan automáticamente las definiciones del walled garden a medida que Apple, Google y Microsoft modifican su infraestructura, garantizando una recopilación de datos de WiFi Analytics coherente.
Resolución de problemas y mitigación de riesgos
| Síntoma | Causa raíz | Resolución |
|---|---|---|
| El CNA de Apple no se abre; el usuario ve una advertencia SSL. | La puerta de enlace intercepta el sondeo y redirige directamente a HTTPS. | Asegúrese de que la interceptación y redirección iniciales utilicen el puerto HTTP 80. |
| El dispositivo Apple se conecta sin mostrar el portal. | Se permite el paso de captive.apple.com a través del walled garden hacia Internet. |
Elimine captive.apple.com de la lista de permitidos; asegúrese de que sea interceptado. |
| Android muestra "Conectado, sin Internet". | El firewall bloquea connectivitycheck.gstatic.com. |
Permita la URL de sondeo en el walled garden, pero intercéptela y rediríjala. |
| Windows pide al usuario que inicie sesión varias veces (bucle). | La puerta de enlace tarda en aplicar las reglas MAC posteriores a la autenticación; NCSI sigue siendo interceptado. | Optimice la propagación de reglas de la puerta de enlace; asegúrese de que msftconnecttest.com pase tras la autenticación. |
ROI e impacto comercial
Una arquitectura robusta de detección de Captive Portal impacta directamente en los resultados. En un hotel de 500 habitaciones o en un gran entorno de retail, los fallos del Captive Portal generan un volumen desproporcionado de tickets de soporte de TI. Al eliminar estos puntos de fricción, los establecimientos reducen los gastos generales de soporte, mejoran las puntuaciones de satisfacción de los huéspedes y aumentan la tasa de captura de datos de origen.
Cuando los usuarios se conectan sin problemas, interactúan con sus páginas de inicio, lo que le permite ofrecer marketing dirigido, integrarse con programas de fidelización e impulsar ingresos medibles, tal como se detalla en nuestra guía sobre Sistemas de posicionamiento en interiores: Guía de UWB, BLE y WiFi . Para los establecimientos que operan a nivel internacional, un portal fiable garantiza una recopilación coherente de datos de cumplimiento, respaldando los marcos analizados en la Guía de cumplimiento: LGPD de Brasil y WiFi para invitados .
Referencias
[1] Soporte de Apple, "Use captive Wi-Fi networks on your iPhone or iPad", 2024. [2] SecureW2, "What Is Apple Captive Network Assistant?", 2023. [3] Android Developers, "Captive portal API support", Android 11 Features, 2020. [4] Microsoft Learn, "Captive Portal Detection and User Experience in Windows", Windows Hardware Developer, 2025. [5] IETF, "RFC 8910: Captive-Portal Identification in DHCP and Router Advertisements", 2020.
Términos clave y definiciones
Captive Network Assistant (CNA)
Apple's built-in mechanism for detecting captive portals and displaying them in a sandboxed mini-browser (WebSheet) rather than the full Safari browser.
IT teams must ensure their splash pages are responsive and do not rely on advanced browser features, as the CNA environment is highly constrained.
Network Connectivity Status Indicator (NCSI)
The Windows service responsible for determining internet connectivity by probing specific Microsoft domains via HTTP and DNS.
Understanding NCSI is critical for preventing the common 'Windows looping' issue where users are repeatedly prompted to sign in.
Walled Garden
A restricted network environment that allows unauthenticated users access to a specific list of approved hostnames or IP addresses.
Properly configuring the walled garden is the foundation of captive portal deployment, ensuring OS probes are handled correctly.
HTTP 204 No Content
An HTTP status code indicating the server successfully processed the request but is not returning any content.
This is the specific response Android devices expect from `connectivitycheck.gstatic.com` to confirm full internet access.
RFC 8910 (Captive Portal API)
An IETF standard that uses DHCP option 114 to explicitly notify a device of a captive portal's presence and provide the portal URL.
This modern standard replaces unreliable probe interception and is supported by newer versions of iOS and Android.
WebSheet
The sandboxed, limited-functionality mini-browser used by Apple's CNA to render captive portal splash pages.
Portal designers must test their pages in WebSheet, as it lacks features like password saving and full cookie support found in standard browsers.
MAC Authorisation
The process by which a gateway grants network access to a specific device based on its Media Access Control address after successful portal authentication.
Delays in applying MAC authorisation cause post-authentication probes (like Windows NCSI) to fail, leading to poor user experiences.
Probe Interception
The technique of capturing an operating system's background connectivity check and forcibly redirecting it to a captive portal login page.
This is the legacy, yet most common, method for triggering captive portals, requiring precise HTTP 302 redirects.
Casos de éxito
A 300-room hotel reports that guests using iPhones are connecting to the guest WiFi but are not being prompted with the captive portal splash page. Android and Windows users are unaffected.
- Review the walled garden (pre-authentication) allowlist on the gateway.
- Identify that
captive.apple.comhas been added as a permitted passthrough host. - Remove
captive.apple.comfrom the passthrough list. - Configure the gateway to intercept HTTP requests to
captive.apple.comand redirect them (via HTTP 302) to the portal URL.
A conference centre's IT team receives complaints that Windows 11 users are authenticating successfully but are immediately prompted to sign in again, creating an endless loop.
- Verify that the captive portal gateway is successfully authorising the client's MAC address post-authentication.
- Inspect the post-authentication firewall rules to ensure traffic to
www.msftconnecttest.comanddns.msftncsi.comis permitted. - Adjust the gateway configuration to ensure MAC authorisation is applied instantaneously, preventing subsequent NCSI probes from being intercepted.
Análisis de escenarios
Q1. You are deploying a captive portal for a large retail chain. The security team insists that all network traffic, including the initial portal redirect, must be encrypted using HTTPS. What is the technical implication of this policy?
💡 Sugerencia:Consider how Apple's Captive Network Assistant (CNA) handles initial probe requests.
Mostrar enfoque recomendado
Enforcing HTTPS for the initial redirect will break Apple CNA detection. The CNA probe is an HTTP GET request. If the gateway intercepts this and redirects to an HTTPS URL, the CNA will not follow the redirect gracefully, resulting in a certificate error or a failure to open the portal. The initial interception must use HTTP port 80; the user can subsequently be redirected to an HTTPS page for authentication.
Q2. A stadium network engineer reports that Android devices are showing a 'Connected, no internet' warning without prompting the user to sign in. How should the walled garden be adjusted?
💡 Sugerencia:Think about the difference between blocking a probe and intercepting it.
Mostrar enfoque recomendado
The engineer needs to ensure that connectivitycheck.gstatic.com is allowed to resolve via DNS within the walled garden, but the HTTP traffic must be intercepted and redirected. Currently, the firewall is likely dropping the traffic entirely, causing Android to assume the internet is down rather than detecting a captive portal.
Q3. A venue wishes to implement RFC 8910 (Captive Portal API) to improve the user experience. What infrastructure changes are required to support this?
💡 Sugerencia:RFC 8910 relies on a positive signal during the IP assignment phase.
Mostrar enfoque recomendado
The venue must update its DHCP server or access points to advertise DHCP option 114. This option must provide the URL of the Captive Portal API endpoint. When compatible devices (iOS 16+, Android 11+) receive this option during the DHCP handshake, they will immediately fetch the API and prompt the user, bypassing the need for HTTP probe interception.



