Warum verwendet mein Telefon Google Public DNS?

10

Ich war nur neugierig zu wissen, welchen DNS-Server mein Telefon verwendet. Also habe ich einen Terminalemulator gestartet und Folgendes eingegeben:

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

Wie Sie sehen können, verwendet mein Telefon 8.8.8.8 und 8.8.4.4 als DNS-Server ( Google Public DNS-Server ).

Zu Hause (Wifi) ist mein Router so konfiguriert, dass OpenDNS-Server über DHCP bereitgestellt werden. Auf meinem Telefon wird jedoch cat /etc/resolv.confdieselbe Ausgabe zurückgegeben. Gleiches gilt für 3G. Und selbst wenn ich sowohl Wifi als auch 3G deaktiviere und dann das Telefon neu starte, werden die öffentlichen DNS-Server von Google verwendet.

Ich kann mich nicht erinnern, resolv.confeine Anwendung geändert oder installiert zu haben, um sie zu ändern.

Mein Handy ist ein HTC Desire mit CyanogenMod 7.2.0.1 (Android 2.3.7).

Kann mir jemand erklären, warum mein Telefon Google Public DNS verwendet? Ist es eine übliche Konfiguration für Android-Geräte oder CyanogenMod-ROM?

Morgan Courbet
quelle

Antworten:

11

Laut Steve Kondik handelt es sich im Wesentlichen um alten Code, der von älteren Versionen von CyanogenMod übrig geblieben ist:

Dies war nur hier für Apps, die in alten CM-Versionen statisch mit uclibc verknüpft waren. Es kann wahrscheinlich nur entfernt werden.

Er bemerkt jedoch auch :

Außerdem wird diese Datei NICHT geschrieben, wenn eine Verbindung zu einem Netzwerk hergestellt wird, da / system schreibgeschützt ist. Die tatsächlichen DNS-Server werden aus den Systemeigenschaften gelesen.

Ich habe auch gerade überprüft, ob die von DHCP bereitgestellten Server tatsächlich verwendet werden. Daher ist dieses Problem ungültig, sofern nicht jemand etwas anderes beweist.

Die Werte in /etc/resolv.confspiegeln also nicht Ihre DNS-Einstellungen wider. Sie können stattdessen getpropIhre DNS-Werte ermitteln. Sie können es ziemlich gut reduzieren, wenn Sie die Ausgabe wie folgt erfassen:

getprop | grep dns

Ebenfalls erwähnenswert: Die /etc/resolv.confDatei scheint in späteren Versionen von CyanogenMod vollständig entfernt worden zu sein. Ich habe überhaupt keine auf CM10, aber getpropmeine DNS-Einstellungen werden korrekt angezeigt.

Eldarerathis
quelle
Großartige Antwort, danke. Gibt getprop | grep dnsjedoch nichts zurück. getprop | grep -E '([0-9]{1,3}\.){3}[0-9]{1,3}'(auf der Suche nach IPv4-Adresse) gibt kein relevantes Ergebnis zurück. Zurückgegebene Objekte sind ro.baseband, ro.build.description, ro.modversionund gsm.version.baseband. Irgendeine Idee?
Morgan Courbet
@ Morgan: Ich nehme an, es könnte ein Unterschied zwischen CM7 (Sie laufen) und CM10 (was ich getestet habe) sein. Was passiert, wenn Sie die Ausgabe überhaupt nicht erfassen? Sehen Sie etwas Relevantes? (Vielleicht möchten Sie es in moreoder ähnliches
leiten,
1
@Morgan: Ich habe kein Lebkuchengerät zum Testen zur Hand, aber es sollte eine Möglichkeit geben, dies in den Standardeinstellungen für drahtlose Netzwerke zu tun, wenn Sie eine statische IP konfigurieren (ich glaube nicht, dass Sie dies auf diese Weise tun können, wenn Sie es verwenden DHCP leider). Auf JB drücke ich lange auf das Netzwerk, mit dem ich verbunden bin, und wähle "Ändern", um dorthin zu gelangen. Es kann sich jedoch unter "Erweiterte Einstellungen" befinden (Menüschaltfläche in der Liste der WLAN-Netzwerke). Sie können auch verwenden, setpropaber es bleibt nicht über Neustarts / Verbindungsabbrüche hinweg bestehen. Beispielsweise. setprop net.rmnet0.dns1 <your DNS IP>sollte den Wert der net.rmnet0.dns1Eigenschaft ändern .
Eldarerathis
1
Und ich denke, der spezifischere wird vom Adapter verwendet ( net.rmnet0.dns1in Ihrem Fall), obwohl er diesen Wert möglicherweise von der allgemeineren net.dns1Eigenschaft erbt .
Eldarerathis
1
@ Rhuk: Ich weiß es nicht. setpropMöglicherweise handelt es sich um eine vorübergehende Lösung, wenn Sie leere Werte angegeben haben, diese jedoch bei jedem Start ausführen müssen (und ich bin mir nicht sicher, ob dies tatsächlich funktionieren würde).
Eldarerathis