Wie kann ich meinen DNS-Cache auf meinem Android-Handy löschen? (Droid3, Lebkuchen, verwurzelt, um genau zu sein)
Im Idealfall suche ich einen Befehl, um einen Terminal-Emulator zu durchlaufen, ähnlich wie
ipconfig /flushdns
Auf einer Windows-Maschine.
Was ist die Linux-Version davon?
Antworten:
Auf einem typischen Linux-System wird der Cache durch Ausführen
/etc/init.d/nscd restart
geleert, mein ROM verwendet jedoch nscd nicht zum Zwischenspeichern von DNS. Sie können nachsehen, ob dies bei Ihnen der Fall ist, aber ich bezweifle es. Ich habe Vorschläge gesehen, wonach das Löschen des Browser-Caches auch das Löschen des DNS-Caches zur Folge haben würde. Eine sichere Möglichkeit ist jedoch ein harter Neustart (Herunterfahren, 30 Sekunden lang Akku entfernen, Akku wieder einlegen und Booten).quelle
Adressen werden standardmäßig für 600 Sekunden (10 Minuten) zwischengespeichert. Fehlgeschlagene Suchvorgänge werden 10 Sekunden lang zwischengespeichert. Nach allem, was ich gesehen habe, ist nichts eingebaut, um den Cache zu leeren. Dies ist anscheinend ein gemeldeter Fehler in Android, da dort der DNS-Cache gespeichert wird. Durch das Löschen des Browser-Cache wird das DNS nicht berührt, durch das "Hard-Reset" wird es gelöscht, da es einfach eine Zeitüberschreitung gibt.
Können wir nach dem Grund fragen, warum der DNS-Cache geleert werden muss? Vielleicht gibt es eine andere Lösung, die wir verpasst haben, weil wir nicht das Gesamtbild betrachten.
quelle
networkaddress.cache.ttl
undnetworkaddress.cache.negative.ttl
nach angepasst werdenbuild.prop
.Die einzige Möglichkeit, dies in Android zu tun, ist ein harter Neustart. Die erforderlichen Befehlszeilentools sind normalerweise nicht verfügbar. In meinen Tests hat jedoch ein harter Neustart immer den Trick für mich getan (Galaxy Nexus und HTC Desire, verschiedene ROMs).
Dies ist zwar schmerzhaft, aber schneller als das 10-minütige Cache-Timeout.
quelle
Es gibt auch Apps wie Internet Booster , die (unter anderem) versprechen, den DNS-Cache zu leeren. Ich habe es nicht selbst ausprobiert, und außerdem scheint es keine Möglichkeit zu geben, dies zu tun (nur ein "Optimierungs" -Button, der "Verbesserungen anwendet"). Auch die Auswirkungen können von Gerät zu Gerät unterschiedlich sein (siehe Beschreibung der App) - dies ist jedoch möglicherweise besser als ein Neustart. Übrigens: Wenngleich root nicht als Voraussetzung genannt wird, könnte es dennoch erforderlich sein.
Bei Google Play sind mehrere "ähnliche Apps" aufgeführt. Beachten Sie jedoch, dass die meisten davon Airpush-Anzeigen enthalten und / oder übermäßige Berechtigungen erfordern. Deshalb habe ich sie hier nicht genannt.
Eine andere mögliche Lösung (nicht von mir selbst getestet), die ich bei MadPC gefunden habe und die anscheinend die Antwort von user8522 zitierte , bevor ich sagte:
Ein weiteres kurzes Howto erwähnt einen anderen einfachen Weg, um DNS zu leeren (ich habe dies auch nicht selbst getestet): Wechseln Sie einfach in den Flugzeugmodus (oops, kein Netzwerk?) Und zurück (ah, da ist es) sollten Sie den Trick tun. Klingt vielleicht blöd, aber ich könnte mir vorstellen, dass Android beim Wechsel in den Flugzeugmodus etwas ähnliches macht
/etc/init.d/networking stop
, was einen DNS-Flush als Nebeneffekt hat.Eine sehr einfache Lösung lieferte dtumaykin in den Kommentaren unten: Das einfache Umschalten in den Flugzeugmodus und zurück könnte dies bereits tun (natürlich mit dem Nebeneffekt, dass das Netzwerk für ein paar Sekunden ausfällt;), obwohl es möglicherweise nicht funktioniert Auf einigen Geräten ist es einen Versuch wert: keine zusätzlichen Installationen, und selbst von n00bs problemlos durchzuführen.
Wenn jemand eine dieser Lösungen ausprobiert hat, ist eine Bestätigung (oder das Gegenteil) sicherlich willkommen :)
quelle
ndc resolver flushdefaultif
undndc resolver flushif wlan0
; Sie benötigen root. Es gibt auch die NetworkManagementService.flushDefaultDnsCache () -Methode, für die nur CHANGE_NETWORK_STATE vor JB erforderlich war, die dann jedoch auf CONNECTIVITY_INTERNAL gesperrt wurde. Es gab also anscheinend eine hackige Möglichkeit, den DNS-Cache ohne Root zu bereinigen (nachdem build.prop so eingestellt wurde, dass der Cache auf Java-Ebene gelöscht wird), aber in JB funktioniert dies nicht.In modernen Android-Versionen besteht die Möglichkeit, den DNS-Cache von Chrome unter chrome: // net-internals / # dns zu löschen
quelle
In meinem Fall hatte ich nur einen Domainnamen, den ich löschen musste. Vorschläge wie das Umschalten des Flugzeugmodus, das Ausführen eines harten Neustarts oder die Aktionen in chrome: // net-internals / # dns haben bei mir nicht funktioniert. Stattdessen habe ich meine WLAN-Einstellungen vorübergehend so geändert, dass der Nameserver von Google unter 8.8.8.8 verwendet wird.
Dies sind die Schritte, die ich unternommen habe:
Nach diesen Schritten wurde
ping
der Domänenname in der Konsole in die richtige IP-Adresse aufgelöst und schien die alte zwischengespeicherte Adresse zu überschreiben. Vermutlich hat der Besuch der Domain in einem Browser den gleichen Effekt.Als ich zu WiFi zurückgekehrt bin und "IP-Einstellungen" wieder auf "DHCP" gesetzt habe, wurde die korrekte Domäne weiterhin in die aktuelle IP-Adresse aufgelöst.
Dies ist auf einem Sony Xperia Z3 mit Android 5.1.1
quelle
Auf einem Adroid 5.1-Handy, das falsches DNS verwendet hat, weil zwischen zwei WLANs zu viel gewechselt wurde (Ein Fragezeichen bei einer WLAN-Verbindung). Ich wollte mein Telefon nicht so wiederherstellen, wie ich es einmal getan habe. )
quelle