Início
» Como fazer
»
Falhas na pesquisa de DNS no Debian 12: Reparar systemd-resolved
Falhas na pesquisa de DNS no Debian 12: Reparar systemd-resolved
Se o Debian 12 exibir a mensagem “Falha temporária na resolução de nomes”, verifique o serviço de resolução, o /etc/resolv.conflink e os servidores DNS listados por `/ resolvectletc/nsdk/server` — nessa ordem. Reiniciar o serviço só resolve o problema se ele estiver parado; um link quebrado ou um servidor upstream inacessível exigem uma solução diferente.
Estas instruções aplicam-se a sistemas Debian 12 (Bookworm) configurados para usar o DNS systemd-resolved. O Debian separou esse resolvedor em um pacote separado e não o tornou o padrão, conforme explicado nas notas de lançamento do Debian 12. Se a sua instalação usa outro gerenciador de DNS, mantenha esse gerenciador no controle em vez de forçar essas configurações nele.
1. Identifique onde a resolução de nomes falha
Comece com a rota de rede e uma pesquisa de nome de host. Execute os comandos localmente ou em um terminal que permanecerá aberto caso haja alterações na rede:
ip -br address
ip route
ping -c 2 1.1.1.1
resolvectl status
resolvectl query debian.org
getent ahosts debian.org
Uma rota padrão e uma conexão IP numérica funcionando sugerem que a máquina consegue acessar a rede sem DNS. Um ping sem sucesso por si só não prova que a rota está quebrada: as redes podem bloquear respostas de eco ICMP. Se a interface não tiver um endereço ou uma rota, corrija a conexão de rede primeiro.
resolvectl statusMostra os servidores DNS e domínios atribuídos globalmente ou a interfaces individuais. resolvectl queryTesta o resolvedor systemd; getent ahoststesta o caminho de pesquisa de nomes de host comumente usado por aplicativos Linux. Essa distinção ajuda a isolar a falha.
Observação
Próxima verificação
Sem endereço ou rota padrão
Corrija a interface, o gateway ou a configuração do DHCP antes do DNS.
resolvectlnão consegue conectar-se ao serviço.
Verifique se systemd-resolvedestá instalado e em execução.
resolvectl queryfunciona, getentfalha
Inspecione /etc/resolv.confa configuração dos hosts NSS.
Ambas as pesquisas falham, mesmo com uma rota em funcionamento.
Inspecione os endereços DNS upstream, o roteamento DNS e o acesso do firewall.
Uma visualização de terminal agrupa a rota de rede padrão, a atribuição do servidor DNS e uma pesquisa de nome de host em nível de aplicativo para diagnóstico inicial.
2. Certifique-se de que o systemd-resolved esteja instalado e ativo.
No Debian 12, a presença do systemd não garante que o pacote de resolução separado esteja instalado. Verifique o pacote e a unidade antes de alterar quaisquer arquivos DNS.
dpkg-query -W -f='${Status}\n' systemd-resolved
systemctl status systemd-resolved --no-pager
Se o pacote estiver instalado, mas o serviço estiver inativo, inicie-o e habilite-o para inicializações futuras:
Se o pacote estiver faltando, instale-o sudo apt install systemd-resolvedsomente depois de ter acesso funcional ao repositório de pacotes. A instalação altera o controle do pacote /etc/resolv.conf, portanto, revise primeiro qualquer configuração do NetworkManager, VPN ou DNS estático. O Debian documenta essa alteração de pacote em suas notas de atualização do Bookworm .
A tela de status do serviço mostra onde encontrar informações sobre a unidade carregada, o estado ativo e as mensagens de inicialização.
3. Repare o link do resolvedor somente se estiver incorreto.
systemd-resolvedO stub padrão escuta em 127.0.0.53. Seu arquivo de compatibilidade recomendado é /run/systemd/resolve/stub-resolv.conf, que pode ser vinculado a partir de /etc/resolv.conf. Primeiro, verifique seu modo atual:
ls -l /etc/resolv.conf
readlink -f /etc/resolv.conf
cat /etc/resolv.conf
resolvectl status
Um link para o servidor /run/systemd/resolve/resolv.confDNS local também é um modo suportado, mas os programas que o utilizam contatam o DNS upstream diretamente, em vez do servidor DNS local. Não considere esse link como quebrado apenas por ser diferente. O manual do serviço systemd-resolved do Debian explica os modos suportados.
Se você usar intencionalmente o stub local, o serviço estiver em execução, o ouvinte do stub estiver habilitado e o link existente /etc/resolv.confestiver ausente, pendente ou apontar para um resolvedor obsoleto, restaure o link recomendado. Primeiro, faça backup de um arquivo ou link existente; ignore a cópia se nenhum arquivo existir.
Não execute essa substituição em um host onde outro serviço gerencia intencionalmente o DNS /etc/resolv.conf. Uma entrada local nameserver 127.0.0.53também requer um listener stub funcional; simplesmente escrever esse endereço não cria um serviço DNS. Em uma máquina remota, mantenha um segundo método de acesso antes de editar as configurações do resolvedor.
A verificação do link simbólico mostra o destino esperado quando o Debian é configurado deliberadamente para usar o stub local resolvido pelo systemd.
4. Corrija um servidor DNS upstream ausente ou inacessível.
Quando resolvectl statusnão houver um servidor DNS upstream adequado ou um servidor configurado estiver inacessível, corrija a origem dessa atribuição. As configurações de DNS dinâmico podem vir de DHCP, NetworkManager, systemd-networkd ou uma VPN. Verifique qual interface carrega a rota padrão e qual servidor DNS pertence a essa interface.
Para um breve teste de diagnóstico em uma rede que permite DNS público, atribua resolvedores públicos conhecidos a essa interface. Substitua ` ens33<interface>` pela interface real de ip -br address:
sudo resolvectl dns ens33 1.1.1.1 1.0.0.1
resolvectl query debian.org
Esses dois endereços são documentados pela Cloudflare como seus endereços públicos de resolução de DNS . A resolvectl dnsalteração é uma configuração de tempo de execução; um administrador de rede pode substituí-la quando a conexão for restabelecida. Se a consulta agora funcionar, corrija a fonte de DNS persistente em vez de depender deste comando temporário.
Com o NetworkManager, inspecione a conexão ativa nmcli connection show --activee ajuste as configurações de DNS ou o comportamento de DHCP dessa conexão. Com o systemd-networkd, insira as DNS=configurações desejadas no .networkarquivo correspondente e recarregue ou reconfigure a rede em um momento seguro. Consulte o manual do systemd.network do Debian e o manual de configuração do NetworkManager do Debian . Reconectar uma interface gerenciada pode interromper uma sessão SSH.
Dê preferência aos servidores DNS da organização ou da VPN para nomes internos. Não se pode presumir que os resolvedores públicos respondam a zonas privadas; forçar todas as consultas a eles pode quebrar o DNS dividido ou revelar nomes de host internos. DNS=Entradas globais em ` resolved.conf` resolved.confpodem operar em conjunto com o DNS por link, em vez de substituí-lo automaticamente; consulte o manual do `resolved.conf` do Bookworm .
5. Limpe o cache e confirme se ambos os caminhos de pesquisa funcionam.
Após corrigir o serviço, o link do resolvedor ou a configuração upstream, limpe as respostas em cache e teste novamente:
O reparo é eficaz quando resolvectl queryos endereços de retorno, getent ahostsos registros de endereço de retorno e os servidores DNS pretendidos permanecem visíveis após a reconexão da rede. Os dois comandos testam interfaces diferentes, portanto, não considere o sucesso em um deles como prova de que todos os aplicativos foram corrigidos. O manual do resolvectl do Debian documenta a consulta, o status e a limpeza do cache.
A visualização final do terminal mostra as duas verificações que devem retornar registros de endereço após a correção da configuração de DNS.
Se resolvectl querya tentativa for bem-sucedida, mas getentainda assim falhar, verifique grep "^hosts:" /etc/nsswitch.confe confirme se um módulo NSS apropriado dnsou instalado resolveestá no caminho de pesquisa. Se ambas as tentativas continuarem falhando, revise o registro do resolvedor e quaisquer restrições de firewall no tráfego DNS e, em seguida, teste usando o endereço DNS real da empresa, do roteador ou do provedor. Uma pesquisa bem-sucedida isolada não é suficiente: repita as verificações após reconectar e reiniciar o sistema para verificar se a correção persiste.