GNU/Linux >> Linux Esercitazione >  >> Linux

Comando Dig in Linux (ricerca DNS)

Dig (Domain Information Groper) è un potente strumento da riga di comando per interrogare i server dei nomi DNS.

Lo dig comando, consente di interrogare informazioni su vari record DNS, inclusi indirizzi host, scambi di posta e server dei nomi. È lo strumento più comunemente utilizzato dagli amministratori di sistema per la risoluzione dei problemi DNS grazie alla sua flessibilità e facilità d'uso.

Questo tutorial spiega come usare dig utilità attraverso esempi pratici e spiegazioni dettagliate dei più comuni dig opzioni.

Installazione di dig #

Per verificare se il dig comando è disponibile sul tuo tipo di sistema:

dig -v

L'output dovrebbe essere simile a questo:

DiG 9.11.3-1ubuntu1.1-Ubuntu

Se dig non è presente sul tuo sistema, il comando sopra stamperà "dig:comando non trovato". Lo dig lo strumento può essere installato utilizzando il gestore di pacchetti della distribuzione.

Installa dig su Ubuntu e Debian #

sudo apt update && sudo apt install dnsutils

Installa dig su CentOS e Fedora #

sudo yum install bind-utils

Installa dig su Arch Linux #

sudo pacman -S bind-tools

Capire lo dig Uscita #

Nella sua forma più semplice, quando viene utilizzato per interrogare un singolo host (dominio) senza opzioni aggiuntive, il dig il comando è piuttosto dettagliato.

Nell'esempio seguente, stiamo eseguendo su linux.org dominio:

dig linux.org

L'output dovrebbe essere simile a questo:

Andiamo sezione per sezione e spieghiamo l'output di dig comando:

  1. La prima riga dell'output stampa il dig installato versione e il nome di dominio richiesto. La seconda riga mostra le opzioni globali (per impostazione predefinita, solo cmd).

    ; <<>> DiG 9.13.3 <<>> linux.org
    ;; global options: +cmd

    Se non vuoi che quelle righe siano incluse nell'output, usa +nocmd opzione. Questa opzione deve essere la prima dopo dig comando.

  2. La sezione successiva include dettagli tecnici sulla risposta ricevuta dall'autorità interpellata (server DNS). L'intestazione mostra l'opcode (l'azione eseguita da dig ) e lo stato dell'azione. In questo esempio, lo stato è NOERROR , il che significa che l'autorità interpellata ha risposto alla domanda senza alcun problema.

    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37159
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 5

    Questa sezione può essere rimossa usando +nocomments opzione, che disabilita anche le intestazioni di altre sezioni.

  3. La pseudo sezione "OPT" viene mostrata solo nelle versioni più recenti di dig utilità. Puoi leggere ulteriori informazioni sui meccanismi di estensione per DNS (EDNS) qui.

    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096

    Per escludere questa sezione dall'output, usa +noedns opzione.

  4. Nella sezione "DOMANDA" dig mostra la query (domanda). Per impostazione predefinita, dig richiede il record A.

    ;; QUESTION SECTION:
    ;linux.org.			IN	A

    Puoi disabilitare questa sezione usando il +noquestion opzione.

  5. La sezione “RISPOSTA” ci fornisce una risposta alla nostra domanda. Come abbiamo già detto, per impostazione predefinita dig richiederà il record A. Qui possiamo vedere che il dominio linux.org punta al 104.18.59.123 Indirizzo IP.

    ;; ANSWER SECTION:
    linux.org.		300	IN	A	104.18.59.123
    linux.org.		300	IN	A	104.18.58.123

    Di solito, non vuoi disattivare la risposta, ma puoi rimuovere questa sezione dall'output usando il +noanswer opzione.

  6. La sezione "AUTHORITY" ci dice quali server sono l'autorità per rispondere alle query DNS sul dominio richiesto.

    ;; AUTHORITY SECTION:
    linux.org.		86379	IN	NS	lia.ns.cloudflare.com.
    linux.org.		86379	IN	NS	mark.ns.cloudflare.com.

    Puoi disabilitare questa sezione dell'output usando +noauthority opzione.

  7. La sezione “ADDITIONAL” ci fornisce informazioni sugli indirizzi IP dei server DNS autorevoli mostrati nella sezione autorità.

    ;; ADDITIONAL SECTION:
    lia.ns.cloudflare.com.	84354	IN	A	173.245.58.185
    lia.ns.cloudflare.com.	170762	IN	AAAA	2400:cb00:2049:1::adf5:3ab9
    mark.ns.cloudflare.com.	170734	IN	A	173.245.59.130
    mark.ns.cloudflare.com.	170734	IN	AAAA	2400:cb00:2049:1::adf5:3b82

    Il +noadditional opzione disabilita la sezione aggiuntiva di una risposta.

  8. L'ultima sezione dello dig l'output include le statistiche sulla query.

    ;; Query time: 58 msec
    ;; SERVER: 192.168.1.1#53(192.168.1.1)
    ;; WHEN: Fri Oct 12 11:46:46 CEST 2018
    ;; MSG SIZE  rcvd: 212

    Puoi disabilitare questa parte con +nostats opzione.

