¿Cómo puedo borrar mi caché de DNS en mi teléfono Android? (Droid3, Gingerbread, rooteado para ser específico)
Idealmente, estoy buscando un comando para ejecutar a través de un emulador de terminal, algo similar a
ipconfig /flushdns
En una máquina de Windows.
¿Cuál es la versión de Linux de esto?
En un sistema Linux típico, el caché se borra ejecutando /etc/init.d/nscd restart
, pero al menos mi ROM no usa nscd para almacenar DNS en caché. Puedes comprobar si el tuyo lo hace, pero lo dudo. He visto sugerencias de que borrar el caché del navegador también borraría el caché de DNS, pero una forma segura es hacer un reinicio completo (apagar, quitar la batería durante 30 segundos, volver a conectar la batería y arrancar).
Las direcciones se almacenan en caché durante 600 segundos (10 minutos) de forma predeterminada. Las búsquedas fallidas se almacenan en caché durante 10 segundos. Por todo lo que he visto, no hay nada incorporado para vaciar el caché. Aparentemente, este es un error informado en Android debido a la forma en que almacena el caché de DNS. Borrar el caché del navegador no toca el DNS, el "restablecimiento completo" lo borra porque simplemente se agota el tiempo de espera.
¿Podemos preguntar la razón subyacente por la que necesitamos borrar el caché de DNS? Tal vez hay otra solución que se pasa por alto porque no estamos viendo el panorama general.
networkaddress.cache.ttl
y networkaddress.cache.negative.ttl
en build.prop
.La única forma de hacer esto en Android es hacer un reinicio completo. Las herramientas de línea de comandos necesarias normalmente no están disponibles, sin embargo, en mis pruebas, un reinicio completo siempre me ha funcionado (Galaxy Nexus y HTC Desire, varias ROM).
Esto es molesto, pero es más rápido que el tiempo de espera de caché de 10 minutos.
También hay aplicaciones como Internet Booster que prometen "borrar el caché de DNS" (entre otras cosas). No lo probé yo mismo, y además parece que no hay forma de hacer solo eso (solo un botón "optimizar" que "aplica mejoras"); también sus efectos pueden diferir entre dispositivos (dice la descripción de la aplicación), pero podría ser mejor que reiniciar. Por cierto: aunque no se menciona la raíz como requisito, aún podría ser necesario.
Hay varias "aplicaciones similares" enumeradas en Google Play, pero tenga en cuenta que la mayoría de ellas incluyen anuncios de Airpush y/o requieren permisos excesivos, razón por la cual no las nombré aquí.
Otra posible solución (no probada por mí mismo) que encontré en MadPC , aparentemente citando la respuesta del usuario 8522 antes de afirmar:
La última opción, pero la más intensiva para el propio usuario, a menos que solo quiera esperar a que finalice la actualización: haga que sus usuarios vayan a configuración -> aplicaciones -> Ubicación de red -> Borrar datos
Otro breve tutorial menciona una manera diferente y fácil de vaciar el DNS (nuevamente, no lo probé yo mismo): Simplemente cambie al modo avión (¡vaya!, ¿no hay red?) y regrese (ah, ahí está) debería funcionar. Puede sonar estúpido, pero me imagino que cuando ingresa al modo avión, Android hace algo similar a /etc/init.d/networking stop
, que tiene un DNS flush como efecto secundario.
dtumaykin proporcionó una solución muy fácil en los comentarios a continuación: simplemente cambiar al modo avión y volver ya podría ser suficiente (por supuesto, con el efecto secundario de que la red se cae durante un par de segundos;) Aunque podría no funcionar en algunos dispositivos, vale la pena intentarlo: sin instalaciones adicionales y fácil de realizar incluso por n00bs.
Si alguien probó una de esas soluciones, la confirmación (o lo contrario) seguramente será bienvenida :)
ndc resolver flushdefaultif
y ndc resolver flushif wlan0
; requieren raíz. También existe el método NetworkManagementService.flushDefaultDnsCache() , que solo requería CHANGE_NETWORK_STATE antes de JB, pero luego se bloqueó en CONNECTIVITY_INTERNAL. Por lo tanto, aparentemente había una forma de limpiar el caché de DNS sin root (después de ajustar build.prop para eliminar el caché de nivel de Java), pero no funcionará en JB.En las versiones modernas de Android, existe una opción para borrar la caché de DNS de Chrome en chrome://net-internals/#dns
En mi caso, solo tenía un nombre de dominio que necesitaba vaciar. Las sugerencias como alternar el Modo avión, realizar un reinicio completo o las acciones en chrome://net-internals/#dns no me funcionaron. En cambio, cambié temporalmente mi configuración de WiFi para usar el servidor de nombres de Google en 8.8.8.8.
Estos son los pasos que tomé:
Después de estos pasos, cuando ping
edité el nombre de dominio en la consola, se resolvió en la dirección IP correcta y pareció escribir sobre la antigua en caché. Presumiblemente, visitar el dominio en un navegador tendrá el mismo efecto.
Cuando volví a WiFi y configuré "Configuración de IP" nuevamente en "DHCP", el dominio correcto continuó resolviéndose en la dirección IP actual.
Esto es en un Sony Xperia Z3 con Android 5.1.1
En un móvil Android 5.1 que tomó un DNS incorrecto ya que se cambió mucho entre dos WLAN; (un signo de interrogación en una conexión WLAN. No quería restaurar mi teléfono como lo hice una vez.. Engelsiz: DNS Changer lo arregló; )
onik
Steve Robbins
pj brunet
jason ángel