Explicação sobre o comando `dig`

Nesta postagem, explicamos para que serve o comando `dig`, bem como como instalá-lo e utilizá-lo. Também abordamos como contornar suas limitações. 

Resumo: O que você precisa saber sobre o escavação "dig" 

O `dig` é uma ferramenta de linha de comando para consultar servidores DNS. 

Você insere um nome de domínio, o programa envia uma consulta DNS e exibe a resposta bruta — o endereço IP, o tipo de registro, o TTL, qual servidor respondeu e quanto tempo levou. É a ferramenta ideal para solucionar problemas de DNS, mas apresenta algumas limitações.

LimitaçõesSolução alternativa
A saída padrão é excessiva e exige muitos parâmetros apenas para obter uma resposta claraMude para o comando nslookup para obter uma saída mais simples ou use o comando especializado DNS Lookup API se precisar de dados JSON estruturados para automação.
Não vem pré-instalado no Windows por padrãoInstale-o ou use o nslookup ou o DNS Lookup API como uma opção independente do sistema operacional
Os resultados podem refletir respostas armazenadas em cache de resolvedores recursivosUse o sinalizador `+trace` para ignorar os caches locais e forçar o `dig` a seguir o caminho de delegação em tempo real, desde os servidores DNS raiz até a fonte autoritativa, ou use o sinalizador ` DNS Lookup API ` para realizar novas consultas a partir de servidores DNS públicos globais que não estejam vinculados ao seu resolvedor local.
A execução de muitas consultas seguidas pode acionar o limite de taxa do resolvedor de DNSUse o ` DNS Lookup API`, que foi desenvolvido para consultas em grande volume

Por que se chama “Dig”?

Não é porque você literalmente “cava” em servidores DNS em busca de dados: o “dig”, que historicamente era considerado uma sigla para “Domain Information Groper”, mas a documentação oficial de seu desenvolvedor abandonou essa sigla em 2017 e agora descreve o “dig” simplesmente como um utilitário de consulta de DNS.

Como o comando funciona

Quando você executa o comando `dig`, a ferramenta atua como um cliente DNS e realiza o seguinte:

  • Digite o comando dig (dig example.com) no terminal. Se você não especificar um servidor de nomes, o dig usa o resolvedor padrão do sistema operacional, geralmente configurado no arquivo resolv.conf. Você também pode indicar um servidor de nomes específico usando o símbolo @ (dig @8.8.8.8 example.com).
  • O comando `dig` envia uma consulta recursiva a esse resolvedor. Ele está pedindo ao resolvedor que procure a resposta em seu nome.
  • O resolvedor verifica seu cache. Se já tiver uma resposta válida, ele a retorna imediatamente. Isso ocorre quando alguém consultou recentemente o domínio usando o mesmo resolvedor, e o resultado foi salvo temporariamente.
  • Se a resposta não estiver armazenada em cache, o resolvedor realiza consultas DNS iterativas em seu nome. Ele começa consultando um servidor de nomes raiz. O servidor raiz o direciona para o servidor de nomes do domínio de nível superior (TLD) (por exemplo, .com), e o servidor TLD o direciona para o servidor DNS autoritativo do domínio.
  • O servidor autoritário retorna o registro DNS correspondente ao nome de domínio, como um endereço IP em uma consulta de registro A ou o texto arbitrário em uma consulta de registro TXT.
  • O resolvedor envia o resultado de volta ao dig, que o formata e o exibe no seu terminal.

Observe que o sinalizador +trace altera esse fluxo. Em vez de depender do seu resolvedor para realizar o trabalho recursivo, o dig envia apenas uma consulta ao resolvedor para obter a lista atual de servidores raiz e, em seguida, realiza ele mesmo as consultas iterativas — começando pelos servidores raiz. Isso é útil quando você deseja ignorar o resolvedor recursivo configurado e visualizar o caminho de delegação em tempo real.

Como instalar o dig ?

