Corrigir o problema "Falha temporária na resolução de DNS" no Debian 12 com systemd-resolved

O erro Temporary failure in name resolutionsignifica que um aplicativo não conseguiu converter um nome de host, como `hostname`, deb.debian.orgem um endereço IP. No Debian 12 (Bookworm), isso não significa automaticamente que o DNS systemd-resolvedesteja com defeito. O Debian 12 não instala systemd-resolvedo DNS por padrão, e o gerenciamento do DNS pode ser feito diretamente pelo NetworkManager, ifupdown, ferramentas DHCP ou outro resolvedor. Se você habilitou o DNS deliberadamente systemd-resolved, a solução mais rápida é identificar qual camada está falhando antes de alterar a configuração.

Esta referência prática concentra-se em sistemas que usam, ou pretendem usar, o systemd-resolved systemd-resolved. A documentação do pacote Bookworm do Debian afirma que a instalação do systemd-resolved systemd-resolvedalterna /etc/resolv.confpara o gerenciamento do serviço. O próprio serviço fornece um stub DNS local 127.0.0.53e aceita informações DNS upstream da configuração global, da configuração de rede por link, do DHCP resolvectle de serviços de gerenciamento de rede. Consulte a página do pacote systemd-resolved do Debian e o manual do systemd-resolved do Debian .

Lista de verificação para diagnóstico rápido

VerificarComandoO que o resultado lhe diz
Caminho de rede básicoping -c 3 1.1.1.1Se um endereço IP funcionar, mas um nome de host não, investigue o DNS. O ICMP pode ser bloqueado, portanto, não considere uma falha no ping como prova de que a rede está inativa.
Serviço de resoluçãosystemctl is-active systemd-resolvedactiveConfirma que o daemon está em execução; não prova que o DNS upstream esteja utilizável.
DNS eficazresolvectl statusExibe os servidores DNS globais e por link, escopos, domínios de roteamento e o modo de resolução ativo.
caminho de pesquisa do glibcgetent ahosts debian.orgTesta a resolução de nomes de host através do caminho do Name Service Switch do sistema, em vez de usar apenas uma ferramenta específica de DNS.
Registros do resolvedorjournalctl -u systemd-resolved -bÚtil para servidores DNS indisponíveis, comportamento alternativo e problemas de protocolo.

1. Confirme se o problema é de DNS e não de conectividade geral.

Comece testando um nome de host e depois um endereço IP:

getent ahosts debian.org
ping -c 3 debian.org
ping -c 3 1.1.1.1

Se a pesquisa do nome do host falhar, mas o teste de IP direto for bem-sucedido, o DNS é provavelmente o domínio com problema. Se ambos falharem, inspecione primeiro a interface, a rota, o gateway, a VLAN, a associação Wi-Fi, o firewall ou a rede upstream. Uma alteração no DNS não pode corrigir uma rota padrão ausente.

O terminal mostra uma falha na pesquisa do nome do host Debian, enquanto um ping direto para 1.1.1.1 é bem-sucedido.
Um ping direto pelo endereço IP funciona, enquanto a resolução de debian.org falha, um sinal útil de que a conectividade existe, mas a resolução de DNS está quebrada.

Para uma verificação de roteamento mais determinística, execute também:

ip address
ip route

Normalmente, você deve ter um endereço na interface esperada e uma rota padrão. O nome exato da interface pode ser enp1s0, ens160, eth0, ou algo diferente.

2. Verifique se o systemd-resolved está realmente em uso.

Não assuma que o problema esteja presente apenas porque a máquina usa o systemd. Verifique tanto o pacote quanto o serviço:

dpkg -s systemd-resolved 2>/dev/null | grep '^Status'
systemctl status systemd-resolved --no-pager
resolvectl status

Se o pacote estiver ausente e sua máquina tiver outro sistema de gerenciamento de DNS funcionando, a instalação systemd-resolvednão será automaticamente a solução correta. Se o sistema deveria usá-lo e o serviço estiver instalado, mas parado, habilite-o e inicie-o:

sudo systemctl enable --now systemd-resolved

Se esse comando falhar, verifique os registros antes de reiniciar o serviço repetidamente:

journalctl -u systemd-resolved -b --no-pager

3. Inspecione o arquivo /etc/resolv.conf antes de substituí-lo.

