1 votes

Le téléphone comme hotspot n'utilise pas son propre DNS.

Résumé

J'utilise mon téléphone (Android 8.1) comme point d'accès. Le nom qualifié des clients est résolu pour les autres clients, mais pas pour le téléphone lui-même.

Détails

Mon ordinateur portable (Linux Mint 19) est configuré pour se connecter aux réseaux WiFi en utilisant le protocole DHCP. Lorsqu'il le fait, il enregistre son nom qualifié laptop dans le DNS du point d'accès. Ceci est vérifié dans plusieurs circonstances (par exemple, lorsque l'ordinateur portable et d'autres appareils sont connectés au réseau WiFi de ma box DSL domestique, ils peuvent pinguer l'ordinateur portable en utilisant son nom).

Lorsque l'ordinateur portable est connecté au point d'accès du téléphone, son nom qualifié semble également être enregistré. Je teste cela en exécutant host laptop 192.168.43.1 sur l'ordinateur portable lui-même, où 192.168.43.1 est l'IP du téléphone dans le réseau du point d'accès. La commande renvoie 192.168.43.44 qui est l'IP de l'ordinateur portable (elle est indiquée dans les informations de connexion de l'ordinateur portable).

Cependant, les applications et les commandes exécutées sur le téléphone ne peuvent pas utiliser le nom qualifié. Deux tests :

  • l'application DAVx ne peut pas atteindre Radicale qui fonctionne sur l'ordinateur portable à http://laptop:5232/ (alors qu'il peut à http://192.168.43.44:5232/ ). Le journal indique :

    java.net.UnknownHostException: Unable to resolve host "laptop": No address associated with hostname at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:111) <snip>

  • sous adb shell (téléphone connecté en mode débogage via usb), la commande ping laptop renvoie une erreur "hôte inconnu".

Questions

S'agit-il d'un bogue ou d'une "fonctionnalité" ? Peut-on le corriger sans rooter le téléphone ? (J'ai besoin que DAVx puisse se connecter à Radicale avec la même URL quel que soit le réseau WiFi utilisé par le téléphone et l'ordinateur portable, d'où la nécessité d'utiliser un nom qualifié qui sera résolu en toute circonstance à l'IP de l'ordinateur portable).

1 votes

C'est un comportement attendu. Les autres hôtes connectés au hotspot du téléphone utilisent l'adresse IP du téléphone comme serveur DNS. Les requêtes DNS reçues sont résolues par DNSMASQ exécuté sur le téléphone. Mais les requêtes DNS générées localement sur le téléphone ne passent pas par DNSMASQ, mais utilisent directement le serveur DNS configuré en amont (après avoir vérifié hosts ). Détails dans Comment le système d'exploitation Android assure-t-il la résolution des noms DNS ? y Comment envoyer un ping à un hôte du réseau local par son nom d'hôte ?

0 votes

Je n'ai donc d'autre choix que de modifier le fichier hosts dossier ? Est-ce possible sans rooter le téléphone ?

1 votes

Pas nécessairement. Il existe d'autres options. Voir ma réponse à Android.stackexchange.com/a/219924/218526

0voto

L. Levrel Points 111

Cette réponse a pu être rédigée grâce aux commentaires d'Irfan Latif.

  • S'agit-il d'un bogue ou d'une "fonctionnalité" ? C'est un comportement attendu (voir les détails dans le premier commentaire).

  • Peut-on le corriger sans mettre le téléphone en root ? Oui. J'ai installé Hôtes virtuels a créé un fichier d'une ligne contenant 192.168.43.44 laptop et j'ai pointé l'application dessus. L'application est très facile à activer/désactiver, ce qui me permet de ne l'utiliser qu'en cas de besoin.

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