nslookup no Mac: Comandos de Consulta DNS e Quando Usar Cada Um

Como usar nslookup, dig e host no Mac para consultas DNS. Inclui exemplos reais para verificar propagação, registos MX e depurar endereços IP errados.

Precisas de verificar um registo DNS. Talvez tenhas mudado de fornecedor de alojamento e queiras confirmar que o teu domínio aponta para o novo servidor. Talvez o teu e-mail esteja a ser devolvido e suspeites de um problema com o registo MX. Ou um site está a carregar conteúdo errado e estás a tentar perceber se é um problema de DNS ou algo completamente diferente.

O macOS tem três comandos de Terminal integrados para consultas DNS: nslookup, dig e host. Todos consultam o DNS, mas cada um apresenta os resultados de forma diferente e é adequado para situações distintas.

O que uma consulta DNS realmente faz

Quando escreves um nome de domínio no teu browser, o Mac pede a um resolvedor DNS (geralmente o do teu FSI ou um público como o 1.1.1.1) que traduza esse nome num endereço IP. O resolvedor procura a resposta e o teu computador liga-se a esse IP.

Uma consulta DNS permite-te executar essa tradução tu próprio e inspecionar o resultado. Podes ver a que IP um domínio resolve, que servidores de correio tratam o seu e-mail e que nameservers são autoritativos para ele. Isto cobre a maior parte da depuração do dia a dia.

Tipos de registos comuns que vale a pena conhecer:

  • A: Endereço IPv4 (o principal que irás consultar)
  • AAAA: Endereço IPv6
  • MX: Servidor de correio, com prioridade
  • CNAME: Alias que aponta para outro domínio
  • TXT: Registos de texto, usados para SPF, DKIM, verificação de domínio
  • NS: Nameservers autoritativos para o domínio

nslookup no Mac: o ponto de partida familiar

O nslookup é o comando ao qual a maioria das pessoas recorre primeiro. Existe em todos os sistemas operativos, pelo que se já fizeste consultas DNS em qualquer outro lugar, a sintaxe parece familiar.

Consulta básica de registo A

nslookup google.com

O resultado mostra o servidor DNS que respondeu e o endereço IP. A linha “Non-authoritative answer” significa apenas que o resultado veio de uma cache, não dos próprios nameservers do domínio. Isso é normal.

Consultar um tipo de registo específico

nslookup -type=MX google.com

Substitui MX por qualquer tipo de registo: A, AAAA, CNAME, TXT, NS, SOA. Por exemplo, para verificar SPF e DKIM para depuração de e-mail:

nslookup -type=TXT google.com

Consultar um servidor DNS específico

É aqui que o nslookup se torna genuinamente útil. Em vez de perguntar ao teu resolvedor predefinido (que pode ter dados em cache antigos), podes consultar um servidor específico diretamente:

nslookup google.com 8.8.8.8
nslookup google.com 1.1.1.1

Consultar múltiplos servidores permite verificar se as alterações de DNS se propagaram. Se o 8.8.8.8 mostrar o teu novo IP mas o 1.1.1.1 ainda mostrar o antigo, a propagação ainda está em curso.

Modo interativo do nslookup

Escreve nslookup sem argumentos e obterás um prompt. A partir daí podes executar múltiplas consultas sem reescrever o comando:

> set type=MX
> google.com
> set type=A
> example.com
> exit

A principal desvantagem do nslookup é que o seu resultado mistura mensagens informativas com os resultados reais. A formatação é inconsistente entre tipos de registos, o que torna mais difícil a leitura rápida.

dig: a ferramenta avançada para DNS no Mac

O dig (Domain Information Groper) é a ferramenta preferida de administradores de sistemas e programadores que fazem depuração de DNS regularmente. O resultado é estruturado e consistente, e as opções de controlo vão muito além das do nslookup.

Consulta básica

dig google.com

O resultado é verboso por defeito: a pergunta que fizeste, a secção de resposta, o tempo e o servidor que respondeu. Essa informação extra é útil quando estás a depurar, porque podes ver exatamente o que foi devolvido e quanto tempo demorou.

Obter apenas a resposta com +short

Quando queres uma resposta rápida sem os detalhes envolventes:

dig google.com +short

Isto exibe apenas o endereço IP. Bom para scripting ou quando só queres saber o resultado:

dig google.com MX +short

Devolve os registos MX com prioridades, um por linha.

Consultar tipos de registos específicos

dig google.com MX
dig google.com TXT
dig google.com NS
dig google.com AAAA

Consultar um servidor DNS específico

dig @8.8.8.8 yourdomain.com
dig @1.1.1.1 yourdomain.com
dig @9.9.9.9 yourdomain.com

A sintaxe @ especifica o resolvedor. Esta é a forma mais limpa de verificar a propagação de DNS em múltiplos resolvedores públicos.

Traçar o caminho completo de resolução

dig google.com +trace

Isto percorre toda a cadeia de resolução DNS: servidores raiz, servidores TLD, e depois os nameservers autoritativos para o domínio. Se o DNS estiver quebrado em algum lugar da cadeia, +trace mostrar-te-á exatamente onde falha.

Verificar a validação DNSSEC

dig google.com +dnssec

Adiciona os registos de assinatura DNSSEC ao resultado. Útil se estiveres a verificar que a configuração DNSSEC de um domínio está correta após a ativar.

host: a opção de leitura rápida

O host fornece resultados limpos e legíveis por humanos com configuração mínima. É a escolha certa quando queres uma resposta rápida e não precisas do detalhe completo que o dig fornece.