Antes de usar o dig, talvez seja necessário instalá-lo. O processo de instalação depende do seu sistema operacional. Primeiro, verifique se ele já está instalado executando este comando no terminal:

dig -v 

Se o dig estiver instalado, você verá um número de versão como DiG 9.18.39. Caso contrário, siga as etapas abaixo de acordo com o seu sistema operacional.

O comando `dig` no Linux

Muitas distribuições Linux vêm com o dig pré-instalado como parte do pacote bind9-dnsutils (Debian/Ubuntu) ou bind-utils (RHEL/CentOS/Fedora). Caso ele não esteja presente, instale-o usando o gerenciador de pacotes da sua distribuição.

Para Debian/Ubuntu:

sudo apt install bind9-dnsutils 

Para RHEL/CentOS/Fedora:

sudo dnf install bind-utils

Correr dig -v posteriormente, para confirmar.

O cavar Comando no Windows

cavar não vem pré-instalado no Windows. A maneira mais fácil é usar o Subsistema do Windows para Linux (WSL), que oferece um shell completo do Linux. Descrevemos todo o processo neste comando do host explicação detalhada, mas aqui estão os passos resumidos:

  • Ativar o WSL no PowerShell (como administrador): 
wsl --install

Isso instalará automaticamente o Ubuntu no seu computador a partir da Microsoft Store.

  • Reinicie.
  • Abra o Ubuntu e instale o dnsutils: 
sudo apt-get install bind9-dnsutils
  • Confirme com dig -v.

dig Comando no Mac

O `dig` já vem pré-instalado no macOS. Abra o Terminal e execute `dig -v` para confirmar. Se aparecer um número de versão, está tudo pronto. Se, por algum motivo, ele não estiver instalado, instale-o pelo Homebrew:

brew install bind

Execute o comando `dig -v` novamente para confirmar. 

Se o Homebrew ainda não estiver instalado, execute o script oficial de instalação do brew.sh:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

dig Sintaxe, opções e parâmetros do comando

Sintaxe básica 

dig [@servidor] [tipo] [domínio] [opções]

Aqui está um exemplo do comando `dig`:

dig @8.8.8.8 MX gmail.com +short

Isso gerou o seguinte resultado:

Saída do terminal do comando `dig @8.8.8.8 MX gmail.com +short`, mostrando os servidores de e-mail do gmail.com

Bandeiras

BandeiraDescriçãoExemplo de consulta
@servidorEspecifica o servidor de nomes a ser consultado.dig @8.8.8.8 example.com
-b endereçoDefine o endereço IP de origem da consulta.dig -b 192.168.1.10 example.com
-c classeDefine a classe de consulta. O padrão é IN (Internet), que abrange todas as consultas DNS padrão. A única outra classe que você provavelmente usará é CH (Chaosnet), que é associada a tipos específicos de registros para consultar a identidade ou a versão do software de um servidor de nomes.dig @8.8.8.8 TXT hostname.bind CH 
-f nome_do_arquivoÉ executado no modo em lote. Ele lê as consultas de um arquivo, uma por linha.dig -f domains.txt
-hExibe um resumo dos argumentos e opções.dig -h
-k arquivo de chaveEspecifica um arquivo de chave TSIG para assinar consultas DNS.dig -k auth.key example.com
-mAtiva a depuração do uso da memória.dig -m example.com
-p número da porta#Consulta uma porta não padrão em vez da porta padrão 53.dig -p 5353 example.com
-q nomeDefine o nome da consulta explicitamente.dig -q example.com
-t tipoDefine o tipo de consulta, como registro A, MX, NS, AXFR ou TXT.dig -t MX example.com
-uExibe os tempos de consulta em microssegundos, em vez de milissegundos.dig -u example.com
-vExibe o número da versão e encerra o programa.dig -v
-x endereçoRealiza uma consulta DNS reversa, mapeando um endereço IP de volta a um nome de host por meio de um registro PTR.dig -x 8.8.4.4
-y [hmac:]nome:chaveEspecifica uma chave TSIG diretamente na linha de comando.dig -y hmac-sha256:user1:pass123 example.com
-4Obriga a ferramenta a usar apenas IPv4.dig -4 example.com
-6Obriga a ferramenta a usar apenas IPv6.dig -6 example.com

