Como limpar o cache do DNS no Ubuntu?

45

Estou tendo problemas relacionados à resolução de DNS no meu Ubuntu 9.10.
Antes de reclamar com meu ISP, eu gostaria de atualizar meu cache DNS local, como no Windows ipconfig /flushdns.

Como posso fazer isso no Ubuntu?

igorsantos07
fonte

Respostas:

54

Ah, o ubuntu não armazena em cache o DNS por padrão. Portanto, não há nada para liberar! (mas talvez o seu roteador SOHO faça). A instalação do nscd tornará o DNS do cache do ubuntu, após o qual você poderá limpá-lo - mas isso é além do ponto, quando você ainda não o instalou!

user42806
fonte
3
Por curiosidade, estou no 14.04 e a execução nslookupme diz que a resposta vem do servidor 127.0.0.1. Mas - que eu saiba - não tenho cache DNS instalado (nem nscdnem dnsmasq). Estou no Kubuntu ... isso pode ser uma coisa do KDE Network Manager?
Exhuma
@exhuma mesmo aqui no ubuntu 14.04, então não é uma coisa do kubuntu.
LJ_1102
2
@ LJ_1102 @ exhuma Esse seria o gerente de rede do Ubuntu, ele escuta como um servidor DNS local, mas encaminha todas as solicitações para o que for definido. Como efeito colateral (ou por design), isso permite que você altere os servidores DNS rapidamente da interface sem precisar de permissões de root. Veja, por exemplo, esta pergunta: unix.stackexchange.com/questions/59414/…
Raghd Hamzeh 15/10
19

O Ubuntu 12.04 em diante usa dnsmasq para um cache local. O envio de um SIGHUP (sudo killall -HUP dnsmasq) relerá o cache.

OBSERVAÇÕES
Quando recebe um SIGHUP, o dnsmasq limpa seu cache e recarrega / etc / hosts e / etc / ethers e qualquer arquivo fornecido por --dhcp-hostsfile, --dhcp-optsfile ou --addn-hosts. O script de alteração de concessão dhcp é chamado para todas as concessões DHCP existentes. Se --no-poll estiver definido, o SIGHUP também relerá o arquivo /etc/resolv.conf. SIGHUP NÃO relê o arquivo de configuração.

ytjohn
fonte
isso parece razoável. no entanto, tenho que encontrar outro dos problemas que costumava ter (relacionados a novos sites no / etc / hosts e Opera) para testar isso e marcar como aceito em vez do outro: P
igorsantos07
Isso é bom. Na verdade, me deparei com isso procurando limpar minha própria entrada de DNS em cache. Depois de encontrar a solução, achei que deveria adicionar minhas descobertas aqui. Não sei em que versão o Ubuntu começou a usar o dnsmasq.
ytjohn
1
Isso funciona e realmente deve ser marcado como a resposta!
HDave
1
Se edições minoritárias não fossem proibidas e desaprovadas, eu corrigiria "SIGUP" para SIGHUP .
James Haigh
@Igoru: Você pode usar digpara testar se o cache realmente foi limpo. Eu queria limpar o cache em um dos meus roteadores OpenWrt, para os quais tentei dig @192.168.0.3 nixos.orgvárias vezes (qualquer domínio existente serve). Enquanto armazenado em cache, ele normalmente teria um tempo de consulta de 1ms, mas após cada emissão killall -HUP dnsmasq(como root) no roteador, recebia cerca de 27ms após cada limpeza.
James Haigh
13

Tente o seguinte:

sudo /etc/init.d/dns-clean start

Funciona para mim.

Christian Molina
fonte
1
Acho que as coisas mudaram desde essa resposta, pois parece que isso não funcionará mais no 14.04. Ei, ubuntu, seria bom se houvesse uma interface para isso que não estivesse ligada a detalhes específicos de sistemas de resolução de nomes e versões de sistemas operacionais (e talvez distribuições de sistemas operacionais mais tarde ...).
Croad Langshan
Funciona em 15.04
Milan Simek 10/10
Trabalhou no ubuntu 14.04.5. Este script é fornecido pelo pacote pppconfig. Eu acho que não está incluído por padrão na distribuição.
ssoto
1

Acabei de ter esse problema com um site para o qual alterei o DNS e, pesquisando uma solução no Google, encontrei esta página.

Na minha experiência, o Firefox às vezes mantém seu próprio cache DNS e não o limpa a tempo. Portanto, se você está visualizando um site no Firefox e continua vendo o site antigo, experimentar o Chrome pode resolver o problema. Se isso funcionar, você pode limpar o cache no Firefox. Isso aconteceu no Ubuntu, não sei se isso acontece no Windows ou no OSX também.

Eu não tenho o nscd instalado. Notei, no entanto, que no terminal o novo DNS é encontrado alguns minutos depois, então o problema se resolveu.

SPRBRN
fonte
1

Dependendo do contexto da sua pergunta, você também pode precisar limpar o cache do seu navegador da web.

No Firefox, isso é feito por: preferências -> privacidade -> limpe seu histórico recente [marque a caixa de seleção "cache" lá]

No Chrome: navegue até chrome: // net-internals / # dns e pressione o botão "Limpar cache do host". (veja outra resposta )

Tapper
fonte