Flush DNS no Linux: Systemd resolvido, NetworkManager e NSCD
Publicados: 2025-09-26Quando seu sistema Linux se comporta estranhamente ao acessar sites - ou resolver domínios incorretos - pode ser hora de lavar o cache do DNS. Como o cache do seu navegador, o DNS Cache armazena dados temporários que ajudam a melhorar a velocidade da navegação na Web e reduzir a latência. No entanto, quando esse cache se torna desatualizado ou corrompido, pode levar a problemas de conectividade. Isso é especialmente importante nos cenários de desenvolvimento ou networking, onde os nomes de domínio mudam frequentemente. Neste artigo, exploraremos como lavar o cache DNS em sistemas Linux que usamresolução de Systemd,NetworkManagerouNSCD(Daemon de cache de serviço de serviço).
Entendendo o cache de DNS no Linux
O cache de DNS é um mecanismo que armazena pesquisas de DNS localmente. Isso impede que consultas repetidas para que o mesmo nome de domínio sejam ressentidas com os servidores DNS, o que pode melhorar o desempenho. No entanto, o Linux distribui as responsabilidades de resolução do DNS de maneira diferente, dependendo dos componentes ou serviços do sistema em uso.
Nas distribuições modernas, é mais provável que você encontre um dos seguintes sistemas de resolver:
- Resolvido do SystemD: comum em distribuições mais recentes como o Ubuntu 18.04+ e o Fedora.
- NetworkManager: Frequentemente trabalha com o SystemD resolvido ou outro back-end.
- NSCD(Daemon de cache de serviço de nome): encontrado em alguns sistemas tradicionais do UNIX e Enterprise Linux.
Cada um desses sistemas lida com o cache de DNS de maneira diferente, o que significa que o método para lavar o cache também varia. Vamos percorrer cada um em detalhes.
Cache de DNS de descarga em SystemD resolvido
O SystemD-resolvidoé um serviço fornecido peloSystemDpara gerenciar consultas e cache de DNS. Está se tornando o padrão em muitas distribuições principais do Linux. Você pode verificar se o seu sistema usa o SystemD resolvido pela execução:
systemctl is-active systemd-resolved
Se estiver ativo, prossiga para lavar o cache do DNS com o seguinte comando:
sudo systemd-resolve --flush-caches
Para confirmar que o cache foi limpo ou visualize as estatísticas atuais, você pode usar:
systemd-resolve --statistics
Este comando exibe métricas como o número de entradas de cache, sucessos e erros, ajudando você a garantir que a descarga de cache tenha sucesso.

Configuração e depuração resolvidas do SystemD
Para usuários avançados, a configuração do serviço reside em /etc/systemd/resolved.conf
. Você pode ajustar as configurações como os servidores DNS ou comportamentos de fallback. Se você tiver problemas persistentes de DNS, considere verificar os logs journalctl
pararesolução do SystemD:
journalctl -u systemd-resolved
Isso pode ser incrivelmente útil ao solucionar problemas de resolução de domínio decorrentes do DNS incapaz ou envenenamento por cache.
Usando o NetworkManager para atualizar o DNS
O NetworkManager é um utilitário que lida com a configuração de rede automaticamente em muitas distribuições Linux, incluindo ambientes de desktop como Gnome e KDE. Embora o próprio NetworkManager não cache o DNS, ele geralmente determina qual serviço (como o Systemd resolvido) lida com DNS.
Para atualizar as configurações do DNS usando o NetworkManager, você pode reiniciar o serviço:
sudo systemctl restart NetworkManager
Esse método força indiretamente uma revolução da DNS reiniciando conexões e serviços relacionados. Se você deseja ficar mais granular, também pode desativar e reativar interfaces de rede específicas. Por exemplo:
nmcli networking off nmcli networking on
Ou, para um dispositivo específico:
nmcli device disconnect eth0 nmcli device connect eth0
Esse método é particularmente útil ao alternar entre redes ou resolver problemas de propagação do domínio após as alterações do DNS.
Inspecionando as configurações do DNS com NMCLI
Se você deseja inspecionar qual DNS seu NetworkManager está usando, o comando:
nmcli dev show | grep DNS
listará os endereços DNS atualmente ativos. Isso é útil ao verificar se as configurações do DNS do DHCP ou do endereço estático são aplicadas corretamente.


