Как использовать команду dig?

В этой публикации мы рассмотрим использование команды DIG в Linux на реальных примерах. Команда DIG – это инструмент диагностики DNS в командной строке, который извлекает параметры DNS, такие как записи DNS, IP-адреса или имена хостов. Команда DIG полезна для поиска неисправностей в сети и может работать на основе опций командной строки и аргументов флага или путем чтения запросов из файла операционной системы. Команда DIG ежедневно используется системными администраторами и ее нужно знать каждому.

В этой статье мы будем использовать ОС Ubuntu 24.04, но вы можете выбрать любой дистрибутив Linux. Все зависит от вас. Приступим!

Необходимые условия

  • Сервер под управлением Ubuntu 24.04 или любой другой ОС Linux (CentOS, Debian или AlmaLinux)
  • Привилегии пользователя: root или не root пользователь с привилегиями sudo

Обновление системы

Прежде чем приступить к выполнению команд, обновим системные пакеты до последних доступных версий. Для этого выполните следующую команду:

sudo apt update -y && sudo apt upgrade -y

Установка DIG

В системе Linux команда DIG обычно установлена по умолчанию, что можно проверить с помощью следующей команды:

dig -v

Вы должны получить следующий результат:

dig -v
DiG 9.18.28-0ubuntu0.24.04.1-Ubuntu

Если вы по какой-то причине не получили этот вывод, то можете попробовать установить dig с помощью следующих команд:

sudo apt install dnsutils -y

Синтаксис команды DIG

Основной синтаксис команды dig следующий:

dig [server] [name] [type]

Фактические примеры будут показаны далее.

Показать все записи

Чтобы вернуть все записи имени хоста, в нашем примере google.com, выполните следующую команду:

dig google.com any

Вы должны получить следующий результат:

; DiG 9.18.28-0ubuntu0.24.04.1-Ubuntu google.com any
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46602
;; flags: qr rd ra; QUERY: 1, ANSWER: 30, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;google.com.            IN  ANY
;; ANSWER SECTION:
google.com.        248 IN  A   209.85.200.113
google.com.        248 IN  A   209.85.200.139
google.com.        248 IN  A   209.85.200.101
google.com.        248 IN  A   209.85.200.100
google.com.        248 IN  A   209.85.200.138
google.com.        248 IN  A   209.85.200.102
google.com.        248 IN  AAAA    2607:f8b0:4001:c16::8b
google.com.        248 IN  AAAA    2607:f8b0:4001:c16::66
google.com.        248 IN  AAAA    2607:f8b0:4001:c16::8a
google.com.        248 IN  AAAA    2607:f8b0:4001:c16::71
google.com.        3548    IN  TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e"
google.com.        3548    IN  TXT "MS=E4A68B9AB2BB9670BCE15412F62916164C0B20BB"
google.com.        21548   IN  NS  ns3.google.com.
google.com.        3548    IN  TXT "onetrust-domain-verification=de01ed21f2fa4d8781cbc3ffb89cf4ef"
google.com.        3548    IN  TXT "google-site-verification=wD8N7i1JTNTkezJ49swvWW48f8_9xveREV4oB-0Hf5o"
google.com.        21548   IN  NS  ns4.google.com.
google.com.        21548   IN  CAA 0 issue "pki.goog"
google.com.        21548   IN  NS  ns1.google.com.
google.com.        3548    IN  TXT "google-site-verification=TV9-DBe4R80X4v0M4U_bd_J9cpOJM0nikft0jAgjmsQ"
google.com.        21548   IN  HTTPS   1 . alpn="h2,h3"
google.com.        3548    IN  TXT "cisco-ci-domain-verification=479146de172eb01ddee38b1a455ab9e8bb51542ddd7f1fa298557dfa7b22d963"
google.com.        248 IN  MX  10 smtp.google.com.
google.com.        3548    IN  TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95"
google.com.        3548    IN  TXT "globalsign-smime-dv=CDYX+XFHUw2wml6/Gb8+59BsH31KzUr6c1l2BPvqKX8="
google.com.        8   IN  SOA ns1.google.com. dns-admin.google.com. 698728253 900 900 1800 60
google.com.        21548   IN  NS  ns2.google.com.
google.com.        3548    IN  TXT "v=spf1 include:_spf.google.com ~all"
google.com.        3548    IN  TXT "docusign=1b0a6754-49b1-4db5-8540-d2c12664b289"
google.com.        3548    IN  TXT "google-site-verification=4ibFUgB-wXLQ_S7vsXVomSTVamuOXBiVAzpR5IZ87D0"
google.com.        3548    IN  TXT "apple-domain-verification=30afIBcvSuDV2PLX"
;; Query time: 24 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (TCP)
;; WHEN: Fri Dec 06 10:42:23 CST 2024
;; MSG SIZE  rcvd: 1285

