команда dig в linux
10 примеров использования команды dig для просмотра параметров DNS (DNS Lookup) в Linux
Итак, что такое dig?
dig (англ. слово «копать», а формально — сокращение от «domain information groper») — утилита (DNS-клиент), предоставляющая пользователю интерфейс командной строки для обращения к системе DNS. Позволяет задавать различные типы запросов и запрашивать произвольно указываемые сервера. Является аналогом утилиты nslookup.
Утилита dig входит в стандартный комплект DNS сервера BIND.
1. Простой вывод команды dig (для понимания вывода, без доп.параметров )
Когда вы задаете имя домена в команде dig по-умолчанию вы получаете A-запись домена (ip-адрес сайта (домена) который мы запрашивали) как показано на листинге ниже
В примере можно увидеть A-записи домена ya.ru в разделе ANSWER SECTION
Так же можно выполнить опрос конкретного DNS-сервера:
Результат вывода дополняется еще двумя секциями:
AUTHORITY SECTION: Показывает имена DNS-серверов обработавших наш запрос
ADDITIONAL SECTION: Показывает ip-адреса этих DNS-серверов (из секции AUTHORITY SECTION)
2. Вывод только секции ANSWER SECTION
Можно сделать проще, существует ключ +noall, который выключает все секции. Таким образом мы используем ключ +noall и добавляем ключ +answer, уменьшая длину команды
3. Запрос MX-записи
Для запроса MX-записи домена мы используем одноименный аргумент командной строки (MX)
4. Запрос NS-записи
По аналогии с предыдущим пунктом, используем аргумент NS
5. Просмотр всех типов DNS-записей
Для этого используется ключ ANY
6. Краткий вывод команды dig
Допустим чтобы просмотреть только ip-адрес, без лишней информации, используем опцию +short
Вы также можете вывести информацию по любому виду информации с ключем +short
Пример:
7. Просмотр информации об обратной зоне домена (PTR)
Для вывода полной информации убираем ключ +short
8. Использование конкретного DNS-сервера для выполнения запроса
9. Объемный запрос (запрос информации сразу о нескольких доменах)
Для запроса информации о нескольких доменах возможно использование текстовых файлов с перечислением доменов.
Создадим файл names.txt с именами доменов:
Также возможно перечисление доменов непосредственно в командной строке. Для примера узнаем MX-запись для домена ya.ru и NS-запись для домена google.ru:
10. Изменение параметров по умолчанию для команды dig
Таким образом мы рассмотрели мизерную часть этой замечательной утилиты, для тех, кто хочет большего, добро пожаловать в man dig 😉
Команда Dig в Linux (поиск DNS)
Dig (Domain Information Groper) — это мощный инструмент командной строки для запроса серверов имен DNS.
Команда dig позволяет запрашивать информацию о различных записях DNS, включая адреса хостов, почтовые обмены и серверы имен. Это наиболее часто используемый системными администраторами инструмент для устранения проблем с DNS из-за его гибкости и простоты использования.
Установка dig
Чтобы проверить, доступна ли команда dig в вашей системе, введите:
Результат должен выглядеть примерно так:
Если dig отсутствует в вашей системе, приведенная выше команда напечатает «dig: команда не найдена». Инструмент dig можно установить с помощью диспетчера пакетов дистрибутива.
Установите dig на Ubuntu и Debian
Установите dig на CentOS и Fedora
Установить dig на Arch Linux
Понимание dig вывода
В простейшей форме, когда используется для запроса одного хоста (домена) без каких-либо дополнительных параметров, команда dig довольно многословна.
В следующем примере мы работаем в домене linux.org :
Результат должен выглядеть примерно так:
Давайте разберемся по разделам и объясним вывод команды dig :
В первой строке вывода выводится установленная версия dig и запрашиваемое доменное имя. Вторая строка показывает глобальные параметры (по умолчанию только cmd).
В разделе «ВОПРОС» dig показывает запрос (вопрос). По умолчанию dig запрашивает запись A.
Раздел «АВТОРИТЕТ» сообщает нам, какие серверы являются полномочными для ответа на запросы DNS о запрошенном домене.
Раздел «ДОПОЛНИТЕЛЬНО» предоставляет нам информацию об IP-адресах авторитетных DNS-серверов, указанных в разделе полномочий.
Параметр +noadditional отключает дополнительный раздел ответа.
Последний раздел вывода dig включает статистику запроса.
Печать только ответа
1. Получите короткий ответ
Чтобы получить краткий ответ на свой вопрос, используйте опцию +short :
Вывод будет включать только IP-адреса записи A.
2. Получите подробный ответ
Сервер имен для конкретного запроса
Чтобы указать сервер имен, для которого будет выполняться запрос, используйте символ @ (at), за которым следует IP-адрес или имя хоста сервера имен.
Например, чтобы запросить у сервера имен Google (8.8.8.8) информацию о домене linux.org вы должны использовать:
Запрос типа записи
Dig позволяет выполнять любой допустимый DNS-запрос, добавляя тип записи в конец запроса. В следующем разделе мы покажем вам примеры того, как искать наиболее распространенные записи, такие как A (IP-адрес), CNAME (каноническое имя), TXT (текстовая запись), MX (почтовый обменник) и NS ( серверов имен).
1. Запрос записей A
Чтобы получить список всех адресов для доменного имени, используйте параметр a :
2. Запрос записей CNAME
Чтобы найти псевдоним домена, используйте опцию cname :
3. Запрос записей TXT
Используйте параметр txt чтобы получить все записи TXT для определенного домена:
4. Запрос записей MX.
Чтобы получить список всех почтовых серверов для определенного домена, используйте параметр mx :
5. Запрос NS-записей
Чтобы найти авторитетные серверы имен для нашего конкретного домена, используйте параметр ns :
6. Запрос всех записей
Используйте параметр any чтобы получить список всех записей DNS для определенного домена:
Обратный поиск в DNS
Массовые запросы
Например, если вы хотите отобразить только раздел ответов, откройте текстовый редактор и создайте следующий файл
Выводы
dig — это инструмент командной строки для запроса информации DNS и устранения проблем, связанных с DNS.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Команда dig в linux
Команда dig позволяет использовать одноименную утилиту для отправки запросов серверам доменных имен. Данная утилита входит в состав сервера доменных имен BIND, который включен в стандартный комплект поставки большинства дистрибутивов. При использовании dig пользователь может указать имя сервера доменных имен, который должен обработать запрос, поэтому рассматриваемая утилита используется главным образом для диагностики серверов доменных имен.
Базовый синтаксис команды выглядит следующим образом:
$ dig [@имя-сервера-доменных-имен] [параметры] имя-домена-или-IP-адрес
Утилита поддерживает ряд параметров командной строки. Наиболее полезным параметром является параметр -t, позволяющий указать интересующий пользователя тип ресурсной записи (вместо этого параметра может использоваться указание типа ресурсной записи). В частности, поддерживаются следующие типы ресурсных записей:
По умолчанию утилита осуществляет запросы значений ресурсных записей типа A. При этом существует абстрактный тип ресурсных записей ANY, позволяющий вывести значения всех доступных ресурсных записей. Параметр -x позволяет осуществить обратное разрешение доменного имени. В случае необходимости получения информации о множестве доменных имен следует использовать параметр -f с путем к файлу, содержащему список этих имен (по одному имени в строке).
Вывод утилиты разделен на ряд секций:
Пользователь может скрыть комментарии (заголовок, область статистики и названия секций) с помощью параметра +nocomments, секцию AUTHORITY SECTION с помощью параметра +noauthority, секцию ADDITIONAL SECTION с помощью параметра +noadditional, область статистики с помощью параметра +nostats и секцию ANSWER SECTION с помощью параметра +noanswer (хотя это и не совсем разумно). Существуют и обратные параметры без префикса no, которые могут использоваться для показа отдельных секций (например, для показа лишь секции ANSWER SECTION достаточно использовать комбинацию параметров +noall и +answer). Все параметры, которые должны использоваться утилитой по умолчанию, могут быть помещены в скрытый файл конфигурации .digrc в домашней директории пользователя.
Примеры использования
Получение IP-адреса сервера по имени домена
Для получения IP-адреса сервера ресурса по имени его домена достаточно передать утилите имя домена без каких-либо параметров:
В результате будет получен следующий вывод, содержащий достаточное количество ненужной информации:
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;linux-faq.ru. IN A
;; ANSWER SECTION:
linux-faq.ru. 834 IN A 54.172.136.192
;; Query time: 0 msec
;; SERVER: 192.168.188.253#53(192.168.188.253)
;; WHEN: Пн июл 24 02:04:41 MSK 2017
;; MSG SIZE rcvd: 57
Несложно заметить, что сервер имеет IP-адрес 54.172.136.192. Для получения более компактного вывода может использоваться следующая команда:
$ dig +noall +answer linux-faq.ru
Теперь вывод будет содержать лишь наиболее важную информацию:
linux-faq.ru. 700 IN A 54.172.136.192
Получение имен доменов почтовых серверов, связанных с доменом
Для получения имен доменов почтовых серверов, связанных с заданным доменом, нужно четко указывать тип ресурсной записи MX. Для этого может использоваться параметр -t:
Также параметр -t может просто пропускаться:
$ dig MX linux-faq.ru +noall +answer
В обоих случаях будет получен аналогичный вывод:
; > DiG 9.11.1-P2-RedHat-9.11.1-2.P2.fc26 > MX linux-faq.ru +noall +answer
;; global options: +cmd
linux-faq.ru. 9728 IN MX 10 emx.mail.ru.
Получение имен серверов доменных имен, связанных с доменом
Для получения имен серверов доменных имен, связанных с заданным доменом, нужно четко указывать тип ресурсной записи NS. Для этого может использоваться параметр -t:
Также параметр -t может просто пропускаться:
$ dig NS linux-faq.ru +noall +answer
В обоих случаях будет получен аналогичный вывод:
; > DiG 9.11.1-P2-RedHat-9.11.1-2.P2.fc26 > NS linux-faq.ru +noall +answer
;; global options: +cmd
linux-faq.ru. 301 IN NS ns2.r01.ru.
linux-faq.ru. 301 IN NS ns1.r01.ru.
Получение значений всех доступных ресурсных записей
Для получения значений всех доступных ресурсных записей, связанных с заданным доменом, нужно использовать тип ресурсной записи ANY. Для этого может использоваться параметр -t:
Также параметр -t может просто пропускаться:
$ dig ANY linux-faq.ru +noall +answer
В обоих случаях будет получен аналогичный вывод:
; > DiG 9.11.1-P2-RedHat-9.11.1-2.P2.fc26 > ANY linux-faq.ru +noall +answer
;; global options: +cmd
linux-faq.ru. 9431 IN MX 10 emx.mail.ru.
linux-faq.ru. 163 IN A 54.172.136.192
linux-faq.ru. 163 IN NS ns2.r01.ru.
linux-faq.ru. 163 IN NS ns1.r01.ru.
Обратное разрешение доменного имени
Для того, чтобы осуществить обратное разрешение доменного имени достаточно использовать параметр -x и задать IP-адрес сервера:
Использование определенного сервера доменных имен
Для использования определенного сервера доменных имен необходимо указать его имя или IP-адрес после символа @:
Команда Dig в Linux (Domain Information Groper)
Dig Command in Linux (DNS Lookup)
В этом руководстве объясняется, как использовать dig утилиту, на практических примерах и подробные объяснения наиболее распространенных вариантов dig.
Команда dig позволяет запрашивать информацию о различных записях DNS, включая адреса хостов, почтовые обмены и серверы имен. Это наиболее часто используемый инструмент среди системных администраторов для устранения проблем с DNS из-за его гибкости и простоты использования.
Установка dig
Чтобы проверить, доступна ли команда dig в вашей системе, введите:
Вывод должен выглядеть примерно так:
Если dig его нет в вашей системе, приведенная выше команда выведет «dig: команда не найдена». dig Инструмент может быть установлен с помощью менеджера пакетов дистрибутива.
Установить dig на Ubuntu и Debian
Установить dig на CentOS и Fedora
Установить dig на Arch Linux
Понимание dig вывода
В простейшем виде dig команда используется для запроса одного хоста (домена) без каких-либо дополнительных опций, команда довольно многословна.
В следующем примере мы выполняем на linux.org домене:
Вывод должен выглядеть примерно так:
Давайте рассмотрим раздел за разделом и объясним вывод dig команды:
В первой строке вывода печатается установленная dig версия и запрашиваемое имя домена. Вторая строка показывает глобальные параметры (по умолчанию только cmd).
Если вы не хотите, чтобы эти строки были включены в вывод, используйте +nocmd опцию. Эта опция должна быть самой первой после dig команды.
Этот раздел можно удалить с помощью +nocomments параметра, который также отключает заголовки некоторых других разделов.
Чтобы исключить этот раздел из вывода, используйте +noedns параметр.
В разделе «ВОПРОС» dig отображается запрос (вопрос). По умолчанию dig запрашивает запись А.
Вы можете отключить этот раздел, используя +noquestion опцию.
Раздел «ОТВЕТ» дает нам ответ на наш вопрос. Как мы уже упоминали, по умолчанию dig будет запрашиваться запись A. Здесь мы видим, что домен linux.org указывает на 104.18.59.123 IP-адрес.
Обычно вы не хотите отключать ответ, но вы можете удалить этот раздел из вывода, используя +noanswer опцию.
Раздел «AUTHORITY» сообщает нам, какие серверы являются полномочиями для ответа на DNS-запросы о запрашиваемом домене.
Вы можете отключить этот раздел вывода, используя +noauthority опцию.
Раздел «ДОПОЛНИТЕЛЬНО» предоставляет нам информацию об IP-адресах доверенных DNS-серверов, указанных в разделе полномочий.
+noadditional Опция отключает дополнительный раздел ответа.
Последний раздел dig вывода содержит статистику о запросе.
Вы можете отключить эту часть с помощью +nostats опции.
Печать только ответа
Как правило, вы хотите получить только короткий ответ на ваш dig запрос.
1. Получите короткий ответ
Чтобы получить краткий ответ на ваш запрос, используйте +short опцию:
Вывод будет включать только IP-адреса записи A.
2. Получить подробный ответ
Чтобы получить более подробный ответ, отключите все результаты с помощью +noall параметров, а затем включите только раздел ответов с этим +answer параметром.
Запрос конкретного сервера имен
По умолчанию, если сервер имен не указан, dig используются серверы, указанные в /etc/resolv.conf файле.
Чтобы указать сервер имен, для которого будет выполняться запрос, используйте @ символ (at), за которым следует IP-адрес сервера имен или имя хоста.
Например, чтобы запросить у сервера имен Google (8.8.8.8) информацию о linux.org домене, который вы используете:
Запросить тип записи
Dig позволяет вам выполнить любой допустимый DNS-запрос, добавив тип записи в конец запроса. В следующем разделе мы покажем вам примеры того, как искать наиболее распространенные записи, такие как A (IP-адрес), CNAME (каноническое имя), TXT (текстовая запись), MX (почтовый обменник) и NS ( серверы имен).
1. Запрос записей
Чтобы получить список всех адресов для доменного имени, используйте a параметр:
Как вы уже знаете, если тип записи DNS не указан, dig будет запрашиваться запись А. Вы также можете запросить запись A без указания a опции.
2. Запрос записей CNAME
Чтобы найти псевдоним домена, используйте cname параметр:
3. Запрос записей TXT
Используйте txt опцию, чтобы получить все записи TXT для определенного домена:
4. Запрос MX записей
Чтобы получить список всех почтовых серверов для определенного домена, используйте mx параметр:
5. Запрос записей NS
Чтобы найти официальные серверы имен для нашего конкретного домена, используйте ns параметр:
6. Запрос всех записей
Используйте any опцию, чтобы получить список всех записей DNS для определенного домена:
Обратный поиск DNS
Массовые Запросы
В следующем примере мы запрашиваем домены, указанные в domains.txt файле.
Например, если вы хотите отобразить только раздел ответа, откройте текстовый редактор и создайте следующий файл
Вывод
dig является инструментом командной строки для запроса информации DNS и устранения проблем, связанных с DNS
Команда dig в Linux
Команда dig (domain information groper) — многофункциональный инструмент для опроса DNS-серверов. Она позволяет получить больше информации о конкретном домене, для того чтобы, например, узнать используемые им IP-адреса.
Этот инструмент может оказаться полезным сетевым администраторам для выявления неисправностей DNS. Аналоги чаще всего предлагают меньше функций и возможностей, чем может предоставить утилита командной строки dig. В этой статье мы рассмотрим что из себя представляет команда dig Linux, а также как ею пользоваться.
Синтаксис команды dig
Использовать команду dig несложно. Достаточно ввести название сервера, имя домена и передать команде подходящие опции:
$ dig @сервер доменное.имя тип записи флаги
Опции и флаги dig
Во время работы утилиты dig могут использоваться следующие флаги:
Вместе с dig можно применять следующие опции:
Здесь указаны лишь некоторые флаги и опции. Если необходимо узнать больше, используйте команду:
Примеры использования dig
1. Получение информации о домене
Для того чтобы получить информацию о домене необходимо передать имя домена команде. Например, для google.com:
Рассмотрим каждую секцию вывода подробнее:
По умолчанию утилита выводит много лишней информации. Для получения только основных данных используйте запрос с флагом +short. Например:
dig google.com +short
Если использовать команду dig вместе с +noall, вы ничего не увидите, поскольку этот флаг отключает вывод всех секций.
dig google.com +noall
Если вместе с флагом +noall использовать флаг +answer, dig выведет только ту информацию, которая есть в секции ANSWER (IP-адрес, тип записи и пр.).
dig доменное.имя +noall +answer
Для создания комбинированного запроса можно использовать текстовый файл со списком сайтов, например, sites.txt. Чтобы создать текстовый документ с таким именем, введите следующую команду в терминале:
В файл необходимо добавить список доменов, для которых необходимо получить данные, например:
google.com
ya.ru
losst.ru
Для того чтобы получить информацию о перечисленных в файле sites.txt доменах, используйте команду:
2. Получение определённой записи
Согласно синтаксису команды dig linux, тип записи указывается после доменного имени. Для того чтобы получить MX-запись домена google.com, используйте команду:
dig google.com MX +noall +answer
Чтобы получить NS-запись для домена, введите в терминале такую команду:
dig google.com NS +noall +answer
Запрос записи A происходит по умолчанию. Однако мы можем прописать этот запрос отдельно, чтобы обеспечить её вывод без дополнительной информации:
dig google.com A +noall +answer
Для вывода записи TXT аналогичным образом используйте команду вида:
dig google.com TXT +noall +answer
Для просмотра всех типов записей одновременно используйте запрос вида:
dig google.com ANY +noall +answer
3. Использование определённого DNS-сервера
Если DNS-сервер не был указан, как это было показано в предыдущих примерах, утилита dig linux будет по очереди пробовать все серверы из файла /etc/resolv.conf. Если же и там ничего нет, dig отправит запрос на localhost.
Указывать DNS-серверы можно в формате IPv4 или IPv6. Это не имеет значения и не повлияет на вывод dig. Отправим запрос на публичный DNS-сервер Google. Его IP-адрес: 8.8.8.8. В этом случае запрос в dig будет выглядеть следующим образом:
dig @8.8.8.8 google.com +noall +answer
Как видно, для домена google.com используется IP-адрес: 142.250.75.14.
4. Получение домена по IP
Для того чтобы узнать имя домена с помощью команды dig по IP, используйте опцию -x. Например, для того, чтобы узнать домен, привязанный к IP адресу 87.250.250.242 выполните такую команду:
Как видите, это IP адрес яндекса. Правда такой способ получения доменов работает не всегда. Если к IP привязано несколько доменов программа может вывести только первый. Для того чтобы сократить вывод и оставить только нужную нам информацию, можно ввести запрос следующим образом:
Команда отображает информацию о том, что это google.com. Как видите команда dig Linux способна на многое.
Выводы
В этой небольшой статье мы рассмотрели, как можно использовать dig для опроса DNS-серверов. Несмотря на то что команда достаточно простая, она позволяет получить много полезной информации. А чем вы пользуетесь для обращения к серверам DNS? Напишите об этом в комментариях ниже.