Como liberar o cache DNS no OS X Yosemite com o DiscoveryUtil

Índice:

Anonim

Alguns usuários de Mac podem encontrar situações em que precisam liberar o cache DNS no OS X para que um servidor de nomes resolva corretamente ou para que alguma alteração de endereço DNS seja notada por seu computador individual. Isso é particularmente relevante para administradores de sistema, administradores de rede e desenvolvedores da Web, mas certamente há situações em que outros usuários também podem precisar despejar e redefinir os caches DNS, como se um usuário tivesse modificado o arquivo /etc/hosts e precisasse das alterações para entrar em vigor sem reiniciar o Mac.

Os usuários de Mac de longa data saberão que a redefinição do cache DNS foi alterada em quase todas as versões do Mac OS X, e o OS X Yosemite não é diferente, provavelmente devido à descoberta da substituição do mDNSResponder e, em seguida, da mudança de volta para o mDNSResponder ainda denovo. Independentemente disso, liberar o cache DNS no Yosemite continua sendo um comando de terminal, mas difere um pouco dependendo da versão exata que você está usando do sistema operacional e, na verdade, permite que você limpe o DNS Multicast ou o DNS Unicast, ou ambos. Você provavelmente desejará limpar ambos para uma boa medida se estiver tentando redefinir todos os caches DNS no Mac.

Limpe DNS Cache no OS X Yosemite 10.10.4 e OS X 10.10.5

Do OS X 10.10.4 passando para 10.10.5, incluindo 10.11, a Apple abandonou o discoveryd e o substituiu (ou melhor, voltou a ser) mDNSResponder. Portanto, para limpar os caches DNS no OS X Yosemite 10.10.4 e 10.11 El Capitan, e presumivelmente em diante, a sequência de comandos é a seguinte:

sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder;say cache flushed

Esse comando limpa todos os caches DNS para OS X 10.10.4+.

Usuários antigos de Mac devem se lembrar que a string de comando é basicamente o que funcionava na versão anterior ao Yosemite. Com isso dito, as versões anteriores do OS X Yosemite antes de 10.10.4 usarão uma sequência de comando diferente discutida abaixo.

Limpando caches DNS no OS X Yosemite (10.10, 10.10.1, 10.10.2, 10.10.3)

Você precisará usar o Terminal para redefinir o cache. Você pode encontrar o aplicativo Terminal em /Aplicativos/Utilitários/ ou iniciá-lo com o Spotlight. Para limpar completamente todos os caches DNS na versão mais recente do OS X, direcione MDNS (DNS Multicast) e UDNS (DNS Unicast) com dois comandos diferentes.

Limpar Cache MDNS

sudo discoveryutil mdnsflushcache

Pressione Enter e digite a senha do administrador quando solicitado.

Limpar Cache UDNS

sudo discoveryutil udnsflushcaches

Novamente, pressione Enter e digite a senha do administrador quando solicitado. Observe que caches é plural com o último comando, uma diferença de sintaxe sutil, mas importante.

Limpar e redefinir todos os caches DNS no OS X Yosemite

Você também pode agrupar os dois comandos acima, se quiser, o seguinte anunciará verbalmente quando os caches forem limpos:

sudo discoveryutil mdnsflushcache;sudo discoveryutil udnsflushcaches;say flushed

Na verdade, os caches MDNS e UDNS são diferentes, mas descobri que, para que o cache DNS funcional seja realmente limpo no OS X Yosemite, ambos os comandos são necessários. É perfeitamente possível que você só precise liberar um ou outro para suas próprias necessidades.

Para aqueles que estão se perguntando, o OS X Yosemite eliminou o mDNSResponder, então não há necessidade de matar o processo mDNSResponder para atualizar os caches DNS como nas versões anteriores do Mac OS X.

Verificando os detalhes do cache DNS no OS X Yosemite

Se você está alterando ou pretende alterar o DNS e deseja ver alguns detalhes sobre o que está atualmente em cache, você pode usar os seguintes comandos:

Obter estatísticas de cache UDNS:

sudo discoveryutil udnscachestats

Você também pode recuperar detalhes sobre o cache DNS multicast com o seguinte:

sudo discoveryutil mdnscachestats

Ambos oferecerão detalhes sobre o número de entradas DNS armazenadas em cache, oferecendo um relatório semelhante a este:

UDNS Cache Stats: Cache 962 of 1750

Se você executar esses comandos antes e depois de executar as variações do flushcache, descobrirá que eles devem ser redefinidos para o cache de 0 entradas, assim:

MDNS Cache Stats: lo0: Cached 0 of 2000

Como saber se mudou?

Depois de limpar o cache, se você quiser determinar se um servidor de nomes ou IP realmente mudou, você pode usar o comando 'dig' com a URL da seguinte forma:

dig osxdaily.com

dig é semelhante ao nslookup, exceto que tem uma saída melhor e mais alguns detalhes incluídos, tempo de consulta incluído, o servidor DNS definido usado para acessar o domínio e um registro de data e hora, todos os quais podem ser valioso ao solucionar problemas do servidor de nomes. A propósito, se o tempo de consulta para isso aparecer lento, você deve usar uma ferramenta como namebench para encontrar um servidor DNS mais rápido para você, geralmente Google DNS ou OpenDNS.

Conhece outro truque de cache DNS para as versões mais recentes do OS X? Deixe-nos saber nos comentários.

Como liberar o cache DNS no OS X Yosemite com o DiscoveryUtil