Показать только A-записи

Если мы хотим увидеть только A-записи хоста, мы можем выполнить следующую команду:

dig google.com

Вы получите следующий результат:

; DiG 9.18.28-0ubuntu0.24.04.1-Ubuntu google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1549
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;google.com.            IN  A
;; ANSWER SECTION:
google.com.        211 IN  A   142.250.10.100
google.com.        211 IN  A   142.250.10.139
google.com.        211 IN  A   142.250.10.113
google.com.        211 IN  A   142.250.10.101
google.com.        211 IN  A   142.250.10.102
google.com.        211 IN  A   142.250.10.138
;; Query time: 3 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Fri Dec 06 10:43:47 CST 2024
;; MSG SIZE  rcvd: 135

Показать SOA-записи

Чтобы вернуть SOA-запись (Start of Authority), необходимо выполнить следующую команду:

dig google.com SOA

Вы должны получить следующий результат:

;  DiG 9.18.28-0ubuntu0.24.04.1-Ubuntu google.com SOA
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24276
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;google.com.            IN  SOA
;; ANSWER SECTION:
google.com.        43  IN  SOA ns1.google.com. dns-admin.google.com. 698728253 900 900 1800 60
;; Query time: 10 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Fri Dec 06 10:44:17 CST 2024
;; MSG SIZE  rcvd: 89

Показать NS серверы

Если мы хотим получить информацию об авторитетных серверах имен для DNS-запросов о домене, мы можем выполнить следующую команду:

dig @ns1.google.com google.com

Мы должны получить следующий результат:

; DiG 9.18.28-0ubuntu0.24.04.1-Ubuntu  @ns1.google.com google.com
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25216
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;google.com.            IN  A
;; ANSWER SECTION:
google.com.        300 IN  A   172.217.0.174
;; Query time: 25 msec
;; SERVER: 216.239.32.10#53(ns1.google.com) (UDP)
;; WHEN: Fri Dec 06 10:45:45 CST 2024
;; MSG SIZE  rcvd: 55

Трассировка пути DNS

Отслеживание пути DNS означает, что мы можем проследить DNS-запрос от локального компьютера или сервера до авторитетного сервера имен. Чтобы отследить путь DNS, выполните следующую команду:

dig google.com +trace

Вы получите результат, аналогичный следующему

