Como posso limpar meu cache DNS no meu telefone Android? (Droid3, Gingerbread, enraizado para ser específico)
Idealmente, estou procurando um comando para executar através de um emulador de terminal, algo semelhante a
ipconfig /flushdns
Em uma máquina Windows.
Qual é a versão Linux disso?
Respostas:
Em um sistema Linux típico, o cache é limpo pela execução
/etc/init.d/nscd restart
, mas pelo menos minha ROM não usa o nscd para armazenar em cache o DNS. Você pode verificar se o seu faz, mas duvido. Eu já vi sugestões de que limpar o cache do navegador também limparia o cache do DNS, mas uma maneira certa é fazer uma reinicialização completa (desligamento, remova a bateria por 30 anos, reconecte a bateria e inicialize).fonte
Os endereços são armazenados em cache por 600 segundos (10 minutos) por padrão. As pesquisas com falha são armazenadas em cache por 10 segundos. De tudo o que vi, não há nada incorporado para liberar o cache. Aparentemente, esse é um bug relatado no Android devido à maneira como ele armazena o cache do DNS. A limpeza do cache do navegador não toca no DNS, a "reinicialização forçada" o limpa porque simplesmente atinge o tempo limite.
Podemos perguntar o motivo subjacente da necessidade de limpar o cache do DNS? Talvez exista outra solução perdida, porque não estamos olhando para o quadro geral.
fonte
networkaddress.cache.ttl
enetworkaddress.cache.negative.ttl
dentrobuild.prop
.A única maneira de fazer isso no Android é fazer uma reinicialização completa. As ferramentas de linha de comando necessárias normalmente não estão disponíveis, no entanto, em meus testes, uma reinicialização rígida sempre fez o truque para mim (Galaxy Nexus e HTC Desire, várias ROMs).
Isso é trabalhoso, mas é mais rápido que o tempo limite do cache de 10 minutos.
fonte
Também existem aplicativos como o Internet Booster prometendo "limpar o cache do DNS" (entre outras coisas). Eu não tentei fazer isso sozinho e, além disso, parece que não há maneira de fazer apenas isso (apenas um botão "otimizar" que "aplica melhorias"); também seus efeitos podem diferir entre os dispositivos (diz a descrição do aplicativo) - mas pode ser melhor do que uma reinicialização. Btw: apesar de não mencionar raiz como requisito, ainda pode ser necessário.
Existem vários "aplicativos semelhantes" listados no Google Play - mas lembre-se de que a maioria deles inclui anúncios Airpush e / ou deseja permissões excessivas, por isso não os nomeiei aqui.
Outra solução possível (não testada por mim) que encontrei no MadPC , aparentemente citando a resposta do user8522 antes de declarar:
Outro breve tutorial menciona uma maneira fácil e diferente de liberar o DNS (novamente, eu mesmo não testei isso): basta alternar para o modo avião (oops, sem rede?) E voltar (ah, aí está) deve fazer o truque. Pode parecer estúpido, mas eu poderia imaginar que ao entrar no modo avião, o Android faz algo semelhante ao
/etc/init.d/networking stop
que tem um DNS flush como efeito colateral.Uma solução muito fácil foi fornecida por dtumaykin nos comentários abaixo: basta alternar para o modo avião e voltar já (é claro, com o efeito colateral da rede sendo desativado por alguns segundos;) Embora possa não funcionar em alguns dispositivos, vale a pena tentar: sem instalações extras e facilmente executadas até pelo n00bs.
Se alguém tentou uma dessas soluções, a confirmação (ou o oposto) é certamente bem-vinda :)
fonte
ndc resolver flushdefaultif
endc resolver flushif wlan0
; eles exigem raiz. Há também o método NetworkManagementService.flushDefaultDnsCache () , que exigiu apenas CHANGE_NETWORK_STATE antes do JB, mas foi bloqueado para CONNECTIVITY_INTERNAL. Aparentemente, havia uma maneira hackeada de limpar o cache DNS sem raiz (após o ajuste build.prop para eliminar o cache no nível do Java), mas não funcionará no JB.Nas versões modernas do Android, há uma opção para limpar o cache DNS do Chrome em chrome: // net-internals / # dns
fonte
No meu caso, eu tinha apenas um nome de domínio que precisava liberado. Sugestões como alternar o modo avião, executar uma reinicialização forçada ou as ações no chrome: // net-internals / # dns não funcionaram para mim. Em vez disso, alterei temporariamente minhas configurações de WiFi para usar o servidor de nomes do Google em 8.8.8.8.
Estes são os passos que tomei:
Após essas etapas, quando
ping
editei o nome de domínio no console, ele foi resolvido para o endereço IP correto e parecia escrever sobre o antigo em cache. Presumivelmente, visitar o domínio em um navegador terá o mesmo efeito.Quando voltei ao WiFi e defina "Configurações de IP" de volta para "DHCP", o domínio correto continuou a ser resolvido para o endereço IP atual.
Este é um Sony Xperia Z3 executando o Android 5.1.1
fonte
Em um Adroid 5.1 Mobile que adotou um DNS errado, pois é alternado entre duas WLANs (um ponto de interrogação em uma conexão WLAN. Eu não queria restaurar meu telefone como o fiz uma vez .. Engelsiz: DNS Changer o corrigiu; )
fonte