Как я могу очистить кэш DNS на моем телефоне Android? (Droid3, Gingerbread, чтобы быть точным)
В идеале я ищу команду для запуска через эмулятор терминала, что-то похожее на
ipconfig /flushdns
На машине Windows.
Что это за версия для Linux?
Как я могу очистить кэш DNS на моем телефоне Android? (Droid3, Gingerbread, чтобы быть точным)
В идеале я ищу команду для запуска через эмулятор терминала, что-то похожее на
ipconfig /flushdns
На машине Windows.
Что это за версия для Linux?
Ответы:
В типичной системе Linux кэш очищается при запуске /etc/init.d/nscd restart
, но, по крайней мере, мое ПЗУ не использует nscd для кеширования DNS. Вы можете проверить, если ваш, но я сомневаюсь. Я видел предположения о том, что очистка кэша браузера также очистит кэш DNS, но один верный способ - выполнить полную перезагрузку (выключение, удаление батареи на 30 секунд, повторное подключение батареи и загрузка).
По умолчанию адреса кэшируются на 600 секунд (10 минут). Неудачные поиски кэшируются на 10 секунд. Из всего, что я видел, нет ничего встроенного для очистки кеша. Это, очевидно, сообщаемая ошибка в Android из-за способа хранения DNS-кэша. Очистка кэша браузера не затрагивает DNS, «жесткий сброс» очищает его, потому что он просто истекает.
Можем ли мы задать основную причину необходимости очищать кэш DNS? Возможно, есть другое решение, которое пропущено, потому что мы не смотрим на общую картину.
networkaddress.cache.ttl
и networkaddress.cache.negative.ttl
в build.prop
.
Единственный способ сделать это в Android - это выполнить полную перезагрузку. Необходимые инструменты командной строки обычно недоступны, однако в моих тестах полная перезагрузка всегда выполняла мои задачи (Galaxy Nexus и HTC Desire, различные ПЗУ).
Это боль, но она быстрее, чем тайм-аут 10 минут.
Существуют также приложения, такие как Internet Booster, обещающие «очистить кэш DNS» (среди прочего). Я не пробовал сам, и, кроме того, кажется, что нет способа сделать это (только одна кнопка «оптимизировать», которая «применяет улучшения»); Кроме того, его эффекты могут отличаться для разных устройств (говорит описание приложения), но это может быть лучше, чем перезагрузка. Кстати: хотя и не упоминается root как требование, оно все равно может понадобиться.
В Google Play есть несколько «похожих приложений», но имейте в виду, что большинство из них содержат рекламу Airpush и / или требуют чрезмерных разрешений, поэтому я не назвал их здесь.
Другое возможное решение (не проверенное мной) я нашел на MadPC , по-видимому цитируя ответ user8522, прежде чем заявить:
Последний вариант, но наиболее интенсивный для самих пользователей, если они не хотят просто ждать обновления: пусть ваши пользователи зайдут в настройки -> приложения -> сетевое расположение -> очистить данные
В другом коротком руководстве рассказывается о другом простом способе очистки DNS (опять же, я сам этого не проверял): просто переключитесь в режим полета (упс, нет сети?), И обратно (ах, вот оно) должно сработать. Звучит глупо, но я мог представить, что при входе в режим полета Android делает нечто похожее /etc/init.d/networking stop
, что имеет побочный эффект DNS-сброса.
Dtumaykin предоставил очень простое решение в комментариях ниже: простое переключение в режим полета и обратно может уже сделать это (конечно, с побочным эффектом сети, падающей на пару секунд;) Хотя это может не сработать на некоторых устройствах стоит попробовать: никаких дополнительных инсталляций и легко выполняется даже на n00bs.
Если кто-нибудь попробовал одно из этих решений, то подтверждение (или обратное) обязательно приветствуется :)
ndc resolver flushdefaultif
и ndc resolver flushif wlan0
; они требуют root. Существует также метод NetworkManagementService.flushDefaultDnsCache () , который требовал просто CHANGE_NETWORK_STATE до JB, но затем был заблокирован до CONNECTIVITY_INTERNAL. Так что, очевидно, был хакерский способ очистки DNS-кэша без рута (после настройки build.prop для уничтожения кэша уровня Java), но он не будет работать в JB.
В современных версиях Android есть возможность очистить DNS-кеш Chrome в chrome: // net-internals / # dns
В моем случае у меня было только одно доменное имя, которое мне нужно было сбросить. Такие предложения, как переключение в режим «В самолете», выполнение принудительной перезагрузки или действия в chrome: // net-internals / # dns, у меня не сработали. Вместо этого я временно изменил настройки WiFi, чтобы использовать сервер имен Google на 8.8.8.8.
Вот шаги, которые я предпринял:
После этих шагов, когда я ping
редактировал доменное имя в консоли, оно преобразовывалось в правильный IP-адрес и казалось, что записывалось поверх старого кэшированного. Предположительно, посещение домена в браузере будет иметь тот же эффект.
Когда я вернулся к WiFi и установил «Настройки IP» обратно на «DHCP», правильный домен продолжал преобразовываться в текущий IP-адрес.
Это на Sony Xperia Z3 под управлением Android 5.1.1
На Adroid 5.1 Mobile, который принял неправильный DNS, так как переключается на много между двумя WLAN; (Вопросительный знак на WLAN Connexion. Я не хотел восстанавливать свой телефон, как я делал это однажды .. Engelsiz: DNS Changer исправил это; )