Opções de consulta que alteram o formato de saída

Você pode definir parâmetros para controlar a formatação da saída da ferramenta:

OpçãoDescriçãoExemplo de consulta
+curtoRetorna uma versão resumida da resposta, em vez da saída completa e detalhada.dig example.com +short
+sem comentáriosOculta algumas linhas de comentário na saída.dig example.com +nocomments
+sem respostaOculta a seção de respostas da saída.dig example.com +noanswer
+sem autoridadeExibe ou oculta a seção de autoridade da saída.dig example.com +noauthority
+semadicionaisOculta a seção adicional de uma resposta.dig example.com +noadditional
+sem dúvidaOculta a seção de perguntas.dig example.com +noquestion
+sem estatísticasOculta as estatísticas da consulta, como o tempo de resposta e o tamanho da resposta.dig example.com +nostats
+noallUsado para limpar todos os sinalizadores de exibição e, em seguida, ativar uma seção específica.dig example.com +noall +answer
+multilinhaImprime registros em um formato de várias linhas legível por pessoas.dig example.com +multiline
+nottlidOculta o valor do TTL ao imprimir registros.dig example.com +nottlid
+unidadesttl / +não unidadesttlExibe ou oculta o TTL em unidades legíveis para o usuário, como dias ou horas, e implica +ttlid.dig example.com +ttlunits

Opções de consulta que alteram o comportamento da consulta

Existem também opções que alteram a forma como a ferramenta executa a consulta:

OpçãoDescriçãoExemplo de consulta
+rastrearRastreia todo o caminho de delegação, desde os servidores de nomes raiz até a resposta.dig example.com +trace
+norecurseDesativa consultas recursivas.dig example.com +norecurse
+tcpFaz com que a ferramenta utilize o protocolo TCP em vez do UDP, que é o padrão para a maioria das consultas.dig example.com +tcp
+pesquisarUtiliza a lista de pesquisa definida no arquivo /etc/resolv.conf.dig host interno +search
+nssearchLocaliza os servidores de nomes autoritativos de uma zona e exibe seus registros SOA.dig example.com +nssearch
+dnssecAtiva ou desativa a solicitação de registros DNSSEC (define o bit DO) para exibir registros relacionados ao DNSSEC (RRSIG, DNSKEY).dig example.com +dnssec
+time=T (ou +timeout=T nas distribuições mais recentes)Define o tempo de consulta em segundos (o padrão é 5).dig example.com +timeout=2
+tentativas=TDefine o número de tentativas para a consulta (o padrão é 3).dig example.com +tries=5
+retry=TDefine o número de tentativas por servidor, sem contar a consulta inicial (o valor padrão é 2).dig example.com +retry=1
+falha+fail impede que a ferramenta tente o próximo servidor ao receber um SERVFAIL. +nofail (o padrão) continua tentando.dig example.com +fail

O que significa o comando “dig” ? (com exemplos)

1. Descubra o endereço IP do site

Este é o caso de uso mais básico: o comando `dig` retorna o registro A (o endereço IPv4) do domínio.

dig example.com
Saída do terminal do comando `dig example.com` mostrando os endereços IP dos registros A do domínio

2. Verificar o registro MX do domínio

Ao usar o comando a seguir, o dig retorna o(s) servidor(es) de e-mail responsável(is) pelo domínio. 

pesquisar MX no google.com 
Saída no terminal do comando `dig MX google.com`, mostrando os servidores de e-mail do google.com

Você pode adicionar o +curto opção para obter apenas o servidor de e-mail.

dig MX google.com+short
Saída do terminal ao dig MX google.com +short, exibindo uma lista resumida de servidores de e-mail

3. Solicitar todos os registros DNS disponíveis

