Como Limpar a Cache DNS no macOS (Sequoia, Sonoma, Ventura)

Aprende a limpar a tua cache DNS no macOS com um comando de terminal. Corrige registos DNS desatualizados após alterações de domínio, redireccionamentos quebrados e problemas de resolução estranhos.

Os problemas de cache DNS são fáceis de diagnosticar erroneamente. Atualizas os registos de um domínio, esperas pela propagação, abres um browser e o site antigo ainda carrega. Ou um site que costumava funcionar recusa-se subitamente a ligar. O servidor está bem. A tua internet está bem. O problema é que o teu Mac guardou em cache uma resposta DNS desatualizada e ainda a está a servir.

Limpar a cache DNS diz ao macOS para esquecer essas respostas guardadas e perguntar novamente do início. Demora um comando e cerca de cinco segundos.

Por que razão o teu Mac guarda registos DNS em cache

Cada vez que visitas um website, o teu Mac tem de traduzir o nome de domínio (como example.com) num endereço IP. Essa tradução passa por um processo: o teu Mac verifica primeiro a sua cache DNS local, depois pergunta a um resolvedor DNS (geralmente o do teu FSI ou um público como o 1.1.1.1), e se nenhum tiver a resposta, o resolvedor contacta o nameserver autoritativo para esse domínio.

A cache é normalmente uma coisa boa. Torna a navegação mais rápida porque o teu Mac salta toda a cadeia de consulta para sites que visitaste recentemente. O problema surge quando os registos DNS mudam e a resposta em cache do teu Mac ainda aponta para o destino antigo. O TTL (time to live) de um registo DNS diz aos resolvedores quanto tempo o guardar em cache, mas o macOS nem sempre o respeita com precisão.

Quando a limpeza de DNS realmente ajuda

Nem todo o problema de rede é um problema de cache DNS. A limpeza ajuda quando:

  • Acabaste de mudar os registos DNS de um domínio e o teu Mac ainda está a resolver para o IP antigo
  • Um site redireciona para o lugar errado mesmo que a alteração de DNS tenha propagado para todo o lado
  • Mudaste de uma VPN ou configuração DNS personalizada e alguns domínios estão a resolver incorretamente
  • Um domínio que definitivamente existe devolve “servidor não encontrado” na tua máquina mas resolve bem noutros lugares

Se um site está apenas lento, ou as ligações excedem o tempo limite, ou estás a obter erros TLS, limpar o DNS provavelmente não ajudará. São problemas diferentes.

O comando para limpar a cache DNS no macOS

O comando é o mesmo nas versões recentes do macOS. Abre o Terminal (encontra-o em Aplicações > Utilitários, ou pesquisa com o Spotlight) e executa:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Escreve a tua palavra-passe quando solicitado. O Terminal não mostrará caracteres à medida que escreves, o que é normal. Não verás qualquer saída de confirmação quando tiver sucesso, o que também é normal.

Este comando funciona em:

  • macOS Sequoia (15.x)
  • macOS Sonoma (14.x)
  • macOS Ventura (13.x)

Também funciona no Monterey e Big Sur se ainda estiveres nessas versões.

O comando faz duas coisas. dscacheutil -flushcache limpa a cache de serviços de diretório, que inclui o DNS. killall -HUP mDNSResponder envia um sinal ao processo de resposta DNS do macOS, dizendo-lhe para recarregar. Precisas de ambos. Executar apenas dscacheutil costumava ser suficiente em versões mais antigas do macOS, mas deixou de ser suficiente há anos.

O prefixo sudo é necessário porque são operações ao nível do sistema. Sem ele, ambos os comandos falharão silenciosamente ou devolverão um erro de permissões.

Verificar se a limpeza funcionou

Após limpar, abre um novo separador do browser e visita o domínio com que tinhas problemas. Se o problema era cache desatualizada, deverás ver o site correto.

Para uma verificação mais definitiva, podes fazer uma consulta DNS e confirmar que o endereço IP que estás a obter corresponde ao que esperas. A ferramenta DNS Lookup do NetUtil torna isso rápido: abre a aplicação, vai para DNS Lookup, escreve o domínio e executa a consulta. O resultado mostra o registo A (endereço IPv4) ou AAAA (IPv6) para o qual o teu Mac está agora a resolver. Se o IP corresponde ao teu registo DNS atualizado, a limpeza funcionou e o novo registo está a ser utilizado.

Se vires o IP antigo, o problema não é a tua cache local. Provavelmente ainda está a propagar através dos resolvedores upstream, ou a alteração de DNS ainda não entrou completamente em vigor. Nesse caso, espera alguns minutos e tenta novamente.

Podes também usar o Terminal diretamente com nslookup example.com ou dig example.com para verificar o IP resolvido.

Uma limpeza, feita

Limpar o DNS no macOS é uma única linha que demora segundos. O resultado não persiste de forma visível, apenas limpa as respostas em cache desatualizadas para que o teu Mac comece do início. Se a alteração de DNS que estás a aguardar tiver propagado, estarás a resolver corretamente imediatamente depois. Se não tiver, a limpeza também não causará qualquer dano, e podes executá-la novamente assim que a propagação for concluída.

O NetUtil inclui uma ferramenta DNS Lookup juntamente com Ping, Traceroute, Whois, Port Scan e Netstat. É uma aplicação macOS gratuita que substitui o Network Utility que a Apple removeu no macOS Big Sur.