O erro de configuração mais comum é tratar /etc/resolv.confo arquivo como um arquivo isolado. Com o systemd-resolved systemd-resolved, ele pode operar em vários modos suportados. O modo stub recomendado pelo upstream vincula-se /etc/resolv.confa /run/systemd/resolve/stub-resolv.conf`/etc/sysctl 127.0.0.53.../run/systemd/resolve/resolv.conf

ls -l /etc/resolv.conf
cat /etc/resolv.conf
O terminal exibe o arquivo /etc/resolv.conf como um arquivo comum contendo servidores DNS gerados pelo NetworkManager.
Verifique se o arquivo /etc/resolv.conf é um arquivo comum ou um link simbólico antes de alterá-lo; diferentes gerenciadores de rede usam diferentes modelos de propriedade.

Um arquivo regular não é automaticamente incorreto. O NetworkManager ou outro gerenciador de resolução pode intencionalmente ser o proprietário dele. No entanto, se este host foi projetado para usar o modo stub resolvido pelo systemd, um arquivo regular desatualizado, um link simbólico inválido ou um arquivo apontando para servidores de nomes inacessíveis pode causar falhas na pesquisa.

Restaure o link stub recomendado quando o modo stub for utilizado.

sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
sudo systemctl restart systemd-resolved
ls -l /etc/resolv.conf
cat /etc/resolv.conf
O terminal está restaurando o arquivo /etc/resolv.conf para o link simbólico systemd-resolved stub-resolv.conf e mostrando o servidor de nomes 127.0.0.53.
Quando este host estiver usando intencionalmente o systemd-resolved no modo stub, o arquivo /etc/resolv.conf pode apontar para o arquivo stub mantido em /run/systemd/resolve/stub-resolv.conf.

A presença do nome nameserver 127.0.0.53no arquivo stub é esperada. Trata-se do listener local, não do servidor DNS upstream. Use ` resolvectl statussystemd-resolved` para verificar quais servidores upstream o systemd-resolved realmente contatará. Essa distinção está documentada no manual do Bookworm do systemd-resolved .

4. Verifique se o systemd-resolved possui um servidor DNS upstream utilizável.

Correr:

resolvectl status

Concentre-se no link que carrega a rota padrão. Uma configuração saudável normalmente deve mostrar um ou mais servidores DNS para esse link ou servidores DNS globais adequados. Se nenhum servidor DNS utilizável estiver presente, corrigir apenas o link simbólico não ajudará: o stub local não tem para onde enviar consultas.

Você pode testar o resolvedor diretamente:

resolvectl query debian.org

O manual do resolvectl no Debian documenta os comandos DNS específicos para cada link, utilizados para inspeção e resolução de problemas status.queryflush-caches

5. Se o NetworkManager for o proprietário da interface, corrija o DNS no perfil de conexão.

Em instalações de desktop e muitos sistemas Debian de uso geral, o NetworkManager pode fornecer informações de DNS por link para o systemd-resolved. Primeiro, identifique o perfil ativo e os valores de DNS atuais:

nmcli connection show --active
nmcli device show
Utilizando o nmcli no terminal para exibir a conexão ativa do NetworkManager e as informações de DNS para a interface ens160.
Em sistemas NetworkManager, inspecione e altere o DNS no perfil de conexão em vez de editar manualmente o arquivo /etc/resolv.conf repetidamente.

Se o DHCP estiver fornecendo um servidor DNS inadequado, altere o perfil do NetworkManager em vez de editá-lo /etc/resolv.confapós cada reinicialização. Por exemplo, se a sua política de rede permitir servidores DNS públicos:

sudo nmcli connection modify "Wired connection 1"   ipv4.ignore-auto-dns yes   ipv4.dns "1.1.1.1 9.9.9.9"
sudo nmcli connection up "Wired connection 1"

Substitua o nome do perfil e os servidores DNS por valores apropriados para sua rede. Redes corporativas, VPNs, ambientes Active Directory e configurações de DNS dividido geralmente exigem resolvedores internos; o DNS público pode quebrar nomes de host privados. A documentação oficial de configuração do NetworkManager descreve sua integração com o sistema systemd-resolved.

6. Se o systemd-networkd for o proprietário da interface, configure o DNS por link.

Para servidores que utilizam DHCP systemd-networkd, coloque as configurações de DNS no .networkarquivo correspondente em `/etc/dns/` /etc/systemd/network/. Um exemplo simples baseado em DHCP é:

[Match]
Name=ens160

[Network]
DHCP=yes
DNS=1.1.1.1
DNS=9.9.9.9
Domains=~.

[DHCPv4]
UseDNS=no

UseDNS=noIsso é importante quando você deseja ignorar especificamente os servidores DNS fornecidos pelo DHCP. Sem ele, o DNS do DHCP é usado por padrão. Domains=~.é um domínio somente de roteamento para a raiz do DNS, tornando esse link adequado para consultas que não correspondem a um domínio de roteamento mais específico. Não o adicione indiscriminadamente em sistemas com múltiplas interfaces de rede ou VPNs onde o DNS dividido é intencional.

sudo systemctl restart systemd-networkd
resolvectl status ens160
Terminal e editor Nano mostrando as configurações de DNS em um arquivo .network do systemd-networkd e o status do resolvectl para ens160.
Com o systemd-networkd, o DNS pode ser definido por link em um arquivo .network e, em seguida, verificado com o resolvectl.

O comportamento de DNS=, Domains=, e DHCP UseDNS=está documentado no manual systemd.network do Debian Bookworm .

7. Use o resolved.conf global somente quando realmente desejar DNS em todo o sistema.

/etc/systemd/resolved.confOu, ainda, um arquivo de configuração /etc/systemd/resolved.conf.d/pode definir servidores DNS do sistema. Isso é útil para uma política em todo o host, mas é menos preciso do que a configuração por link em máquinas com VPNs, múltiplas interfaces ou zonas DNS privadas.

Geralmente, uma instalação local é mais simples do que editar o arquivo principal no estilo do fornecedor:

sudo mkdir -p /etc/systemd/resolved.conf.d
sudoedit /etc/systemd/resolved.conf.d/10-dns.conf

Exemplo:

[Resolve]
DNS=1.1.1.1 9.9.9.9

Em seguida, aplique-o:

sudo systemctl restart systemd-resolved
resolvectl status

O manual do Debian resolved.conf explica que DNS=ele fornece servidores DNS do sistema e que as configurações adicionais definidas pelo administrador /etc/systemd/resolved.conf.d/têm precedência sobre as configurações de menor prioridade.

8. Limpe os caches somente após corrigir a configuração subjacente.

Um cache desatualizado pode dificultar a resolução de problemas, mas a limpeza do cache não substitui a correção de um servidor upstream inacessível ou de uma configuração de link quebrada. Após fazer uma alteração real na configuração, você pode executar:

sudo resolvectl flush-caches
resolvectl query debian.org
Limpando o cache systemd-resolved no terminal e consultando debian.org com resolvectl.
Após corrigir a configuração de DNS, limpe o cache somente quando necessário para solucionar problemas e consulte um nome de host diretamente através do systemd-resolved.

A própria documentação do Systemd observa que os caches são normalmente limpos automaticamente quando há alterações na configuração de rede, portanto, a limpeza manual repetida não deve ser a sua principal solução.

9. Leia o registro do resolvedor quando a falha persistir.

Se resolvectl statusparecer razoável, mas as consultas ainda expirarem, inspecione o log do resolvedor local de inicialização:

journalctl -u systemd-resolved -b --no-pager
journalctl -u systemd-resolved -b --no-pager | tail -n 50
Terminal exibindo mensagens recentes do journal resolvidas pelo systemd sobre um servidor DNS degradado e a seleção de um servidor DNS alternativo.
O registro de eventos resolvido pelo systemd pode revelar falhas no servidor upstream, degradação no tratamento de protocolos e comportamentos alternativos.

Procure por timeouts repetidos do servidor, alterações no servidor de fallback, falhas na validação do DNSSEC ou mensagens indicando redução de recursos do protocolo. Um resolvedor pode estar funcionando normalmente enquanto seu servidor upstream configurado estiver inacessível por meio de um firewall, VPN, política de roteamento ou ACL de rede.

10. Verifique o caminho de pesquisa completo.

Não pare após uma resolvectlconsulta bem-sucedida. Verifique o caminho usado pelos aplicativos normais:

getent ahosts debian.org
resolvectl query debian.org
sudo apt update
O terminal verificou o DNS com getent e resolvectl, seguido por uma atualização bem-sucedida do Debian via apt.
Para finalizar, teste o caminho do resolvedor de sistema e o aplicativo que apresentou a falha originalmente, como o apt.

getentÉ útil porque as pesquisas de nomes de host da glibc seguem a hosts:linha em /etc/nsswitch.conf. Se resolvectl queryfor bem-sucedido, mas getentfalhar, inspecione essa configuração do NSS. O manual do nss-resolve do Debian descreve o módulo opcional libnss-resolvee uma ordem recomendada que pode rotear as pesquisas de nomes de host da glibc através do systemd-resolved, mantendo as alternativas.

Sintomas comuns e o local mais provável para procurar.

SintomaÁrea provávelPróxima verificação
A conectividade IP funciona; todos os nomes de host falham.Servidor DNS, serviço de resolução ou resolv.confresolvectl statusels -l /etc/resolv.conf
resolvectl queryFunciona; aplicações normais falhamCaminho do resolvedor NSS ou específico da aplicaçãogetent ahostse/etc/nsswitch.conf
O DNS para de funcionar após reinicialização ou reconexão.Configuração de propriedade do administrador de redePerfil NetworkManager ou systemd-networkd
Nomes públicos funcionam; nomes internos falhamDNS dividido, VPN, domínios de roteamentoServidores DNS por link e Domains=emresolvectl status
Apenas uma aplicação falha.Aplicativo, contêiner, proxy ou resolvedor personalizadoCompare esse aplicativo com getenteresolvectl query

Ordem de reparo recomendada

  1. Confirme se a conectividade básica de rede e a rota padrão existem.
  2. Confirme se systemd-resolveda configuração para gerenciar DNS neste host realmente se aplica.
  3. Verifique systemd-resolvedo estado do serviço e resolvectl status.
  4. Verifique /etc/resolv.confa propriedade e o modo de link simbólico antes de alterá-los.
  5. Se o modo stub for a intenção, restaure a stub-resolv.confconexão.
  6. Corrija o DNS upstream no proprietário real: NetworkManager, systemd-networkd, DHCP, VPN ou configuração de resolução global.
  7. Limpe o cache somente após a configuração ser corrigida.
  8. Verifique com resolvectl, getent, e o aplicativo que apresentou falha originalmente.

O princípio fundamental é a propriedade: /etc/resolv.confo systemd-resolved e o gerenciador de rede fazem parte de uma mesma cadeia de resolução. Uma correção permanente altera o DNS na camada que o controla, em vez de substituir repetidamente o arquivo final gerado.

Deixar um comentário

Como configurar o firewall do SLES 15 com o firewall-cmd

Como configurar o firewall do SLES 15 com o firewall-cmd

Configure o firewalld no SLES 15: verifique as zonas, permita serviços ou portas, salve regras permanentes, recarregue com segurança e verifique o acesso.

Guia de configuração de aplicação de patches em tempo real no SLES: Aplique atualizações do kernel sem reiniciar.

Guia de configuração de aplicação de patches em tempo real no SLES: Aplique atualizações do kernel sem reiniciar.

Habilite a aplicação de patches em tempo real no kernel do SLES 15 SP7, aplique correções compatíveis sem reiniciar, verifique os patches ativos e entenda quando ainda é necessário reiniciar o kernel.

Como ativar o modo FIPS no SUSE Linux Enterprise Server 15

Como ativar o modo FIPS no SUSE Linux Enterprise Server 15

Ative o modo FIPS no SLES 15 com o utilitário de configuração compatível com a SUSE, reinicie com segurança, verifique o status do kernel e da política criptográfica e verifique os limites de certificação.

Como instalar o Google Chrome no Gooroom OS sem violar as políticas de segurança

Como instalar o Google Chrome no Gooroom OS sem violar as políticas de segurança

Instale o Google Chrome no Gooroom OS com segurança usando pacotes .deb oficiais, APT, verificações de políticas, orientações de atualização e correções para dispositivos gerenciados.

Como exportar logs do sistema SLES para um servidor Syslog remoto com segurança

Como exportar logs do sistema SLES para um servidor Syslog remoto com segurança

Encaminhe com segurança os logs do sistema SLES para um servidor syslog remoto usando rsyslog, certificados TLS, verificação de nome do par, filas, validação e testes.

Integração do Active Directory do SLES 15 com o SSSD: um guia passo a passo

Integração do Active Directory do SLES 15 com o SSSD: um guia passo a passo

Integre o SLES 15 ao Active Directory com o SSSD usando o YaST. Prepare o DNS e o horário, configure os logins de domínio, verifique o Kerberos e compare o SSSD, o Winbind e o realmd.

Fix Realtek RTL8821CE Wi-Fi Driver Issues on Pardus Linux

Fix Realtek RTL8821CE Wi-Fi Driver Issues on Pardus Linux

Fix RTL8821CE Wi-Fi on Pardus Linux by checking the built-in rtw88 driver, Realtek firmware, rfkill, NetworkManager, and safe fallback options.

Corrigir o problema "Falha temporária na resolução de DNS" no Debian 12 com systemd-resolved

Corrigir o problema "Falha temporária na resolução de DNS" no Debian 12 com systemd-resolved

Diagnosticar e corrigir falhas de resolução de DNS no Debian 12 com systemd-resolved, incluindo resolv.conf, NetworkManager, networkd, cache e verificação.

Como instalar o Pardus Linux em dual boot com o Windows 11 de forma segura

Como instalar o Pardus Linux em dual boot com o Windows 11 de forma segura

Instale o Pardus 25.2 ao lado do Windows 11 fazendo um backup, reduzindo o volume do Windows, inicializando a partir de um USB UEFI e protegendo as partições EFI e de recuperação existentes.

Corrigir erro 500 de falha na atualização dos repositórios Zypper no SLES

Corrigir erro 500 de falha na atualização dos repositórios Zypper no SLES

Diagnosticar falhas de atualização do Zypper com HTTP 500 no SUSE Linux Enterprise Server. Identificar o repositório com falha, verificar proxies e registros e, em seguida, atualizar os metadados com segurança.