Як я можу очистити кеш-пам'ять DNS на телефоні Android? (Droid3, Пряники, коріння, щоб бути конкретними)
В ідеалі я шукаю команду для запуску через емулятор терміналу, щось подібне до
ipconfig /flushdns
На машині Windows.
Яка версія цього Linux?
Як я можу очистити кеш-пам'ять DNS на телефоні Android? (Droid3, Пряники, коріння, щоб бути конкретними)
В ідеалі я шукаю команду для запуску через емулятор терміналу, щось подібне до
ipconfig /flushdns
На машині Windows.
Яка версія цього Linux?
Відповіді:
У типовій системі Linux кеш очищається за допомогою запуску /etc/init.d/nscd restart, але принаймні мій ROM не використовує 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" (серед іншого). Я сам не пробував це, і крім того, здається, немає способу зробити лише це (лише одна кнопка "оптимізувати", яка "застосовує поліпшення"); також його ефекти можуть відрізнятися між пристроями (говорить опис програми) - але це може бути краще, ніж перезавантаження. Btw: хоча корінь не згадується як вимога, він все ще може знадобитися.
У Google Play є перелічені декілька "подібних додатків", але майте на увазі, що більшість з них включає оголошення Airpush та / або хочуть надмірних дозволів, тому я тут їх не назвав.
Ще одне можливе рішення (не перевірене власноруч) я знайшов у MadPC , здавалося б, цитуючи відповідь user8522 перед тим, як зазначити :
Останній варіант, але найінтенсивніший для самого користувача, якщо вони не хочуть просто почекати оновлення: Попросіть користувачів у налаштуваннях -> програми -> Мережеве розташування -> Очистити дані
Ще одне коротке керівництво згадує про інший простий спосіб очищення DNS (знову ж, я сам цього не перевіряв): просто перейдіть до літакового режиму (ой, немає мережі?) І назад (ах, це є) слід зробити свою справу. Можливо, це звучить нерозумно, але я міг уявити, що при вступі в режим літака Android робить щось подібне до цього /etc/init.d/networking stop, що має побічний ефект DNS.
У коментарях нижче dtumaykin запропонував дуже просте рішення : просто перехід у режим літака і назад може вже зробити це (звичайно, якщо побічний ефект від мережі зменшиться на пару секунд;) Хоча це може не спрацювати на деяких пристроях варто спробувати: без зайвих встановлень і їх легко виконувати навіть n00bs.
Якщо хтось спробував одне з цих рішень, підтвердження (або протилежне), безумовно, вітається :)
ndc resolver flushdefaultifі ndc resolver flushif wlan0; їм потрібен корінь. Існує також метод NetworkManagementService.flushDefaultDnsCache () , який вимагав просто CHANGE_NETWORK_STATE перед JB, але потім був заблокований до CONNECTIVITY_INTERNAL. Тож мабуть, був шалений спосіб очищення кешу DNS без корінця (після налаштування build.prop, щоб знищити кеш рівня Java), але він не працюватиме в JB.
У сучасних версіях Android є можливість очистити кеш-пам'ять DNS Chrome під хромом: // net-Internals / # dns
У моєму випадку у мене було лише одне доменне ім’я, яке мені потрібно було промити. Такі пропозиції, як перемикання режиму літака, виконання жорсткого перезавантаження або дії з chrome: // net-Internals / # dns для мене не працювали. Натомість я тимчасово змінив налаштування Wi-Fi, щоб використовувати сервер імен 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 виправив це; )