Flushing DNS com NSCD (Daemon de cache de serviço de nome)
Embora seja menos comum nos modernos sistemas Linux,o NSCDainda é usado em ambientes corporativos e legados. Ele armazena em cache solicitações de serviço para acelerar a resolução para nomes de host, senhas e outros objetos de banco de dados. Primeiro, verifique se está instalado e em execução:
sudo systemctl status nscd
Se estiver ativo, a descarga do cache do DNS é direta:
sudo nscd -i hosts
Este comando diz ao NSCD para invalidar (-i) suas entradas de cache para nomes de host. Se você quiser liberar tudo, não apenas as entradas do DNS, use:
sudo nscd -I
Isso recarregará toda a configuração e limpar dados em cache para todos os bancos de dados suportados.
Configurando e monitorando o NSCD
O NSCD é configurado via /etc/nscd.conf
. Você pode ativar ou desativar o cache para vários tipos de dados, como:
- Passwd
- grupo
- anfitriões
O arquivo é bem contratado, tornando-o razoavelmente acessível. O monitoramento de logs via journalctl -u nscd
permite ficar de olho em seu comportamento e identificar possíveis problemas.
Como determinar qual mecanismo de cache você está usando
Não tenho certeza em qual sistema sua máquina Linux depende do cache de DNS? Aqui estão algumas verificações rápidas:
- O
systemd-resolve --status
retorna uma saída significativa? Se sim, seu sistema provavelmente usa o SystemD resolvido. - O
nscd -g
fornece entradas de tabela? Você pode estar usandoo NSCD. - O
resolvectl
funciona em seu sistema? Essa é uma boa sugestão pararesolução de SystemD. -
dnsmasq
ouBIND
está instalado? Isso aponta para configurações mais avançadas que exigem etapas separadas.
A identificação do resolvedor de DNS em uso é crucial antes de tentar liberar ou depurar o cache DNS, pois a descarga do cache errada não resolverá seu problema.
Por que descarregar regularmente o DNS é benéfico
Embora o cache do DNS aumente o desempenho, ele também pode ser problemático. Eis o porquê e quando você pode querer libertá -lo:
- Após alterar as entradas do DNS:os caches não influenciados podem apontar para os servidores IPS ou DNS antigos.
- Problemas de solucionar problemas de conectividade:o cache corrupto ou envenenado leva a resoluções com falha.
- Cenários da era do desenvolvimento:ao testar uma migração de domínio ou alternar entre servidores de estadiamento e produção.
A lavagem regular do cache do DNS ajuda a manter a saúde do sistema e evita problemas inesperados de acesso ao local - especialmente para usuários de energia, administradores do sistema e desenvolvedores.
Dicas e ferramentas avançadas
Se você estiver trabalhando em um ambiente complexo ou precisar de mais controle sobre a resolução do DNS, aqui estão algumas ferramentas e dicas de bônus:
- Dnsmasq:atua como um encaminhador DNS leve com recursos de cache.
- Bind (nomeado):servidor DNS de nível corporativo com cache de zona ajustável e expiração personalizada.
dig
enslookup
:Ferramentas de depuração para testar os registros DNS em tempo real.host
:simples e direto para consultar registros DNS sem interrupção do cache.

Pensamentos finais
Langar o cache do DNS no Linux é uma tarefa direta - uma vez que você sabe qual ferramenta ou serviço lida com a resolução do DNS em seu sistema. Esteja você usandoo SystemD, resolvido,NetworkManagerouNSCD, entender como cada um opera o armará com as habilidades para resolver rapidamente qualquer cenário de solução de problemas relacionados ao DNS. Manter seu cache de DNS limpo não é apenas uma boa higiene - é essencial para uma resolução de nomes de domínio confiável e precisa no cenário dinâmico de rede dinâmico de hoje.