Stampa solo la risposta #

In genere, vorresti ottenere solo una breve risposta al tuo dig interrogazione.

1. Ottieni una risposta breve #

Per ottenere una breve risposta alla tua domanda, usa il +short opzione:

dig linux.org +short
104.18.59.123
104.18.58.123

L'output includerà solo gli indirizzi IP del record A.

2. Ottieni una risposta dettagliata #

Per una risposta più dettagliata, disattiva tutti i risultati utilizzando +noall opzioni e quindi attivare solo la sezione delle risposte con il +answer opzione.

dig linux.org +noall +answer
; <<>> DiG 9.13.3 <<>> linux.org +noall +answer
;; global options: +cmd
linux.org.		67	IN	A	104.18.58.123
linux.org.		67	IN	A	104.18.59.123

Query server dei nomi specifico #

Per impostazione predefinita, se non viene specificato alcun server dei nomi, dig utilizza i server elencati in /etc/resolv.conf file.

Per specificare un server dei nomi su cui verrà eseguita la query, utilizzare @ (at) simbolo seguito dall'indirizzo IP del name server o dal nome host.

Ad esempio, per interrogare il server dei nomi di Google (8.8.8.8) per informazioni su linux.org dominio che useresti:

dig linux.org @8.8.8.8
; <<>> DiG 9.13.3 <<>> linux.org @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39110
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;linux.org.			IN	A

;; ANSWER SECTION:
linux.org.		299	IN	A	104.18.58.123
linux.org.		299	IN	A	104.18.59.123

;; Query time: 54 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Oct 12 14:28:01 CEST 2018
;; MSG SIZE  rcvd: 70

Interroga un tipo di record #

