A resolução de nomes (DNS) é o que permite usar google.com em vez de decorar 142.250.79.46. Neste post vamos explorar como o Linux resolve nomes e as ferramentas para diagnosticar problemas de DNS.
Como funciona a resolução
Quando um programa precisa resolver um nome, o fluxo típico é:
- Consulta o arquivo
/etc/hosts(mapeamentos locais). - Consulta o servidor DNS configurado em
/etc/resolv.conf. - O servidor DNS responde com o IP correspondente.
A ordem é definida em /etc/nsswitch.conf na linha hosts::
grep ^hosts /etc/nsswitch.conf
hosts: files dns
files significa /etc/hosts primeiro, depois dns consulta o servidor.
/etc/resolv.conf
Este arquivo define quais servidores DNS o sistema deve consultar:
cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.1.1
nameserver 8.8.8.8
search home.lan
- nameserver - IP do servidor DNS (máximo 3 entradas).
- search - domínio adicionado automaticamente a nomes curtos. Com
search home.lan, consultarserver1tentaserver1.home.lan.
/etc/resolv.conf é um symlink gerenciado pelo systemd-resolved ou NetworkManager. Editar diretamente pode não ter efeito permanente./etc/hosts
O arquivo /etc/hosts fornece mapeamento estático de nomes para IPs:
cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 meuservidor.home.lan meuservidor
192.168.1.50 db-server
192.168.1.51 app-server
Ideal para ambientes pequenos, testes locais ou para sobrescrever registros DNS.
nslookup
Consulta rápida de DNS:
nslookup google.com
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
Name: google.com
Address: 142.250.79.46
Name: google.com
Address: 2800:3f0:4001:82a::200e
Para consultar um servidor DNS específico:
nslookup google.com 8.8.8.8
dig
O dig é mais detalhado e preferido por administradores:
dig google.com
;; ANSWER SECTION:
google.com. 229 IN A 142.250.79.46
;; Query time: 12 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Thu Mar 27 10:30:00 -03 2026
;; MSG SIZE rcvd: 55
Consultas úteis com dig:
# Apenas a resposta, sem extras
dig +short google.com
# Consultar registro MX (e-mail)
dig MX google.com
# Consultar servidor específico
dig @8.8.8.8 google.com
# Resolução reversa (IP -> nome)
dig -x 8.8.8.8
systemd-resolved
Distribuições modernas usam o systemd-resolved como cache DNS local. Para verificar o status:
resolvectl status
Global
Protocols: +LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub
Link 2 (eth0)
Current Scopes: DNS LLMNR/IPv4
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 192.168.1.1
DNS Servers: 192.168.1.1 8.8.8.8
Para limpar o cache DNS:
sudo resolvectl flush-caches
resolvectl statistics
ping resolve nomes mas dig não (ou vice-versa), lembre-se que ping usa a libc (respeita /etc/hosts e nsswitch.conf), enquanto dig consulta o servidor DNS diretamente.