; DiG 9.18.28-0ubuntu0.24.04.1-Ubuntu google.com +trace
;; global options: +cmd
.            7057    IN  NS  h.root-servers.net.
.            7057    IN  NS  f.root-servers.net.
.            7057    IN  NS  b.root-servers.net.
.            7057    IN  NS  c.root-servers.net.
.            7057    IN  NS  l.root-servers.net.
.            7057    IN  NS  m.root-servers.net.
.            7057    IN  NS  g.root-servers.net.
.            7057    IN  NS  d.root-servers.net.
.            7057    IN  NS  e.root-servers.net.
.            7057    IN  NS  a.root-servers.net.
.            7057    IN  NS  k.root-servers.net.
.            7057    IN  NS  i.root-servers.net.
.            7057    IN  NS  j.root-servers.net.
;; Received 239 bytes from 127.0.0.53#53(127.0.0.53) in 1 ms
com.            172800  IN  NS  e.gtld-servers.net.
com.            172800  IN  NS  b.gtld-servers.net.
com.            172800  IN  NS  a.gtld-servers.net.
com.            172800  IN  NS  d.gtld-servers.net.
com.            172800  IN  NS  i.gtld-servers.net.
com.            172800  IN  NS  f.gtld-servers.net.
com.            172800  IN  NS  j.gtld-servers.net.
com.            172800  IN  NS  k.gtld-servers.net.
com.            172800  IN  NS  c.gtld-servers.net.
com.            172800  IN  NS  g.gtld-servers.net.
com.            172800  IN  NS  h.gtld-servers.net.
com.            172800  IN  NS  l.gtld-servers.net.
com.            172800  IN  NS  m.gtld-servers.net.
com.            86400   IN  DS  19718 13 2 8ACBB0CD28F41250A80A491389424D341522D946B0DA0C0291F2D3D7 71D7805A
com.            86400   IN  RRSIG   DS 8 1 86400 20241219050000 20241206040000 61050 . iGr5ntnlDqRtjHWnHm5Yb1q2kfqlYkRSdpCWkMySfCvkh6r/nCnHI5Ex 1cKBchueEmUbFCJ3OS6f1IvbOHZOFuWaAGUlU6Cwf9fi3GiFQ2HXf19J i20BNgewl1yFZmdZmlhLFkyMIwQ5FBV2j8IvPaz2VaQRF+gmUp3GeiJZ D9yJE+DKPlk1ypJtgazBX84OpzagU97a2F2CV0yFVF8xtiI/coVJVA5j 4LHPF+ycXi2ot5+sD0S9ZzTbgCIeWZE0+1Bd8DiXcHt1QPnUlxIsUj+k uwFN1sv9ifwkq9h7Y3IZZE6oCMksah0qlOcXpJ9bDhUuYWlKEJNDj9H7 brEkDA==
;; Received 1170 bytes from 192.203.230.10#53(e.root-servers.net) in 1 ms
google.com.        172800  IN  NS  ns2.google.com.
google.com.        172800  IN  NS  ns1.google.com.
google.com.        172800  IN  NS  ns3.google.com.
google.com.        172800  IN  NS  ns4.google.com.
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 900 IN NSEC3 1 1 0 - CK0Q3UDG8CEKKAE7RUKPGCT1DVSSH8LL NS SOA RRSIG DNSKEY NSEC3PARAM
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 900 IN RRSIG NSEC3 13 2 900 20241210002643 20241202231643 29942 com. ZPTbLhdFM8mLHiQtP96boZkcbQGI1vsZXJiuPAmApU9cYv7LMDAcphdK P4huP5ivFGQ5AmNpH2IhgfxSgvZRUw==
S84BOR4DK28HNHPLC218O483VOOOD5D8.com. 900 IN NSEC3 1 1 0 - S84BR9CIB2A20L3ETR1M2415ENPP99L8 NS DS RRSIG
S84BOR4DK28HNHPLC218O483VOOOD5D8.com. 900 IN RRSIG NSEC3 13 2 900 20241211014942 20241204003942 29942 com. 74JpkoKJZTrolBn3CynjxFeH858/x61hnBZmadI2lYRrh0ks9O5GXL4W +AZ4eoswzTA41tvGaaRLQ12UDPhkdg==
;; Received 644 bytes from 192.33.14.30#53(b.gtld-servers.net) in 27 ms
;; UDP setup with 2001:4860:4802:38::a#53(2001:4860:4802:38::a) for google.com failed: network unreachable.
;; UDP setup with 2001:4860:4802:32::a#53(2001:4860:4802:32::a) for google.com failed: network unreachable.
google.com.        300 IN  A   172.217.0.174
;; Received 55 bytes from 216.239.38.10#53(ns4.google.com) in 25 ms

Другие команды DIG

Существует множество команд DIG, которые можно использовать для получения различной информации, вот список некоторых из них:

Показать только основные параметры

dig google.com +nocmd

Убрать комментарии

dig google +nocmd +noall +answer +nocomments

Показать обратную DNS запись

dig -x 142.250.31.139

Возвращает только IP-адреса для A-записей

dig google.com +short

Показать MX-запись для домена

dig google.com MX
Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Похожие статьи

Комментарии (0)