Jak mogę wyczyścić pamięć podręczną DNS na moim telefonie z Androidem? (Droid3, Piernik, zrootowany, aby być konkretnym)
Idealnie szukam polecenia do uruchomienia przez emulator terminala, coś podobnego do
ipconfig /flushdns
Na maszynie z systemem Windows.
Jaka jest wersja Linux?
Odpowiedzi:
W typowym systemie Linux pamięć podręczna jest czyszczona przez uruchomienie
/etc/init.d/nscd restart
, ale przynajmniej moja pamięć ROM nie używa nscd do buforowania DNS. Możesz sprawdzić, czy twoje, ale wątpię w to. Widziałem sugestie, że wyczyszczenie pamięci podręcznej przeglądarki również wyczyści pamięć podręczną DNS, ale pewnym pewnym sposobem jest wykonanie twardego restartu (zamknięcie, usunięcie baterii na 30 sekund, ponowne podłączenie baterii i uruchomienie).źródło
Adresy są domyślnie buforowane przez 600 sekund (10 minut). Nieudane wyszukiwania są buforowane przez 10 sekund. Ze wszystkiego, co widziałem, nie ma nic wbudowanego do opróżnienia pamięci podręcznej. Najwyraźniej jest to zgłoszony błąd w Androidzie ze względu na sposób przechowywania pamięci podręcznej DNS. Wyczyszczenie pamięci podręcznej przeglądarki nie dotyka DNS, „twardy reset” usuwa go, ponieważ po prostu upłynął limit czasu.
Czy możemy zapytać o przyczynę konieczności wyczyszczenia pamięci podręcznej DNS? Być może brakuje innego rozwiązania, ponieważ nie patrzymy na szerszy obraz.
źródło
networkaddress.cache.ttl
inetworkaddress.cache.negative.ttl
wbuild.prop
.Jedynym sposobem na to w Androidzie jest przeprowadzenie twardego restartu. Niezbędne narzędzia wiersza poleceń nie są normalnie dostępne, jednak w moich testach twardy restart zawsze mi pomógł (Galaxy Nexus i HTC Desire, różne ROMy).
Jest to ból, ale jest szybszy niż 10-minutowy limit pamięci podręcznej.
źródło
Są też takie aplikacje, jak Internet Booster, który obiecuje „wyczyścić pamięć podręczną DNS” (między innymi). Sam tego nie wypróbowałem, a ponadto wydaje się, że nie ma sposobu, aby to zrobić (tylko jeden przycisk „optymalizuj”, który „stosuje ulepszenia”); także jego efekty mogą się różnić między urządzeniami (mówi opis aplikacji) - ale może być lepsze niż ponowne uruchomienie. Btw: chociaż nie wspominając o rootie jako wymaganiu, może być nadal potrzebne.
Istnieje kilka „podobnych aplikacji” wymienionych w Google Play - ale pamiętaj, że większość z nich zawiera reklamy Airpush i / lub chcesz nadmiernych uprawnień, dlatego ich tutaj nie wymieniłem.
Inne możliwe rozwiązanie (nie testowane przeze mnie) znalazłem w MadPC , najwyraźniej cytując odpowiedź użytkownika8522 przed stwierdzeniem:
Kolejny krótki poradnik wspomina o innym łatwym sposobie opróżniania DNS (ponownie, nie testowałem tego sam): wystarczy przełączyć się na tryb samolotowy (ups, brak sieci?), A powrót (ach, oto jest) powinien załatwić sprawę. Może to zabrzmi głupio, ale mogłem sobie wyobrazić, kiedy wchodząc w tryb samolotowy Android robi coś podobnego
/etc/init.d/networking stop
, co ma efekt uboczny DNS.Bardzo proste rozwiązanie zostało dostarczone przez dtumaykin w komentarzach poniżej: po prostu przejście do trybu samolotowego i wstecz może już to zrobić (oczywiście z efektem ubocznym awarii sieci na kilka sekund;) Może to nie działać na niektórych urządzeniach warto spróbować: bez dodatkowych instalacji i łatwe do wykonania nawet przez n00bs.
Jeśli ktoś wypróbuje jedno z tych rozwiązań, potwierdzenie (lub odwrotnie) jest z pewnością mile widziane :)
źródło
ndc resolver flushdefaultif
indc resolver flushif wlan0
; wymagają rootowania. Istnieje również metoda NetworkManagementService.flushDefaultDnsCache () , która wymagała tylko CHANGE_NETWORK_STATE przed JB, ale następnie została zablokowana na CONNECTIVITY_INTERNAL. Więc najwyraźniej istniał pospieszny sposób czyszczenia pamięci podręcznej DNS bez rootowania (po dostrojeniu build.prop, aby zabić pamięć podręczną na poziomie Java), ale nie będzie działać w JB.W nowoczesnych wersjach Androida istnieje możliwość wyczyszczenia pamięci podręcznej DNS Chrome pod chrome: // net-internals / # dns
źródło
W moim przypadku miałem tylko jedną nazwę domeny, której potrzebowałem. Sugestie takie jak przełączanie trybu samolotowego, przeprowadzanie twardego restartu lub działania w chrome: // net-internals / # dns nie działały dla mnie. Zamiast tego tymczasowo zmieniłem ustawienia Wi-Fi, aby używać serwera nazw Google w wersji 8.8.8.8.
Oto kroki, które podjąłem:
Po wykonaniu tych kroków
ping
nazwa domeny w konsoli została zmieniona na poprawny adres IP i wydawało się, że zapisuje na starej pamięci podręcznej. Przypuszczalnie odwiedzenie domeny w przeglądarce będzie miało taki sam efekt.Kiedy wróciłem do Wi-Fi i ustawiłem „Ustawienia IP” z powrotem na „DHCP”, poprawna domena kontynuowała rozpoznawanie obecnego adresu IP.
To jest na Sony Xperia Z3 z Androidem 5.1.1
źródło
Na telefonie komórkowym Adroid 5.1, który wziął nieprawidłowy DNS, ponieważ został przełączony na wiele między dwiema sieciami WLAN; (Znak zapytania na połączeniu WLAN. Nie chciałem przywracać telefonu tak, jak to zrobiłem raz .. Engelsiz: DNS Changer naprawił to; )
źródło