GNU/Linux >> Znalost Linux >  >> Linux

Dig Command v Linuxu (DNS vyhledávání)

Dig (Domain Information Groper) je výkonný nástroj příkazového řádku pro dotazování jmenných serverů DNS.

dig vám umožňuje dotazovat se na informace o různých záznamech DNS, včetně adres hostitelů, výměn pošty a jmenných serverů. Je to nejběžněji používaný nástroj mezi správci systému pro odstraňování problémů s DNS kvůli jeho flexibilitě a snadnému použití.

Tento tutoriál vysvětluje, jak používat dig užitečnost prostřednictvím praktických příkladů a podrobných vysvětlení nejběžnějších dig možnosti.

Instalace dig #

Chcete-li zkontrolovat, zda dig příkaz je k dispozici na vašem typu systému:

dig -v

Výstup by měl vypadat nějak takto:

DiG 9.11.3-1ubuntu1.1-Ubuntu

Pokud dig není ve vašem systému přítomen, výše uvedený příkaz vypíše „dig:command not found“. dig nástroj lze nainstalovat pomocí správce balíčků distribuce.

Instalovat dig na Ubuntu a Debianu #

sudo apt update && sudo apt install dnsutils

Instalovat dig na CentOS a Fedora #

sudo yum install bind-utils

Instalovat dig na Arch Linuxu #

sudo pacman -S bind-tools

Porozumění dig Výstup #

Ve své nejjednodušší podobě, když se používá k dotazování jednoho hostitele (domény) bez dalších možností, dig příkaz je velmi podrobný.

V následujícím příkladu vystupujeme na linux.org doména:

dig linux.org

Výstup by měl vypadat nějak takto:

Pojďme oddíl po oddílu a vysvětlíme si výstup dig příkaz:

  1. První řádek výstupu vypíše nainstalovaný dig verze a dotazovaný název domény. Druhý řádek zobrazuje globální možnosti (ve výchozím nastavení pouze cmd).

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

    Pokud nechcete, aby tyto řádky byly zahrnuty do výstupu, použijte +nocmd volba. Tato možnost musí být úplně první po dig příkaz.

  2. Další část obsahuje technické podrobnosti o odpovědi obdržené od dožádaného orgánu (serveru DNS). V záhlaví je uveden operační kód (akce provedená dig ) a stav akce. V tomto příkladu je stav NOERROR , což znamená, že dožádaný orgán dotaz bez problémů vyřídil.

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

    Tuto sekci lze odstranit pomocí +nocomments možnost, která také deaktivuje záhlaví některých jiných sekcí.

  3. Pseudo sekce „OPT“ se zobrazuje pouze v novějších verzích dig užitečnost. Více o mechanismech rozšíření pro DNS (EDNS) si můžete přečíst zde.

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

    Chcete-li tuto sekci z výstupu vyloučit, použijte +noedns možnost.

  4. V sekci "OTÁZKA" dig zobrazí dotaz (otázku). Ve výchozím nastavení dig požaduje záznam A.

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

    Tuto sekci můžete deaktivovat pomocí +noquestion možnost.

  5. Sekce „ODPOVĚĎ“ nám poskytuje odpověď na naši otázku. Jak jsme již zmínili, ve výchozím nastavení dig požádá o záznam A. Zde vidíme, že doména linux.org ukazuje na 104.18.59.123 IP adresa.

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

    Obvykle nechcete odpověď vypnout, ale můžete tuto sekci z výstupu odstranit pomocí +noanswer možnost.

  6. Sekce „AUTHORITY“ nám říká, které servery jsou autoritou pro zodpovězení dotazů DNS na dotazovanou doménu.

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

    Tuto sekci výstupu můžete zakázat pomocí +noauthority možnost.

  7. Sekce „DALŠÍ“ nám poskytuje informace o IP adresách autoritativních serverů DNS uvedených v sekci oprávnění.

    ;; 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

    +noadditional volba deaktivuje další část odpovědi.

  8. Poslední sekce dig výstup obsahuje statistiky o dotazu.

    ;; 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

    Tuto část můžete deaktivovat pomocí +nostats možnost.

