El wifi de Android dice "Conectado, sin Internet", pero Internet funciona bien

Esto es algo extraño que comenzó a suceder con la red wifi en mi trabajo. Los dispositivos Android conectados a la red dicen "Conectado, sin Internet", sin embargo, Internet funciona perfectamente bien. Esto ha sucedido con los dispositivos que ejecutan Android 6 y 7. Esta es una pequeña empresa en los EE. UU. y no hay un proxy o portal cautivo que bloquee ningún DNS. Las computadoras portátiles con Windows y Ubuntu se conectan y dicen que todo está bien, parece ser algo específico de Android.

¿Alguien sabe cómo determina exactamente Android si una red tiene acceso a Internet? Parece que la solución terminará en la configuración del enrutador, pero sería útil saber qué podría causar que Android se comporte de esta manera. ¿Qué pasos se podrían tomar para solucionar este problema?

Sería útil saber qué dispositivos está utilizando que dan este problema. Si todos los dispositivos son de un fabricante y funciona bien cuando se conecta con un dispositivo de un fabricante diferente, eso reduciría las cosas. Pero si le sucede a dispositivos con varios fabricantes, supongo que tiene algo que ver con la configuración de su enrutador, pero este es un problema realmente extraño.
Veo esto a veces en el trabajo; Tiendo a ignorarlo. Utilizamos Umbrella Solutions para capturar el tráfico web ilícito.
Otro punto para reducirlo: ¿todos sus servicios de Google funcionan bien? ¿Ha intentado, por ejemplo, usar Playstore, GMail, etc.? No estoy 100% seguro, pero AFAIR la detección usa alguna IP de Google y ve si se puede alcanzar.

Respuestas (2)

Tal vez esto parezca ser un problema para conectarse a los servidores de Google (servidor de portal cautivo), no el inicio de sesión del portal cautivo configurado en el navegador al que parece referirse en su publicación.

(En algún momento desde Lollipop (5.1+)) Cuando se conecta a redes (especialmente redes Wi-Fi), el sistema Android verifica si hay una conexión a Internet activa al realizar verificaciones en ciertas URL predefinidas que pertenecen a los servidores de Google. Si falla, aparecerá un signo de exclamación en el ícono de la señal de Wi-Fi y se mostrará una notificación de "Conectado, sin Internet" (aunque puede acceder a otros sitios web y el Internet está funcionando) , por lo que puede ser un problema. problema temporal con la conectividad a esa URL específica:

Android intenta llegar a un archivo con nombre generate_204en uno de los servidores de Google y si no hay una respuesta positiva, significa que no hay conexión a Internet y también se genera una notificación, la URL de detección difiere entre las diferentes versiones de Android.

  • clients3.google.com/generate_204 check (kitkat)

  • connectivitycheck.gstatic.com/generate_204 (marshmallow)

Parece que Google ha cambiado la detección del portal cautivo en versiones recientes de Android, por ejemplo, Oreo.

Parece que Google ahora busca tanto a generate_204en ambos connectivitycheck.gstatic.comcomo a gen_204en www.google.com.

Nuevamente, es un problema en sí mismo, especialmente en regiones donde el acceso a los servicios de Google está bloqueado. Esta respuesta , sin embargo, explica bien cómo evitarlos y usted puede echarle un vistazo.

Una parte de la información ha sido extraída de esta discusión.

En base a esto, tiene algunas opciones para omitir esto:

  1. Cambio de servidor de portal cautivo

    • Instale una aplicación de terminal; alternativamente, estos comandos también se pueden ejecutar a través de adb shell.

    • Abra la aplicación de terminal y ejecute su.

    • corre settings get global captive_portal_server_ Esto mostrará el servidor de portal cautivo actual. Una respuesta "nula" suele ser la predeterminada.

    • corre settings put global captive_portal_server YOUR_SERVER_ADDRESS_ Puede agregar google.com como el servidor del portal cautivo, i.e settings put global captive_portal_server google.com.

    • Ejecute exituna vez para salir de su, luego salga una vez más para cerrar la terminal.

    • Reinicie el dispositivo Android. No funcionará sin un reinicio.

  1. Deshabilitar portal cautivo
  • Dado que el culpable es un método isCaptivePortal()que accede clients3.google.com/generate_204a probar si una conexión se considera "utilizable". La página, como sugiere su nombre, está diseñada para devolver siempre un HTTP 204código de estado. En base a esto tienes un par de opciones:

i. matar por isCaptivePortal()completo

  • con set, ejecutar adb shell su -c "settings put global captive_portal_detection_enabled 0"(Android 7.1+) o usandoadb shell su -c "settings put global captive_portal_mode 0"

Nota: La desventaja es que isCaptivePortal() es realmente útil para detectar, por ejemplo, cuando una red WiFi requiere inicio de sesión. Si la solicitud a la página 204 se redirige a una página de inicio de sesión (no a una 204), el sistema comprenderá y mostrará el signo de exclamación según lo previsto.

ii. Cambiar el objetivo deisCaptivePortal()

  • otra solución es reemplazar el host de Google con un host al que se pueda acceder dentro de la región específica. Este host también debería regresar 204cada vez /generate_204que se accede.

    es deciradb shell su -c "settings put global captive_portal_server {alternate_host} "


  1. Uso de anfitriones

    • Puede editar hostspara bloquear la URL de detección del portal cautivo, evitando así el envío de solicitudes al servidor del portal cautivo.

¿Por qué Linux y Windows se conectan sin problemas?

Como mencionó en su publicación, esto parece ser específico de Android, de hecho, la discusión anterior lo destaca. La razón es que para esos dispositivos (Linux y Windows) el mecanismo de conexión es completamente diferente.

Estos dispositivos no necesitarán conectarse a los servidores de Google para detectar primero si Internet está activo.

Usar el comando adb shell su -c "settings put global captive_portal_mode 0" funcionó para mí sin reiniciar (Android 8.1, MIUI 10). Solo como una pequeña nota al margen para los demás.

Verifique la hora y la fecha en su dispositivo Android. En la era https es muy importante tener fecha y hora sincronizadas con la realidad. Tuve este problema hoy con mi televisor y fue un par de años tarde. :)