Você pode usar o comando `dig` para solicitar todos os tipos de registros de um domínio usando a opção `ANY`. No entanto, de acordo com a RFC 8482, muitos servidores de nomes autoritativos agora retornam apenas uma resposta mínima, em vez do conjunto completo de registros, para coibir abusos de amplificação de DNS. Além disso, alguns resolvedores públicos — como o 1.1.1.1 da Cloudflare — recusam completamente as consultas `ANY`.

dig example.com QUALQUER
Saída do terminal do comando `dig example.com ANY`, exibindo uma resposta mínima conforme a RFC 8482

Como solução alternativa, você pode especificar um resolvedor que não bloqueie NENHUMA solicitação. No entanto, se o servidor de nomes autoritativo do domínio restringir esse tipo de consulta, você terá que consultar cada tipo de registro individualmente.

dig @8.8.8.8 example.com ANY
Saída do terminal do comando `dig @8.8.8.8 example.com ANY` exibindo o conjunto completo de registros DNS

4. Rastrear o caminho do DNS

É possível habilitar o dig para consultar servidores raiz e seguir a cadeia de delegação até o servidor de nomes autoritativo, em vez de usar o resolvedor configurado. A opção “trace” é útil para diagnosticar problemas de propagação ou confirmar qual servidor é autoritativo.

dig example.com +trace
Saída do terminal do comando `dig example.com +trace` mostrando os servidores de nomes raiz
Saída do terminal com o comando “dig +trace” em execução, mostrando o TLD e os servidores de nomes autoritativos para example.com

5. Descubra quais são os servidores de nomes responsáveis por um domínio

Para obter os servidores de nomes de um nome de domínio, use este comando:

dig NS example.com 
Saída do terminal do comando `dig NS example.com`, mostrando os servidores de nomes do domínio

Use o +curto opção para ocultar todos os outros detalhes da resposta.

dig NS example.com+short
Saída do terminal do comando `dig NS example.com +short`, exibindo uma lista resumida de servidores de nomes

6. Identificar os servidores de nomes responsáveis por um TLD

O comando `dig` também permite obter os servidores de nomes de um domínio de nível superior (TLD) específico.

dig NS com+short
Saída do terminal do comando “dig NS com +short”, exibindo os servidores de nomes do TLD .com

Sem o +curto parâmetro, você veria outros detalhes.

Saída do terminal do comando “dig NS com” mostrando todos os detalhes do servidor de nomes do TLD .com

7. Verifique o valor do TTL do registro A

Para visualizar apenas o valor TTL do registro A de um domínio, é necessário incluir os parâmetros +noall e +answer. Isso suprime tudo, exceto a seção de resposta. O comando fica assim:

dig example.com +noall +answer

No entanto, se você estiver executando isso no WSL, poderá se deparar com um problema comum em algumas configurações do WSL, nas quais os valores de TTL nas respostas de DNS são zerados. Para obter os valores reais de TTL, é necessário consultar diretamente um servidor DNS externo.

dig @8.8.8.8 example.com +noall +answer
Saída do terminal do comando `dig @8.8.8.8 example.com +noall +answer`, mostrando o valor do TTL do registro A

8. Verificar se existe uma zona em um servidor de nomes

Se o servidor de nomes não tiver a zona, ele retorna uma mensagem de erro indicando que ela não foi encontrada .

dig SOA example.com @ns1.example.com 
Saída do terminal do comando `dig SOA example.com @ns1.example.com`, exibindo um erro de zona não encontrada
dig SOA example.com @elliott.ns.cloudflare.com
Saída do terminal do comando `dig SOA example.com @elliott.ns.cloudflare.com`, mostrando o registro SOA da zona

9. Realizar uma consulta DNS reversa

Use o comando `dig` para realizar uma consulta DNS reversa, mapeando um endereço IP para um nome de host por meio de um registro PTR.

dig-x 74.6.231.20
Saída do terminal do comando `dig -x 74.6.231.20`, mostrando o resultado de uma consulta DNS reversa

10. Consultar um lote de nomes de domínio 

