Yandex
Обновить настройки cookies

Как узнать MX запись домена с помощью команды DIG

Для обеспечения эффективной связи и доступа к ресурсам Интернета важно понимать, как функционируют доменные имена и DNS. В Linux команда dig (Domain Information Groper) является основным инструментом для работы с DNS. В этой статье мы разберем, что представляет собой команда, как ее использовать, а также приведем практические примеры.

Обзор команды dig linux


Команда dig - это утилита командной строки, которая позволяет выполнять запросы к DNS-серверам. С ее помощью можно получать IP-адреса, узнавать mx записи домена (для электронной почты), записи NS (имена серверов имен) и другие данные. Это мощный инструмент для диагностики сетевых проблем, проверки настроек DNS и общего анализа доменных имен.

Формат команды:

dig [@server] domain [query-type] [query-class] [+query-option] [-dig-otion] [%comment]
Параметр server не является обязательным. По умолчанию dig использует DNS-сервер, указанный в файле /etc/resolv.conf. Вы можете задать сервер, указав его либо по имени хоста, либо через IP-адрес. Если вы используете имя хоста, dig сначала разрешите его в IP-адрес с помощью DNS-сервера по умолчанию, а затем будет использовать этот сервер для получения информации о домене.

Параметр query-type определяет тип запрашиваемой записи, например, A, SOA, NS или MX запись в dig. Чтобы получить все доступные данные о домене, можно указать query-type как any.

Параметр query-class обозначает класс сетевой информации. +query-option позволяет изменять настройки в DNS-запросе или формат вывода результатов. Многие из этих опций совпадают с параметрами программы nslookup.

Параметры команды dig


  • [no]debug: Включает или отключает режим отладки.
  • [no]d2: То же с режимом полной отладки.
  • [no]recurse: Определяет, использовать или не использовать рекурсивные запросы.
  • retry=#: Устанавливает количество попыток повторного запроса.
  • time=#: Задает время ожидания между запросами.
  • [no]ko: Позволяет оставить опцию открытой (реализует виртуальные соединения).
  • [no]vc: Использовать или нет виртуальное соединение.
  • [no]defname: Включает или отключает использование домена по умолчанию.
  • [no]search: Использовать или не использовать список поиска.
  • domain=NAME: Устанавливает домен по умолчанию как NAME.
  • [no]ignore: Игнорировать или нет ошибки при усечении.
  • [no]primary: Использовать или нет основной сервер.
  • [no]aaonly: Флаг для запроса только авторитетных данных.
  • [no]trace: Отображение трассы запросов.
  • [no]cmd: Показывает аргументы при выполнении команды.
  • [no]stats: Выводит статистику по запросу.
  • [no]Header: Отображает основной заголовок ответа.
  • [no]header: Выводит флаги заголовка.
  • [no]ttlid: Показывает значение TTL (время жизни).
  • [no]cl: Отображает информацию о классе записи.
  • [no]qr: Показывает исходящий запрос.
  • [no]reply: Выводит ответ на запрос.
  • [no]ques: Показывает поле вопроса.
  • [no]answer: Отображает поле ответа.
  • [no]author: Показывает поле полномочий.
  • [no]addit: Выводит поле дополнительной информации.
  • pfdef: Устанавливает вывод флагов по умолчанию.
  • pfmin: Задает минимальный вывод флагов.
  • pfset=#: Устанавливает количество выводимых флагов.
  • pfand=#: Выводит флаги с использованием побитовой операции AND.
  • pfor=#: Выводит флаги с использованием побитовой операции OR.

Параметр -dig-otion используется для других опций.

-x  Инверсное преобразование адреса в нормальном написании.
-f   Считывает файл для пакетной обработки.
-T  Время в секундах до включения режима пакетной обработки.
-P  После получения ответа выдать команду ping.
-p  Номер используемого порта.
-t   Указать тип запроса.
-c   Указать класс запроса.
-envsav   Параметры dig сохраняются для использования по умолчанию в дальнейшем.

Установка dig


Чтобы убедиться, что команда dig доступна, выполните следующую команду:
dig -v
Ожидаемый вывод будет похож на это:
DiG 9.11.3-1ubuntu1.1-Ubuntu

Если команда dig не установлена - вы получите сообщение: "dig: команда не найдена". Чтобы установить dig, воспользуйтесь менеджером пакетов вашего дистрибутива.

Установка dig на Ubuntu и Debian:
apt update && sudo apt install dnsutils
Установка dig на CentOS и Fedora:
yum install bind-utils
Установка dig на Arch Linux:
pacman -S bind-tools

Печать только ответа


Если вам нужно получить только краткий ответ на запрос - используйте опцию +short:
dig linux.org +short
Вывод будет содержать только IP-адреса для записи A:
104.18.59.123
104.18.58.123

Для получения более детализированного ответа примените параметры +noall для исключения всех данных и +answer для отображения только раздела ответов:
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

Запрос к конкретному серверу имен


По умолчанию dig использует серверы, указанные в файле /etc/resolv.conf. Чтобы указать конкретный сервер имен, используйте символ @, за которым следует IP-адрес сервера или его имя:
dig linux.org @8.8.8.8.
Пример вывода для запроса к серверу Google (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

Запрос типа записи


Чтобы выполнить запрос для получения записей определенного типа, добавьте тип записи в конец команды.

Запрос записей A:
dig +nocmd google.com a +noall +answerВывод:
google.com. 128 IN A 216.58.206.206

Запрос записей CNAME:
dig +nocmd mail.google.com cname +noall +answerВывод:
mail.google.com. 553482 IN CNAME googlemail.l.google.com.

Запрос записей TXT:
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"

Как проверить mx запись домена:
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.

Запрос NS записей:
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.

Запрос всех записей:
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

Обратный поиск DNS


Чтобы найти имя хоста по IP-адресу, используйте опцию -x:
dig -x 208.118.235.148 +noall +answer
Вывод:
; <<>> 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.
Массовые запросы
Если нужно запросить несколько доменов, добавьте их в файл (по одному на строку) и используйте параметр -f, указав имя файла:
dig -f domains.txt +short
Пример содержимого файла domains.txt:
lxer.com
linuxtoday.com
tuxmachines.org

Вывод:
108.166.170.171
70.42.23.121
204.68.122.43

Вывод


dig представляет собой утилиту командной строки, предназначенную для получения информации о DNS и диагностики проблем, связанных с системами доменных имен.
16 Aug 2024, 15:38:35