Flush DNS no Linux: Systemd resolvido, NetworkManager e NSCD

Publicados: 2025-09-26

Quando 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 ou BIND 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 e nslookup :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.
Por que mudar os keybinds no Survivalcraft 2?

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.