O `dig` pode ler nomes de domínio de um arquivo e executar consultas em cada um deles. Isso é útil para verificar uma lista de domínios, mas lembre-se de que a execução de um grande número de consultas a partir de uma única máquina pode acionar a limitação de taxa nos servidores DNS.

dig -f domains.txt+short
Saída no terminal do comando `dig` com os parâmetros `-f domains.txt +short`, exibindo os resultados das consultas DNS em lote

Se você quiser ver a resposta completa para cada domínio, remova o parâmetro +short.

Quando usar o comando `dig` e quando usar outras ferramentas

Use o comando `dig` quando quiser:

  • Execute diagnósticos de DNS de baixo nível: o `dig` fornece a resposta completa do DNS, incluindo o tipo de registro, o TTL, qual servidor respondeu e quanto tempo levou. É a ferramenta certa quando você precisa ver exatamente o que está acontecendo no nível do DNS.
  • Inspecione o caminho de resolução com a opção +trace: essa opção permite acompanhar a delegação de um domínio desde os servidores DNS raiz até o servidor de nomes autoritário, o que é útil para diagnosticar problemas de propagação ou confirmar de onde um domínio está sendo resolvido.
  • Verifique se uma resposta vem de um cache ou de um servidor de referência: os valores de TTL podem indicar por quanto tempo um resolvedor manterá uma resposta em cache antes de atualizá-la. Valores de TTL mais baixos geralmente significam que o registro já está em cache há algum tempo.

É recomendável evitar o uso do `dig` e utilizar outra ferramenta quando for necessário:

  • Pesquisas rápidas: Se você só precisa de uma resposta rápida — como um endereço IP ou um registro TXT —, ferramentas como o `host` ou o `nslookup` são mais simples e apresentam um resultado direto, sem a necessidade de opções adicionais.
  • Automação em grande escala: como você pode ver nos exemplos acima, o dig gera texto não estruturado, o que dificulta a análise em scripts. Além disso, a execução de muitas consultas consecutivas a partir de uma única máquina pode atingir os limites de taxa dos servidores DNS. Um DNS Lookup API é mais adequado para automação, pois retorna JSON estruturado e foi desenvolvido para uso em grande volume. 
  • Monitoramento: o dig pode ser configurado para ser executado em horários programados, mas não possui alertas integrados, painéis de controle nem histórico de acompanhamento. Se você precisar monitorar a integridade do DNS ao longo do tempo e ser notificado quando houver alguma alteração, uma ferramenta de monitoramento dedicada é a melhor opção.

FAQs

Qual é a diferença entre o `dig` e o `nslookup`?

Ambas as ferramentas consultam o DNS, mas funcionam de maneira diferente. 

O nslookup é mais simples e vem instalado por padrão no Windows, por isso é uma opção comum para consultas rápidas de DNS. 

O `dig` fornece mais detalhes na saída — incluindo a resposta DNS completa, o TTL e as estatísticas da consulta. Você também pode personalizar a forma como o `dig` envia uma consulta DNS e o que ele retorna, de uma maneira que o `nslookup` não permite, especialmente usando opções como +rastrear, +noall +resposta, e +multilinha.

O dig usa TCP ou UDP?

Por padrão, o dig usa UDP na porta 53, embora mude automaticamente para TCP para consultas ANY e IXFR e sempre use TCP para consultas AXFR (transferência de zona). O UDP é mais rápido e suficiente para a maioria das consultas DNS. Mas você pode forçar a ferramenta a usar TCP com o +tcp bandeira.

Experimente nossa WhoisXML API gratuitamente

Comece agora

Tem dúvidas?

Estamos aqui para ouvir. Para obter uma resposta rápida, selecione o tipo de solicitação. Ao enviar uma solicitação, você concorda com nossos Termos de Serviço e Política de Privacidade.

Vendas
Suporte Técnico
Problemas de Conta
Personalização de produtos

Mensagem enviada!

Entraremos em contato em breve.

Opa!

Algo deu errado. Entre em contato conosco por e-mail.