host google.com

Isto devolve registos A, AAAA e MX de uma só vez:

google.com has address 142.250.80.46
google.com has IPv6 address 2607:f8b0:4004:c1b::65
google.com mail is handled by 10 smtp.google.com.

Para um tipo de registo específico:

host -t MX google.com
host -t TXT google.com

O host não tem as opções avançadas do dig, mas o seu resultado é imediatamente legível sem qualquer opção.

Qual ferramenta usar e quando

Comando Ideal para Estilo de saída
nslookup Familiaridade multiplataforma, verificações rápidas Verboso, mensagens misturadas
dig Verificar propagação, scripts, trace completo Estruturado, +short para saída limpa
host Resposta rápida e legível, sem flags Conciso, texto simples
dig +short Scripts, verificações em lote, saída mínima Apenas resposta básica
dig +trace Encontrar onde a resolução DNS falha Cadeia completa a partir dos servidores raiz
NetUtil GUI Sem Terminal, navegação visual de registros Apontar e clicar, resultados formatados

Referência rápida: que ferramenta DNS usar consoante as suas necessidades.

Casos de uso reais

Verificar a propagação de DNS após mudar de alojamento

Moveste o teu site para um novo servidor e atualizaste o registo A. Agora queres saber se a alteração se propagou antes de cancelares o alojamento antigo.

dig @8.8.8.8 yourdomain.com +short
dig @1.1.1.1 yourdomain.com +short
dig @9.9.9.9 yourdomain.com +short

Se os três devolverem o mesmo IP, a propagação está concluída para a maioria dos utilizadores. Se discordarem, alguns resolvedores ainda estão a servir dados antigos em cache.

Para ver durante quanto tempo essa cache persistirá, verifica o TTL:

dig @1.1.1.1 yourdomain.com

Na secção de resposta, o número entre o nome do registo e o tipo de registo é o TTL em segundos. Um TTL de 300 significa que a cache se limpa em 5 minutos. Um TTL de 86400 significa que poderás ter de esperar 24 horas.

Depurar entregabilidade de e-mail com registos MX

O e-mail não está a chegar. Antes de analisares os registos SMTP, confirma que os registos MX estão corretos:

nslookup -type=MX yourdomain.com

Ou com dig para um resultado mais limpo:

dig yourdomain.com MX +short

O resultado mostra os nomes dos teus servidores de correio e as suas prioridades. Um número mais baixo significa maior prioridade. Se os nomes de host não correspondem ao que o teu fornecedor de e-mail te disse para definir, esse é o teu problema.

Verifica também os registos TXT para SPF e DKIM enquanto estás nisso:

dig yourdomain.com TXT +short

O teu registo SPF terá um aspeto como v=spf1 include:... ~all. Se estiver em falta ou mal formatado, é por isso que as mensagens vão para spam.

Depurar por que razão um site carrega para o IP errado

O teu domínio resolve para um IP antigo mesmo que tenhas atualizado o registo A há uma hora.

Primeiro, verifica o que o teu resolvedor local vê:

dig yourdomain.com +short

Depois verifica o que um resolvedor externo vê:

dig @8.8.8.8 yourdomain.com +short

Se forem diferentes, o teu resolvedor local guardou em cache a resposta antiga. Podes esperar que o TTL expire ou limpar a tua cache DNS local:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Se ambos os resolvedores mostram o mesmo IP errado, o registo A não foi guardado corretamente. Volta a iniciar sessão no teu fornecedor de DNS e verifica o registo.

Verificar se um CNAME está configurado corretamente

dig yourdomain.com CNAME +short

Isto devolve o domínio de destino para o qual o CNAME aponta. Se não devolver nada, não tens um CNAME nesse nome (podes ter um registo A em vez disso, o que pode ser intencional ou uma má configuração).

Limpar a cache DNS no macOS

Quando precisas de limpar a cache DNS do teu Mac após mudar registos ou corrigir um problema de resolução:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Este comando funciona no macOS Monterey, Ventura, Sonoma e Sequoia. O processo mDNSResponder trata da resolução de DNS local, e enviar-lhe HUP força-o a recarregar.

Após limpar, executa novamente o teu comando dig ou nslookup e deverás ver o resultado atualizado.

Se o Terminal não for o teu ambiente

A Apple removeu o Network Utility no macOS Monterey. Isso removeu a única interface gráfica integrada para consultas DNS.

O NetUtil é um substituto gratuito. Abre-o, escreve um domínio no separador DNS Lookup, seleciona um tipo de registo e obtém resultados formatados da mesma forma que o antigo Network Utility fazia. Sem comandos para memorizar, sem opções para procurar. Os resultados são os mesmos dados que obterias do dig ou do nslookup, apenas apresentados sem o ruído.

Para verificações de DNS ocasionais, uma interface gráfica reduz a fricção. Para consultas repetidas ou qualquer coisa que queiras incluir em scripts, fica com o dig.

Escolhe a ferramenta certa para o trabalho

O nslookup é bom para verificações rápidas, especialmente se já estás familiarizado com ele. O dig é melhor para qualquer coisa que envolva verificação de propagação, scripting ou análise aprofundada do comportamento do DNS. O host é o caminho mais rápido para uma resposta legível quando apenas precisas de saber a que IP um domínio resolve.

Os três consultam o mesmo sistema DNS. As diferenças estão na apresentação e no controlo. Usa aquele que te fornece a informação de que precisas sem te atrasar.