5 votes

La détection du portail captif entraîne des déconnexions des téléphones du Wi-Fi dans un environnement intranet

Bonjour aux passionnés d'Android!

Je suis le gérant d'un cybercafé sur un navire de croisière, et nous sommes confrontés à un problème persistant que je n'arrive pas à résoudre.

Nous disposons d'un réseau sans fil dans tout le navire qui permet d'accéder à Internet, mais qui inclut également un intranet local permettant aux clients de consulter le programme des événements quotidiens, de vérifier leur compte et d'utiliser un service de messagerie interne gratuit.

Le problème que nous rencontrons semble être lié à la détection du portail captif, et selon mes observations, il semble affecter uniquement les téléphones Samsung (peut-être à partir du S4), et a été observé sur tous les OS à partir de 4.2.2. Ce qui se passe, c'est qu'ils se connectent au réseau sans fil, puis on leur dit qu'une connexion est requise. Une fenêtre de portail captif s'ouvre, qui affiche notre page d'accueil. S'ils se connectent alors à Internet, pas de problème. Mais s'ils veulent juste utiliser l'intranet, ou si cela leur prend trop de temps pour remplir le formulaire d'inscription, on leur dit que la connexion au réseau a été interrompue et nous devons recommencer depuis "une connexion est requise".

J'ai fait beaucoup de recherches en ligne pour trouver des réponses, et l'une d'entre elles est que l'utilisateur doit sélectionner "utiliser le réseau tel quel" parmi les options du portail captif, mais je vois cette option sur très peu d'appareils. D'autres options ont impliqué de rooter le téléphone et d'exécuter des commandes de terminal, ce qui n'est évidemment pas quelque chose que je peux demander aux clients de faire.

Nous avons soumis le problème à notre équipe de réseau à terre, et ils sont revenus en disant qu'ils avaient mis en liste blanche les URL suivantes et que cela devrait régler le problème :

clients3.google.com/

apple.com/library/test/

captive.apple.com

connectivitycheck.android.com

connectivitycheck.gstatic.com

connectivitycheck.android.com/generate_204

clients3.google.com/generate_204

android.clients.google.com

Ça n'a pas fonctionné, les téléphones sont toujours déconnectés après environ une minute s'ils ne peuvent pas se connecter à Internet.

Y a-t-il autre chose que nous puissions essayer? Nous recherchons en fin de compte une solution qui ne nécessitera pas que nos utilisateurs fassent quelque chose de spécial.

0 votes

Il me semble que vous allez devoir supprimer le portail captif et les laisser se connecter librement si vous ne voulez pas qu'ils aient à faire quoi que ce soit. Sinon, les solutions ici pourraient être pertinentes: android.stackexchange.com/a/100659/1465

0 votes

Salut Matthew, merci pour la réponse. Je ne pense pas que nous ayons effectivement un portail captif. Ou, du moins, aucune fenêtre de portail captif ne s'ouvre sur tout autre appareil Android non-Samsung ou Apple. Peut-être ai-je mal utilisé le terme, mais je ne pense pas que nous ayons consciemment activé quoi que ce soit pour causer ce comportement.

0 votes

C'est toujours un problème en 2020... Je viens d'acheter un drone et mon téléphone (Samsung s8) ne reste pas connecté à cause du réseau du drone qui ne fournit pas Internet ou les requêtes DNS, le téléphone considère le Wi-Fi comme une connexion non-Internet et au bout d'une minute ou deux, le Wi-Fi se déconnecte. J'ai essayé toutes les solutions possibles sauf rooter mon téléphone, ce qui semble nécessaire pour désactiver la détection du portail captif intégrée à Samsung........ android.stackexchange.com/questions/130265/…

1voto

Martin Points 111

Nous avons eu un problème similaire mais je pense que ce n'est pas exactement le même problème.

Nous avions un Galaxy S5 mini avec Android 5.5.1 installé. Nous avons également un "filtre pour les sites Web" pour refuser l'accès à certains sites. Le problème ici était qu'après avoir démarré le téléphone, il se connectait et se déconnectait immédiatement du réseau. Nous avons découvert que le problème était lié à la vérification de la connectivité réseau. Les premiers tests ont montré :

  • Lorsqu'il y a un accès Internet illimité, cela fonctionne.
  • Lorsqu'il n'y a pas d'accès Internet, la connexion réseau reste active. "Pas de connexion Internet" signifie que nous avons bloqué tout le trafic sur le pare-feu et que toutes les demandes se soldent par une erreur de délai d'attente.

En analysant plus en profondeur et en examinant le code source d'Android, nous avons pu identifier le code de retour HTTP comme étant le problème. Le périphérique lance une requête HTTP vers connectivitycheck.android.com. Cela a donné un HTTP 302 (redirection temporaire) de notre filtre Web. En sachant cela, nous avons fait d'autres tests :

  • le filtre Web redirige l'accès à connectivitycheck.android.com via HTTP/302 et tous les autres sites Internet sont autorisés directement : là la connexion réseau était à nouveau coupée.
  • refuser l'accès à connectivitycheck.android.com en utilisant le pare-feu (donc délai d'attente pour le contrôle de la connectivité) et tous les autres sites Internet sont autorisés directement : là la connexion réseau reste active.

Par conséquent, à la fin, nous avions deux façons de résoudre la situation :

  • autoriser l'accès à connectivitycheck.android.com sans filtre Web (donc pas de HTTP 302)
  • refuser l'accès à connectivitycheck.android.com sur le pare-feu

Mais qu'en est-il des autres versions d'Android ? J'ai fait les mêmes tests avec un Galaxy S7 sous Android 6.0.1. Ici, nous n'avons jamais rencontré de problème. Sous Android 6, la vérification de la connectivité a été légèrement modifiée et ne souffre pas du problème mentionné ci-dessus.

0voto

sMyles Points 101

J'ai également été confronté à ce problème sur l'une de mes bibliothèques de portail captif open source.

Il semble que cela soit dû au fait que Samsung a décidé d'implémenter son propre code qui ne déclenchera pas la connexion au portail captif comme il le devrait lorsqu'une redirection 302 est envoyée (et que le wifi n'a pas d'accès à internet).

Il semble que vous devez fournir le fichier du portail captif avec un code 200 lorsqu'ils tentent d'accéder à l'endpoint generate_204, au lieu de simplement envoyer une redirection 302 - ce qui fonctionne sur tous les autres appareils - sauf Samsung.

Détection du portail captif Samsung

Merci Samsung - pourquoi ne pouvez-vous pas simplement suivre les normes normales des portails captifs !?

Ceci étant dit, j'ai eu des résultats mitigés sur différents appareils Samsung Sx... certains ne semblent même pas interroger le /generate_204 lorsqu'ils se connectent au wifi

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X