Tisk pouze odpovědi #

Obecně byste chtěli získat pouze krátkou odpověď na váš dig dotaz.

1. Získejte krátkou odpověď #

Chcete-li získat krátkou odpověď na svůj dotaz, použijte +short možnost:

dig linux.org +short
104.18.59.123
104.18.58.123

Výstup bude obsahovat pouze IP adresy záznamu A.

2. Získejte podrobnou odpověď #

Chcete-li získat podrobnější odpověď, vypněte všechny výsledky pomocí +noall a poté zapněte pouze sekci odpovědí s +answer možnost.

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

Jmenný server specifický pro dotaz #

Ve výchozím nastavení, pokud není zadán jmenný server, dig používá servery uvedené v /etc/resolv.conf soubor.

Chcete-li zadat jmenný server, proti kterému bude dotaz proveden, použijte @ (at) následovaný IP adresou jmenného serveru nebo názvem hostitele.

Chcete-li například zadat dotaz na jmenný server Google (8.8.8.8) na informace o linux.org doménu, kterou byste použili:

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

Dotaz na typ záznamu #

Dig vám umožňuje provést jakýkoli platný DNS dotaz připojením typu záznamu na konec dotazu. V následující části vám ukážeme příklady, jak hledat nejběžnější záznamy, jako je A (IP adresa), CNAME (kanonický název), TXT (textový záznam), MX (výměnník pošty) a NS ( jmenné servery).

1. Dotazování záznamů A #

Chcete-li získat seznam všech adres pro název domény, použijte a možnost:

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

Jak již víte, pokud není zadán žádný typ záznamu DNS, dig požádá o záznam A. Záznam A můžete také dotazovat bez zadání a možnost.

2. Dotazování záznamů CNAME #

Chcete-li najít alias název domény, použijte cname možnost:

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

3. Dotazování TXT záznamů #

Použijte txt možnost načíst všechny záznamy TXT pro konkrétní doménu:

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. Dotazování záznamů MX #

Chcete-li získat seznam všech poštovních serverů pro konkrétní doménu, použijte mx možnost:

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. Dotazování NS záznamů #

Chcete-li najít autoritativní jmenné servery pro naši konkrétní doménu, použijte ns možnost:

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. Dotaz na všechny záznamy #

Použijte any možnost získat seznam všech DNS záznamů pro konkrétní doménu:

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

Reverzní vyhledávání DNS #

K dotazu na jméno hostitele spojené s konkrétní IP adresou použijte -x možnost.

Chcete-li například provést zpětné vyhledávání na 208.118.235.148 byste napsali:

dig -x 208.118.235.148 +noall +answer

Jak můžete vidět z výstupu níže, IP adresa 208.118.235.148 je spojen s názvem hostitele 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.

Hromadné dotazy #

Pokud chcete dotazovat velký počet domén, můžete je přidat do souboru (jedna doména na řádek) a použít -f možnost následovaná názvem souboru.

V následujícím příkladu se dotazujeme na domény uvedené v souboru domains.txt soubor.

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

Soubor .digrc #

dig chování příkazu lze ovládat nastavením možností pro jednotlivé uživatele v ${HOME}/.digrc soubor.

Pokud .digrc je přítomen v domovském adresáři uživatele, možnosti v něm uvedené se použijí před argumenty příkazového řádku.

Pokud například chcete zobrazit pouze sekci odpovědí, otevřete textový editor a vytvořte následující ~/.digrc soubor:

~/.digrc
+nocmd +noall +answer

Závěr č.

dig je nástroj příkazového řádku pro dotazování na informace DNS a odstraňování problémů souvisejících s DNS.

Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.


Linux
  1. Jak používat příkaz Dig v Linuxu

  2. Linuxový příkaz mv

  3. Linux du command

  1. Linuxový ip příkaz

  2. Linux cd příkaz

  3. 10 Příklady příkazů Linux nslookup pro vyhledávání DNS

  1. Jak používat Linux dig Command (DNS Lookup)

  2. Linux příkaz ifconfig

  3. Příklady příkazů dig v Linuxu