Comando nslookup: uso e opções, consulta de registros e escolha do servidor DNS
O comando nslookup é uma ferramenta de consulta que pergunta a um servidor DNS por um nome de domínio e retorna seus endereços IP e registros DNS como MX, NS e TXT. Ao consultar por tipo os registros de example.com em um servidor AlmaLinux 9 e trocar o servidor DNS consultado, o mesmo domínio deu resultados diferentes conforme o servidor: a linha Non-authoritative answer do início da resposta desapareceu ou o resultado da consulta ANY mudou.
A saída abaixo foi obtida com a conta root em um servidor AlmaLinux 9.8. O endereço do servidor DNS configurado no servidor foi substituído pelo valor de exemplo 192.0.2.53, e os números de versão dos pacotes também foram trocados por valores de exemplo.
1️⃣ Como usar o comando nslookup
A forma básica é [nslookup -opção nome servidor-DNS], e tanto as opções quanto o servidor DNS podem ser omitidos. Se você escrever só um nome, o nslookup pergunta o endereço desse nome ao servidor DNS configurado no servidor.
nslookup example.comServer: 192.0.2.53
Address: 192.0.2.53#53
Non-authoritative answer:
Name: example.com
Address: 172.66.147.243
Name: example.com
Address: 104.20.23.154
Name: example.com
Address: 2606:4700:10::6814:179a
Name: example.com
Address: 2606:4700:10::ac42:93f3As duas linhas Server e Address do topo mostram o servidor DNS que recebeu a consulta, e o #53 no fim é o número da porta DNS. Sem indicar o tipo de registro, o nslookup consulta primeiro o registro A (IPv4) e depois o AAAA (IPv6), por isso dois endereços IPv6 vieram depois de dois endereços IPv4.
Non-authoritative answer significa que quem respondeu foi um servidor DNS com o valor em cache, e não o servidor que gerencia diretamente os registros de example.com. Por isso, logo depois de alterar um registro, o valor pode ser diferente do real.
2️⃣ Opções do nslookup
As opções são escritas com um hífen antes do nome.
-type é a mesma opção que -query ou a forma curta -q. Perguntando a 8.8.8.8 com -q=mx, saiu a mesma linha de servidor de e-mail que com -type=mx.
nslookup -q=mx google.com 8.8.8.8Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
google.com mail exchanger = 10 smtp.google.com.
Authoritative answers can be found from:-timeout e -retry definem quanto tempo esperar por um servidor DNS que não responde. 192.0.2.1 é um endereço reservado para documentação, então nenhum servidor responde nele.
nslookup -timeout=2 -retry=1 example.com 192.0.2.1;; connection timed out; no servers could be reachedCom -timeout=2 -retry=1, o nslookup mostrou a linha [connection timed out] após 2 segundos e terminou. Com -retry=2 levou 4 segundos, e sem nenhuma opção levou 15 segundos. Para que um script não fique parado muito tempo por causa de um servidor que não responde, reduza os dois valores.
Com -debug, as seções de pergunta e resposta do pacote de resposta são mostradas como estão.
nslookup -debug example.com 8.8.8.8Server: 8.8.8.8
Address: 8.8.8.8#53
------------
QUESTIONS:
example.com, type = A, class = IN
ANSWERS:
-> example.com
internet address = 104.20.23.154
ttl = 300
-> example.com
internet address = 172.66.147.243
ttl = 300
AUTHORITY RECORDS:
ADDITIONAL RECORDS:
------------
Non-authoritative answer:
Name: example.com
Address: 104.20.23.154
Name: example.com
Address: 172.66.147.243
------------
QUESTIONS:
example.com, type = AAAA, class = IN
ANSWERS:
-> example.com
has AAAA address 2606:4700:10::6814:179a
ttl = 300
-> example.com
has AAAA address 2606:4700:10::ac42:93f3
ttl = 300
AUTHORITY RECORDS:
ADDITIONAL RECORDS:
------------
Name: example.com
Address: 2606:4700:10::6814:179a
Name: example.com
Address: 2606:4700:10::ac42:93f3Cada registro ganhou um ttl = 300 que a saída padrão não mostra. Ele indica que o servidor DNS que recebeu esta resposta pode manter o registro em cache por até 300 segundos.
-norecurse pede ao servidor DNS que responda só com o que já tem, sem buscar por outros servidores. Perguntando ao mesmo 8.8.8.8 sem a opção saíram quatro endereços, mas com -norecurse a consulta terminou em [SERVFAIL].
nslookup -norecurse example.com 8.8.8.8Server: 8.8.8.8
Address: 8.8.8.8#53
** server can't find example.com: SERVFAIL| Opção | Copiar | Descrição |
|---|---|---|
| -type= | Define o tipo de registro a consultar; se omitido, A e depois AAAA | |
| -q= | Mesma opção que -type, define o tipo de registro a consultar | |
| -timeout= | Tempo de espera da resposta à primeira consulta (segundos) | |
| -retry= | Número de envios da consulta quando não há resposta | |
| -debug | Mostra a pergunta e a resposta do pacote, incluindo o TTL | |
| -norecurse | Pede só os valores que esse servidor tem, sem passar por outros servidores |
| Opção | Copiar | Descrição |
|---|---|---|
| -query= | Mesma opção que -type, define o tipo de registro a consultar | |
| -port= | Define a porta a consultar, 53 por padrão | |
| -version | Mostra a versão e sai |
3️⃣ Consulta de registros com nslookup (MX, NS, TXT, SOA)
Escrevendo um tipo de registro depois de -type=, só esse registro é consultado. O valor pode ser escrito em maiúsculas ou minúsculas.
| Valor de -type= | Informação contida |
|---|---|
| A · AAAA | Endereço IPv4, endereço IPv6 |
| MX | Servidor que recebe os e-mails e sua prioridade |
| NS | Servidores de nomes que gerenciam os registros do domínio |
| TXT | Valores de texto como SPF |
| SOA | Servidor de nomes principal da zona, e-mail do administrador, número de série, intervalos de atualização |
| CNAME | Alias que aponta para outro nome |
| PTR | Nome de host ligado a um endereço IP (reverso) |
| ANY | Pede todos os registros desse nome de uma vez |
Os servidores de e-mail são verificados com o registro MX.
nslookup -type=mx google.comServer: 192.0.2.53
Address: 192.0.2.53#53
Non-authoritative answer:
google.com mail exchanger = 10 smtp.google.com.
Authoritative answers can be found from:O 10 depois de mail exchanger é a prioridade. Quando há vários servidores de e-mail, quem envia tenta a entrega começando pelo servidor de menor número. A mesma consulta em example.com retornou [mail exchanger = 0 .], e um MX com só um ponto significa que este domínio não recebe e-mails.
O [Authoritative answers can be found from:] no fim da consulta MX é uma linha de cabeçalho que mostra abaixo dela as informações dos servidores de nomes autoritativos incluídas na resposta. Nas consultas MX, NS e TXT deste artigo a resposta não trouxe essas informações, então nada apareceu abaixo do cabeçalho.
O registro NS contém os servidores de nomes que gerenciam diretamente os registros do domínio.
nslookup -type=ns example.comServer: 192.0.2.53
Address: 192.0.2.53#53
Non-authoritative answer:
example.com nameserver = hera.ns.cloudflare.com.
example.com nameserver = elliott.ns.cloudflare.com.
Authoritative answers can be found from:example.com tinha dois servidores de nomes. Esses dois servidores são os servidores de nomes autoritativos de example.com.
Um registro TXT pode guardar valores de texto sem formato fixo.
nslookup -type=txt example.comServer: 192.0.2.53
Address: 192.0.2.53#53
Non-authoritative answer:
example.com text = "_k2n1y4vw3qtb4skdx9e7dxt97qrmmq9"
example.com text = "v=spf1 -all"
Authoritative answers can be found from:v=spf1 -all é um valor SPF que indica que nenhum servidor pode enviar e-mails com este nome de domínio. Quando um domínio tem vários registros TXT, eles aparecem assim, um por linha.
O registro SOA contém as informações básicas da zona.
nslookup -type=soa example.comServer: 192.0.2.53
Address: 192.0.2.53#53
Non-authoritative answer:
example.com
origin = elliott.ns.cloudflare.com
mail addr = dns.cloudflare.com
serial = 2418004112
refresh = 10000
retry = 2400
expire = 604800
minimum = 1800
Authoritative answers can be found from:origin é o servidor de nomes principal, e mail addr é o endereço de e-mail do administrador com o @ escrito como ponto. serial é um número de série que sobe a cada alteração dos registros, e refresh, retry e expire são valores de tempo (em segundos) que os servidores de nomes secundários usam para sincronizar os registros com o principal. minimum é o tempo que a resposta sobre um registro inexistente fica em cache.
Os aliases são verificados com o registro CNAME. A consulta de www.github.com retornou uma linha dizendo que ele é um alias de github.com.
nslookup -type=cname www.github.comServer: 192.0.2.53
Address: 192.0.2.53#53
www.github.com canonical name = github.com.-type=any pede todos os registros desse nome de uma vez. Perguntando ao servidor DNS configurado no servidor, os registros A, AAAA, MX e NS vieram juntos.
nslookup -type=any example.comServer: 192.0.2.53
Address: 192.0.2.53#53
Non-authoritative answer:
Name: example.com
Address: 172.66.147.243
Name: example.com
Address: 104.20.23.154
Name: example.com
Address: 2606:4700:10::6814:179a
Name: example.com
Address: 2606:4700:10::ac42:93f3
example.com mail exchanger = 0 .
example.com nameserver = hera.ns.cloudflare.com.
example.com nameserver = elliott.ns.cloudflare.com.
Authoritative answers can be found from:Enviando a mesma consulta a 8.8.8.8, voltaram só uma linha [hinfo = “RFC8482”] e uma linha de assinatura.
nslookup -type=any example.com 8.8.8.8Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
example.com hinfo = "RFC8482" ""
example.com rdata_46 = HINFO 13 2 3600 20261029212708 20261027192708 34505 example.com. 2YBHcD7GmqHiW6E7e8Lx3z/gPoCsLbYw/Uegjy801hQ+4fYp5U7wKqc2 NXOONd8WS0xjgzfW5Dn0akDqdjltOw==
Authoritative answers can be found from:A RFC 8482 é o documento que permite responder a uma consulta ANY com uma resposta curta em vez de todos os registros. Por isso, consulte os registros necessários indicando um tipo por vez.
4️⃣ Escolher o servidor DNS no nslookup
Se você escrever um servidor DNS depois do nome, o nslookup pergunta a esse servidor em vez do servidor DNS configurado no servidor.
nslookup example.com 8.8.8.8Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: example.com
Address: 104.20.23.154
Name: example.com
Address: 172.66.147.243
Name: example.com
Address: 2606:4700:10::6814:179a
Name: example.com
Address: 2606:4700:10::ac42:93f3A linha Server mudou para 8.8.8.8, e os quatro endereços foram os mesmos da resposta do servidor DNS configurado no servidor. Depois de trocar os servidores de nomes, use esta forma para verificar se os novos valores já chegaram a cada servidor DNS público.
Se você indicar como servidor DNS um dos servidores de nomes da consulta NS, estará perguntando diretamente ao servidor autoritativo.
nslookup example.com elliott.ns.cloudflare.comServer: elliott.ns.cloudflare.com
Address: 2606:4700:58::a29f:2ce4#53
Name: example.com
Address: 104.20.23.154
Name: example.com
Address: 172.66.147.243
Name: example.com
Address: 2606:4700:10::6814:179a
Name: example.com
Address: 2606:4700:10::ac42:93f3Desta vez a linha Non-authoritative answer desapareceu. O valor veio direto do servidor que gerencia os registros, então é o valor atual, sem passar por cache. No Address logo abaixo da linha Server apareceu o endereço IPv6 deste servidor de nomes.
Ao consultar um nome que não existe, aparece [NXDOMAIN]. .invalid é um domínio de primeiro nível reservado para nunca ser usado de fato, então a resposta foi que o nome não existe.
nslookup example.invalidServer: 192.0.2.53
Address: 192.0.2.53#53
** server can't find example.invalid: NXDOMAINJá no-such-host.example.com terminou com [No answer] em vez de NXDOMAIN. Isso significa que o registro consultado não veio na resposta, um resultado diferente de NXDOMAIN, em que o próprio nome não existe.
nslookup no-such-host.example.comServer: 192.0.2.53
Address: 192.0.2.53#53
Non-authoritative answer:
*** Can't find no-such-host.example.com: No answer5️⃣ Consulta reversa com nslookup
Se você escrever um endereço IP no lugar de um nome, o nslookup consulta o registro PTR e encontra o nome de host ligado a esse endereço.
nslookup 8.8.8.88.8.8.8.in-addr.arpa name = dns.google.
Authoritative answers can be found from:8.8.8.8.in-addr.arpa é o nome formado ao escrever o endereço IPv4 de trás para frente e acrescentar in-addr.arpa. O valor do registro PTR desse nome, dns.google., é o nome de host de 8.8.8.8.
Na consulta reversa, as duas linhas Server do topo não apareceram. Consultando o mesmo endereço com o nslookup 9.18 em um servidor Debian 12, a forma foi a mesma.
6️⃣ Modo interativo do nslookup
Executando o nslookup sem argumentos, você entra no modo interativo com o prompt >. Para consultar vários nomes e tipos de registro em sequência, não é preciso digitar o comando inteiro de novo.
nslookup> server 8.8.8.8
Default server: 8.8.8.8
Address: 8.8.8.8#53
> set type=mx
> google.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
google.com mail exchanger = 10 smtp.google.com.
Authoritative answers can be found from:
> set type=txt
> example.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
example.com text = "_k2n1y4vw3qtb4skdx9e7dxt97qrmmq9"
example.com text = "v=spf1 -all"
Authoritative answers can be found from:
> exitTroque o servidor DNS consultado com server e defina o tipo de registro com set type=; daí em diante, basta digitar um nome para consultá-lo com essas configurações. Digitando exit, você volta ao shell.
set all mostra todos os valores de configuração atuais.
nslookup> set type=txt
> set all
Default server: 192.0.2.53
Address: 192.0.2.53#53
Set options:
novc nodebug nod2
search recurse
timeout = 0 retry = 3 port = 53 ndots = 1
querytype = txt class = IN
srchlist = example.internal
> exitquerytype tinha mudado para txt, o valor definido antes. retry = 3 e port = 53 são valores padrão que não foram alterados.
7️⃣ Instalar o nslookup no Linux e comparar com dig e host
Se ao executar o nslookup no Linux aparecer [command not found], instale o pacote de ferramentas do BIND. No servidor AlmaLinux, o nslookup vinha do pacote bind-utils.
rpm -qf /usr/bin/nslookupbind-utils-9.16.20-30.el9_8.2.x86_64No servidor Debian 12 era o pacote bind9-dnsutils. O nome antigo dnsutils continuava existindo como pacote de transição que instala o bind9-dnsutils.
dpkg -S /usr/bin/nslookupbind9-dnsutils: /usr/bin/nslookupNa família RHEL, instale o pacote bind-utils com o comando abaixo.
dnf install bind-utilsNa família Debian, instale o pacote bind9-dnsutils.
apt install bind9-dnsutilsO mesmo pacote também traz dig e host. Os três comandos consultam o DNS, mas a saída tem formas diferentes.
| Comando | Saída | Quando usar |
|---|---|---|
| nslookup | Linha Server + resposta, modo interativo | Consultar vários nomes e registros em sequência |
| dig | Todas as seções do pacote de resposta; com +short, só os valores | Extrair só os valores em um script |
| host | Uma frase por registro | Verificar A, AAAA e MX de uma vez |
host example.comexample.com has address 172.66.147.243
example.com has address 104.20.23.154
example.com has IPv6 address 2606:4700:10::6814:179a
example.com has IPv6 address 2606:4700:10::ac42:93f3
example.com mail is handled by 0 .Mesmo sem opções, o host consultou de uma vez os registros A, AAAA e MX e mostrou cada um como uma frase de uma linha. Com +short, o dig deixa só os endereços IP.
dig +short example.com104.20.23.154
172.66.147.243Para extrair só os valores em um script, dig +short é mais fácil de manipular, e para verificar vários nomes em sequência, o modo interativo do nslookup é mais prático.
🔲 Simulador do comando nslookup
No simulador abaixo, você pode digitar o nslookup trocando o tipo de registro e o servidor DNS.
🔢 FAQ & conteúdo recomendado
Consulta DNS
Comando host no Linux | comando de consulta DNS
Artigo que explica como encontrar com o comando host o endereço IP de um nome de host e, ao contrário, o nome de host de um endereço IP.
Consulta na web
Sites para verificar registros DNS e medir o desempenho de nameservers
Artigo sobre como verificar valores de registros DNS de várias regiões com o whatsmydns e comparar a velocidade de resposta de servidores DNS com o DNSPerf.
ℹ️ Aviso de afiliados
O conteúdo deste site contém links de afiliados. Quando um visitante compra um produto ou serviço por meio de um desses links, o site recebe uma comissão do vendedor. O valor que o comprador paga (em promoções, ele diminui ↓) não aumenta por causa disso. Preços, descontos e informações de estoque valem para o momento em que o texto foi escrito e podem ter mudado, por isso confirme com o vendedor antes de comprar. Os produtos são escolhidos e avaliados por critérios próprios, e o recebimento de comissão não influencia a ordem de apresentação nem o conteúdo das avaliações.