Vuoi sapere come usare il comando dig su Linux? In questa guida ti mostreremo come si usa il comando con le sue opzioni di base. Imparerai come ottenere informazioni sui record DNS dei domini e fare una ricerca inversa a partire da un IP.
Iniziamo!
Table of Contents
Sintassi del comando dig
Il comando dig (domain information groper) ci permette di avere informazioni sui DNS e di risolvere eventuali problemi con i record DNS.
La sintassi di base del comando dig è questa:
dig [hostname/indirizzo IP] [tipo di record]
Per esempio per avere informazioni sui record MX del dominio esempio.com, userò il comando:
dig esempio.com MX
Nel corso di questo articolo ti mostrerò diversi esempi che ti aiuteranno a capire meglio come si usa il comando dig.
Casi d’uso del comando dig
Con il comando dig possiamo avere informazioni sui record DNS dei domini.
Possiamo usare dig per diverse funzioni, tra cui:
- avere informazioni su tutti i record DNS o su un record specifico;
- ricavare l’indirizzo IP associato a un dominio (DNS lookup);
- ottenere il dominio associato a un IP (reverse DNS lookup).
Alcune di queste informazioni possono essere ottenute anche con il comando nslookup. Se usiamo dig, nell’output avremo informazioni aggiuntive.
Ecco un confronto tra gli output dei due comandi:

In questo esempio:
- con entrambi i comandi (senza usare opzioni) ottengo il record A (indirizzo IP, in formato IPv4, associato al dominio indicato);
- con dig posso avere altre informazioni, tra cui il TTL.
Adesso, andiamo a vedere come si usa il comando dig e come leggere l’output.
Verificare i record A di un dominio
Se usiamo il comando dig senza specificare il tipo di record, verranno mostrati tutti i record A associati a quel dominio.
Vediamo un esempio.
Usiamo il comando:
dig wikipedia.org
L’output che ci viene fornito ci dà diverse informazioni, vediamo come interpretarle.
Nella sezione Answer possiamo vedere 5 elementi in colonna:
wikipedia.org. 23 IN A 185.15.58.224
- Il dominio che abbiamo richiesto: wikipedia.org
- Il TTL (Time to live) indica per quanto tempo (in secondi) verrà conservato questo record DNS nella cache: 23.
- “IN” si riferisce alla classe di appartenenza del record, e indica Internet.
- Tipo di record, in questo caso: A.
- Contenuto del record A, quindi l’indirizzo IP associato al dominio: 185.15.58.224.

Le altre informazioni presenti nell’output sono:
Prima riga: in questa possiamo vedere la versione di dig che stiamo usando.
; <<>> DiG 9.18.30-0ubuntu0.24.04.2-Ubuntu <<>> wikipedia.org
Sezione Header, qui possiamo vedere i dettagli sulla richiesta inviata (lo status: NOERROR ci indica che è andata a buon fine).
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23143 ;;
flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
Nella sezione “OPT PSEUDOSECTION” vedremo eventuali flag specifici e la dimensione del pacchetto di dati udp.
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
La sezione Question ci mostra la query che è stata inviata, in questo caso la richiesta del record A.
;; QUESTION SECTION:
;wikipedia.org. IN A
Dopo la sezione Answer, che abbiamo visto prima, troviamo quest’ultima sezione che indica:
- Query time: quanto tempo è stato necessario per avere risposta;
- SERVER: il server che ha risposto;
- WHEN: la data della richiesta;
- MSG SIZE rcvd: la dimensione della risposta ottenuta.
;; Query time: 60 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Fri May 09 10:48:38 CEST 2025
;; MSG SIZE rcvd: 58
Come fare un reverse DNS lookup
Possiamo usare il comando dig da terminale sia per avere informazioni su un dominio che per fare una ricerca inversa (quella che viene chiamata reverse DNS lookup).
Per la ricerca inversa ci basta usare il comando dig con l’opzione -x
in questo modo:
dig -x [indirizzo IP]
Usando il comando dig con l’opzione -x viene fatta una ricerca del record PTR e si può risalire al dominio associato a un determinato IP.
In questo caso, nell’esempio precedente abbiamo ottenuto l’IP associato al dominio wikipedia.org, ora facendo un reverse DNS lookup di questo IP, otteniamo text-lb.drmrs.wikimedia.org.

Fare una richiesta usando un DNS specifico
Se non specifichiamo un DNS, il comando dig userà i server DNS locali. Possiamo scegliere ad esempio di utilizzare i server DNS di Google:
- server primario: 8.8.8.8
- server secondario: 8.8.4.4
Per farlo, ci basta specificare il server da usare in questo modo:
dig @8.8.8.8 wikipedia.org
Nell’esempio qui sotto puoi vedere che nell’ultima sezione il server utilizzato cambia:
- se non specificato, viene usato il server DNS locale;
- possiamo indicarlo per usare un server DNS specifico (nell’esempio, uno dei server DNS di Google).

Verificare tutti i record di un dominio
Come altri comandi Linux, anche dig ha delle opzioni che ci permettono di modificare l’output o il comportamento stesso del comando.
Usando il comando dig senza opzioni, otteniamo informazioni solo sul record A. Se, invece, vogliamo avere informazioni su tutti i record DNS, possiamo usare il comando in questo modo aggiungendo “ANY”:
dig dominio.com ANY
In questo caso l’output cambia in base al dominio e potremo trovare uno o più tipi di record diversi.