Dig consente di eseguire qualsiasi query DNS valida aggiungendo il tipo di record alla fine della query. Nella sezione seguente, ti mostreremo esempi di come cercare i record più comuni, come A (l'indirizzo IP), CNAME (nome canonico), TXT (record di testo), MX (scambiatore di posta) e NS ( server dei nomi).

1. Interrogazione dei record A #

Per ottenere un elenco di tutti gli indirizzi per un nome di dominio, utilizzare il a opzione:

dig +nocmd google.com a +noall +answer
google.com.		128	IN	A	216.58.206.206

Come già sai, se non viene specificato alcun tipo di record DNS, dig richiederà il record A. Puoi anche interrogare il record A senza specificare il a opzione.

2. Interrogazione dei record CNAME #

Per trovare l'alias nome di dominio usa il cname opzione:

dig +nocmd mail.google.com cname +noall +answer
mail.google.com.	553482	IN	CNAME	googlemail.l.google.com.

3. Interrogazione dei record TXT #

Usa il txt opzione per recuperare tutti i record TXT per un dominio specifico:

dig +nocmd google.com txt +noall +answer
google.com.		300	IN	TXT	"facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95"
google.com.		300	IN	TXT	"v=spf1 include:_spf.google.com ~all"
google.com.		300	IN	TXT	"docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e"

4. Interrogazione dei record MX #

Per ottenere un elenco di tutti i server di posta per un dominio specifico usa il mx opzione:

dig +nocmd google.com mx +noall +answer
google.com.		494	IN	MX	30 alt2.aspmx.l.google.com.
google.com.		494	IN	MX	10 aspmx.l.google.com.
google.com.		494	IN	MX	40 alt3.aspmx.l.google.com.
google.com.		494	IN	MX	50 alt4.aspmx.l.google.com.
google.com.		494	IN	MX	20 alt1.aspmx.l.google.com.

5. Interrogazione dei record NS #

Per trovare i name server autorevoli per il nostro dominio specifico usa il ns opzione:

dig +nocmd google.com ns +noall +answer
google.com.		84527	IN	NS	ns1.google.com.
google.com.		84527	IN	NS	ns2.google.com.
google.com.		84527	IN	NS	ns4.google.com.
google.com.		84527	IN	NS	ns3.google.com.

6. Interrogazione di tutti i record #

Usa any opzione per ottenere un elenco di tutti i record DNS per un dominio specifico:

dig +nocmd google.com any +noall +answer
google.com.		299	IN	A	216.58.212.14
google.com.		299	IN	AAAA	2a00:1450:4017:804::200e
google.com.		21599	IN	NS	ns2.google.com.
google.com.		21599	IN	NS	ns1.google.com.
google.com.		599	IN	MX	30 alt2.aspmx.l.google.com.
google.com.		21599	IN	NS	ns4.google.com.
google.com.		599	IN	MX	50 alt4.aspmx.l.google.com.
google.com.		599	IN	MX	20 alt1.aspmx.l.google.com.
google.com.		299	IN	TXT	"docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e"
google.com.		21599	IN	CAA	0 issue "pki.goog"
google.com.		599	IN	MX	40 alt3.aspmx.l.google.com.
google.com.		3599	IN	TXT	"facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95"
google.com.		21599	IN	NS	ns3.google.com.
google.com.		599	IN	MX	10 aspmx.l.google.com.
google.com.		3599	IN	TXT	"v=spf1 include:_spf.google.com ~all"
google.com.		59	IN	SOA	ns1.google.com. dns-admin.google.com. 216967258 900 900 1800 60

Ricerca DNS inversa #

Per interrogare l'hostnameassociato ad uno specifico indirizzo IP usa il -x opzione.

Ad esempio, per eseguire una ricerca inversa su 208.118.235.148 dovresti digitare:

dig -x 208.118.235.148 +noall +answer

Come puoi vedere dall'output sotto l'indirizzo IP 208.118.235.148 è associato al nome host wildebeest.gnu.org .

; <<>> DiG 9.13.3 <<>> -x 208.118.235.148 +noall +answer
;; global options: +cmd
148.235.118.208.in-addr.arpa. 245 IN	PTR	wildebeest.gnu.org.

Query in blocco #

Se desideri interrogare un numero elevato di domini, puoi aggiungerli in un file (un dominio per riga) e utilizzare il -f opzione seguita dal nome del file.

Nell'esempio seguente, stiamo interrogando i domini elencati in domains.txt file.

domains.txt
lxer.com
linuxtoday.com
tuxmachines.org
dig -f domains.txt +short
108.166.170.171
70.42.23.121
204.68.122.43

Il file .digrc #

Lo dig il comportamento del comando può essere controllato impostando le opzioni per utente in ${HOME}/.digrc file.

Se il .digrc file è presente nella home directory dell'utente, le opzioni in esso specificate vengono applicate prima degli argomenti della riga di comando.

Ad esempio, se vuoi visualizzare solo la sezione delle risposte, apri il tuo editor di testo e crea il seguente ~/.digrc file:

~/.digrc
+nocmd +noall +answer

Conclusione #

dig è uno strumento da riga di comando per eseguire query sulle informazioni DNS e risolvere i problemi relativi al DNS.

Se hai domande o feedback, sentiti libero di lasciare un commento.


Linux
  1. Come utilizzare il comando Dig in Linux

  2. comando IP Linux

  3. comando cd di Linux

  4. 10 Esempi di comandi Linux nslookup per la ricerca DNS

  5. dig Esempi di comandi in Linux

Al comando in Linux

Come utilizzare il comando Dig in Linux (10 esempi)

Come utilizzare il comando Dig in Linux

Spiegazione del comando Dig in Linux

dig Command in Linux:un riferimento completo per principianti

10 Esempi di comandi DIG Linux per la ricerca DNS