Pourquoi mon téléphone utilise-t-il le DNS public de Google?

10

J'étais simplement curieux de savoir quel serveur DNS mon téléphone utilisait. J'ai donc lancé un émulateur de terminal et je suis entré:

$ cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

Comme vous pouvez le voir, mon téléphone utilise 8.8.8.8 et 8.8.4.4 comme serveurs DNS ( serveurs DNS publics Google ).

À la maison (Wifi), mon routeur est configuré pour donner les serveurs OpenDNS via DHCP. Mais, sur mon téléphone, cat /etc/resolv.confrenvoie la même sortie. Même chose avec la 3G. Et, même si je désactive le Wifi et la 3G, puis que je redémarre le téléphone, il utilise toujours les serveurs DNS publics de Google.

Je ne me souviens pas avoir changé resolv.confou installé une application pour le changer.

Mon téléphone est un HTC Desire avec CyanogenMod 7.2.0.1 (Android 2.3.7).

Quelqu'un peut-il m'expliquer pourquoi mon téléphone utilise Google Public DNS? S'agit-il d'une configuration commune pour tous les appareils Android ou CyanogenMod ROM?

Morgan Courbet
la source

Réponses:

11

Selon Steve Kondik , il s'agit essentiellement d'un ancien code qui reste des anciennes versions de CyanogenMod:

Ce n'était là que pour les applications qui étaient liées statiquement à uclibc dans les anciennes versions CM. Il peut probablement juste être supprimé.

Cependant, il ajoute également :

En outre, ce fichier n'est PAS écrit lors de la connexion à un réseau car / system est en lecture seule. Les serveurs DNS réels sont lus à partir des propriétés du système.

Je viens également de vérifier que les serveurs fournis par DHCP sont réellement utilisés, donc ce problème n'est pas valide, sauf si quelqu'un prouve le contraire.

Les valeurs /etc/resolv.confne reflètent donc pas réellement vos paramètres DNS. Ce que vous pouvez faire à la place, c'est utiliser getproppour trouver vos valeurs DNS. Vous pouvez le réduire assez bien si vous grepez la sortie comme ceci:

getprop | grep dns

A noter également: le /etc/resolv.conffichier semble avoir été complètement supprimé dans les versions ultérieures de CyanogenMod. Je n'en ai pas du tout sur CM10, mais getpropaffiche correctement mes paramètres DNS.

eldarerathis
la source
Excellente réponse, merci. Cependant, getprop | grep dnsne retourne rien. getprop | grep -E '([0-9]{1,3}\.){3}[0-9]{1,3}'(recherche d'adresse IPv4) ne renvoie pas de résultat pertinent. Propriétés retournées sont ro.baseband, ro.build.description, ro.modversionet gsm.version.baseband. Une idée?
Morgan Courbet
@Morgan: Je suppose que cela pourrait être une sorte de différence entre CM7 (vous courez) et CM10 (sur lequel j'ai testé). Que se passe-t-il si vous ne récupérez pas du tout la sortie? Voyez-vous quelque chose de pertinent? (pourrait vouloir le canaliser moreou similaire car il pourrait être long)
eldarerathis
1
@Morgan: Je n'ai pas de périphérique Gingerbread à tester, mais il devrait y avoir un moyen de le faire dans les paramètres sans fil standard si vous configurez une IP statique (je ne pense pas que vous puissiez le faire de cette façon si vous utilisez DHCP, malheureusement). Sur JB, j'appuie longuement sur le réseau auquel je suis connecté et sélectionne "Modifier" pour y accéder. Il peut être sous "Paramètres avancés" (bouton de menu lorsque sur la liste des réseaux wifi). Vous pouvez également l'utiliser, setpropmais il ne persistera pas lors des redémarrages / déconnexions. Par exemple. setprop net.rmnet0.dns1 <your DNS IP>devrait changer la valeur de la net.rmnet0.dns1propriété.
eldarerathis
1
Et je pense que le plus spécifique serait utilisé par l'adaptateur ( net.rmnet0.dns1dans votre cas), bien qu'il puisse hériter de cette valeur de la net.dns1propriété plus générique .
eldarerathis
1
@ Rhyuk: Je ne sais pas. setproppeut être une solution temporaire si vous lui donnez des valeurs vides, mais vous devrez l'exécuter à chaque démarrage (et je ne sais pas si cela fonctionnerait réellement).
eldarerathis