In questo esempio l’output ci mostra:
- record SOA che contiene informazioni sulla ZONA DNS;
- record A che mostra l’IP;
- record MX che indica i server di posta (in questo caso più di uno grazie all’MX secondario;
- record TXT che può essere usato per vari scopi, in questo esempio è usato per impostare i record SPF per i server email;
- record NS che indicano i nameserver.
Verificare uno specifico record DNS
Per visualizzare uno specifico tipo di record DNS associato a un dominio, ci basta usare il comando dig in questo modo:
dig [dominio] [tipo di record]
Vediamo diversi esempi.
Verificare i record NS
Per i record NS, usiamo il comando dig in questo modo:
dig [dominio] NS
Se usiamo il comando in questo modo avremo:
- una sezione Answer in cui vedremo i record NS;
- una sezione Additional in cui vedremo anche gli altri record.
Per semplificare la risposta possiamo aggiungere il parametro “+short
“.
In questo esempio puoi vedere la differenza di output tra i due comandi:
dig dominio.com NS
dig dominio.com NS +short

Verificare i record MX
Per ottenere solo informazioni sui record MX possiamo usare il comando dig in questo modo:
dig dominio.com MX
Se vogliamo ottenere una risposta più breve senza sezioni aggiuntive, usiamo:
dig dominio.com MX +short
Ecco qui sotto un esempio di entrambi gli output:
- nel primo caso abbiamo la risposta completa nella sezione Answer:
ivanmessina.it. 1821 IN MX 40 mxbackup1.svrsh.com.
ivanmessina.it. 1821 IN MX 0 mail.ivanmessina.it.
ivanmessina.it. 1821 IN MX 50 mxbackup2.svrsh.com.
Nel secondo (con +short), abbiamo solo i record MX:
0 mail.ivanmessina.it.
50 mxbackup2.svrsh.com.
40 mxbackup1.svrsh.com

Verificare più domini
Se vogliamo verificare i record DNS di più domini usando il comando dig, possiamo creare un file di testo e fare eseguire il comando in batch.
Per farlo dobbiamo:
- creare un file al cui interno inserire la lista di domini e salvarlo in formato .txt;
- usare il comando dig in questo modo:
dig -f [nome-file]
Possiamo dare l’opzione +short
oppure le opzioni +noall +answer
per avere il risultato in forma compatta. In questo caso ci saranno forniti solo i record A dei domini inseriti nel file.
Per esempio, ho creato un file “lista_domini.txt” con questi domini:
wikipedia.org
harvard.edu
google.com
Poi ho usato il comando:
dig -f lista_domini.txt +noall +answer
L’output ottenuto è questo:
wikipedia.org. 140 IN A 185.15.58.224
harvard.edu. 558 IN A 192.0.66.20
google.com. 259 IN A 216.58.205.46
Creare un file mi permette di fare più richieste senza usare ogni volta il comando dig per ogni singolo dominio.
Nell’esempio qui sotto ho prima usato il comando cat per visualizzare nel terminale il contenuto del file di testo e poi ho usato il comando dig passandogli il nome del file (nel mio caso lista_domini.txt), per avere un risultato più compatto ho usato le opzioni +noall +answer
.

Seguire il percorso dei DNS
Possiamo utilizzare l’opzione +trace
per far sì che la richiesta parta dal root server, passi per il TLD server e arrivi ai server autoritativi del dominio indicato.
Il comando si usa così:
dig [dominio] +trace
Ecco un esempio di output:

Modificare l’output del comando dig
Come abbiamo visto in apertura, ogni volta che usiamo il comando dig ci viene fornito un output con diverse informazioni suddivise in sezioni.
Per rendere il risultato più leggibile, possiamo richiedere un output semplificato in modo da vedere solo quello che ci interessa.
In particolare ci sono due opzioni che possono tornarci utili.
Mostrare solo il valore del record
Se vogliamo che ci venga fornito solo il valore dei record senza altre informazioni, possiamo usare “+short
” alla fine del comando.
Abbiamo già visto alcuni esempi prima, ma eccone qualcuno anche qui.
La sintassi del comando è questa:
dig [dominio] [tipo di record] +short
Per esempio:
dig ivanmessina.it A +short
Questo comando ci fornirà in output solo il contenuto del record A, e quindi l’IP.

Mostrare solo la sezione answer
Se, invece, vogliamo visualizzare solo la sezione Answer, senza le altre, possiamo usare il comando dig seguito da “+noall +answer
“.
La sintassi è questa:
dig [dominio] [tipo di record] +noall +answer
Per esempio:
dig ivanmessina.it MX +noall +answer
Questo comando ci mostrerà solo la sezione Answer con i record MX richiesti.

Conclusioni
Il comando dig è una delle opzioni che possiamo usare quando vogliamo ottenere informazioni sui DNS di un dominio.
Con questo comando è possibile ottenere l’indirizzo IP associato a un dominio o richiedere specifici record come i nameserver (NS) o i record mail exchanger (MX). Il comando quindi è molto utile per fare delle verifiche e risolvere eventuali problemi di configurazione dei record.
Avevi mai usato questo comando per avere informazioni sui DNS o, al suo posto, preferisci usare i tool online? Facci sapere con un commento.
Lascia un commento