Se no Linux a conexão com a Internet parece estar ativa, mas os sites não abrem, ou se o acesso por endereço IP funciona enquanto o acesso por nome de domínio não funciona, o problema geralmente está na resolução de DNS. O DNS tem a função de traduzir nomes de domínio, como example.com, em endereços IP reais. Quando esse processo falha, a rede pode continuar parecendo ativa, mas o uso normal da Internet fica bastante limitado.
Sintomas comuns
- O navegador mostra que o servidor não pode ser encontrado
ping 8.8.8.8funciona, masping google.comfalha- Gerenciadores de pacotes como
apt,dnf,yumepacmannão funcionam corretamente - A mensagem
Temporary failure in name resolutionaparece
O que verificar primeiro
Primeiro, é preciso descobrir se o problema afeta toda a rede ou apenas o DNS.
ping -c 4 8.8.8.8
ping -c 4 google.com
ip addr
ip route
Se 8.8.8.8 responde, mas google.com não, isso indica fortemente um problema de DNS. Se nem mesmo o IP está acessível, a causa provavelmente está no Wi-Fi, na interface de rede, no gateway ou no roteamento.
Principais causas
1. Configuração incorreta em /etc/resolv.conf
Em muitos sistemas Linux, as informações dos servidores DNS ficam armazenadas em /etc/resolv.conf. Se não houver um nameserver válido ali, os nomes de domínio não poderão ser resolvidos.
cat /etc/resolv.conf
Exemplo:
nameserver 8.8.8.8
nameserver 1.1.1.1
Se o arquivo estiver vazio ou apontando para um DNS local incorreto, o problema aparecerá. Porém, em sistemas Linux modernos, esse arquivo costuma ser gerado automaticamente pelo NetworkManager ou pelo systemd-resolved, então mudanças manuais podem ser sobrescritas.
2. Problema com o systemd-resolved
Em sistemas como Ubuntu, o systemd-resolved frequentemente gerencia o DNS e usa 127.0.0.53 como resolvedor local. Se esse serviço parar, o DNS pode deixar de funcionar.
systemctl status systemd-resolved
resolvectl status
Se houver problema, reinicie o serviço:
sudo systemctl restart systemd-resolved
3. O NetworkManager não aplica o DNS corretamente
Em desktops Linux, o NetworkManager geralmente obtém informações de DNS via DHCP. Se o perfil de rede estiver corrompido ou a reconexão falhar, os servidores DNS corretos talvez não sejam aplicados.
nmcli dev show | grep DNS
nmcli connection show
Se necessário, reinicie-o:
sudo systemctl restart NetworkManager
4. Influência de VPN, proxy ou firewall
Uma VPN pode enviar requisições DNS pela rota errada, e um firewall pode bloquear a porta 53. Nesses casos, a rede parece funcionar, mas os nomes de domínio não são resolvidos.
5. Cache DNS corrompido ou desatualizado
Se o cache local estiver corrompido ou antigo, alguns domínios podem parar de funcionar. Em sistemas com systemd-resolved ou nscd, limpar o cache pode ajudar.
sudo resolvectl flush-caches
Passos práticos para resolver
Passo 1: Teste diretamente um DNS público
nslookup google.com 8.8.8.8
dig google.com @8.8.8.8
Se isso funcionar, o DNS externo provavelmente está normal, e o problema está na configuração local.
Passo 2: Defina temporariamente um DNS público
sudo sh -c 'printf "nameserver 8.8.8.8\nnameserver 1.1.1.1\n" > /etc/resolv.conf'
Essa é apenas uma solução temporária. Após reiniciar ou reconectar, o arquivo pode ser alterado novamente. Para uma solução permanente, é preciso corrigir a configuração do NetworkManager, do netplan ou do systemd-resolved.
Passo 3: Verifique o netplan no Ubuntu
sudo nano /etc/netplan/*.yaml
Exemplo:
nameservers:
addresses: [8.8.8.8,1.1.1.1]
Depois aplique a mudança:
sudo netplan apply
Passo 4: Obtenha novamente as informações do DHCP
sudo dhclient -r
sudo dhclient
Se o servidor DHCP forneceu informações erradas de DNS, isso pode ajudar.
Comandos úteis para verificação
ping -c 4 8.8.8.8
ping -c 4 google.com
cat /etc/resolv.conf
systemctl status systemd-resolved
resolvectl status
nmcli dev show | grep DNS
nslookup google.com
dig google.com
journalctl -u systemd-resolved --no-pager | tail -n 50
Como evitar que o problema volte
- Não se limite apenas a editar manualmente o
/etc/resolv.conf - Entenda se o DNS é gerenciado por DHCP, NetworkManager ou systemd-resolved
- Depois de configurar uma VPN, verifique as configurações de DNS
- Em servidores, é melhor definir claramente DNS fixos
Conclusão
Quando o Linux não consegue resolver nomes DNS, o passo inicial mais importante é verificar se a comunicação por endereço IP ainda funciona. Isso ajuda a identificar rapidamente se o problema está apenas no DNS ou em toda a rede. Depois, vale revisar de forma sistemática /etc/resolv.conf, systemd-resolved, NetworkManager, DHCP e as configurações de VPN. O objetivo não é apenas restaurar o funcionamento temporariamente, mas também entender qual componente do sistema realmente controla o DNS.