Команда Dig в Linux
Обновлено: 21.11.2024
Описание
dig (информация о домене) — это гибкий инструмент для опроса DNS-серверов имен. Он выполняет поиск в DNS и отображает ответы, которые возвращаются от серверов имен, которые были запрошены. Большинство администраторов DNS используют dig для устранения проблем с DNS из-за его гибкости, простоты использования и четкости вывода. Другие инструменты поиска, как правило, менее функциональны, чем dig.
Хотя команда dig обычно используется с аргументами командной строки, она также имеет пакетный режим работы для чтения запросов поиска из файла. Краткое описание аргументов и опций командной строки выводится, когда указана опция -h. В отличие от более ранних версий, реализация dig в BIND 9 позволяет выполнять несколько запросов из командной строки.
Если не указано запрашивать определенный сервер имен, dig будет пытаться использовать каждый из серверов, перечисленных в /etc/resolv.conf.
Если аргументы или параметры командной строки не указаны, dig выполнит запрос NS для "." (корень).
Можно установить настройки по умолчанию для каждого пользователя через $/.digrc. Этот файл читается, и любые параметры в нем применяются перед аргументами командной строки.
Имена классов IN и CH пересекаются с именами доменов верхнего уровня IN и CH. Либо используйте параметры -t и -c, чтобы указать тип и класс, либо используйте -q, чтобы указать имя домена, либо используйте "IN". и "Ч." при поиске этих доменов верхнего уровня.
Простое использование
server — это имя или IP-адрес сервера имен для запроса. Это может быть IPv4-адрес в точечно-десятичной нотации или IPv6-адрес в нотации с разделителями-двоеточиями. Когда предоставленный аргумент server является именем хоста, dig разрешает это имя перед запросом этого сервера имен. Если аргумент server не указан, dig обращается к файлу /etc/resolv.conf и запрашивает перечисленные там серверы имен. Отображается ответ ответившего сервера имен. name — это имя записи ресурса, которую необходимо найти. type указывает, какой тип запроса требуется — ANY, A, MX, SIG и т. д. type может быть любым допустимым типом запроса. Если аргумент type не указан, dig выполнит поиск записи A.
Параметры
Класс запросов по умолчанию (IN для Интернета) переопределяется параметром -c. класс — любой допустимый класс, например HS для записей Hesiod или CH для записей Chaosnet.
Опция -f заставляет dig работать в пакетном режиме, читая список запросов поиска для обработки из файла имя_файла. Файл содержит ряд запросов, по одному в строке. Каждая запись в файле должна быть организована таким же образом, как если бы они представлялись как запросы для поиска с использованием интерфейса командной строки.
Параметр -m включает отладку использования памяти.
Опция -4 заставляет dig использовать только транспорт запросов IPv4. Параметр -6 заставляет dig использовать только транспорт запросов IPv6.
Опция -t задает тип запроса type. Это может быть любой допустимый тип запроса, который поддерживается в BIND 9. Тип запроса по умолчанию — «A», если не указана опция -x для указания обратного просмотра. Перенос зоны можно запросить, указав тип AXFR. Когда требуется добавочная передача зоны (IXFR), для type задается значение ixfr=N. Добавочная передача зоны будет содержать изменения, внесенные в зону, поскольку серийный номер в записи SOA зоны был N.
Опция -q задает имя запроса name. Это полезно для того, чтобы отличать имя от других аргументов.
Обратный поиск — сопоставление адресов с именами — упрощается с помощью параметра -x. addr – это IPv4-адрес в десятичном формате с точками или IPv6-адрес, разделенный двоеточиями. При использовании этой опции нет необходимости указывать аргументы name, class и type. dig автоматически выполняет поиск имени, например 11.12.13.10.in-addr.arpa, и устанавливает тип и класс запроса на PTR и IN соответственно. По умолчанию адреса IPv6 ищутся с использованием полубайтового формата в домене IP6.ARPA. Чтобы использовать старый метод RFC1886 с использованием домена IP6.INT, укажите параметр -i. Метки битовых строк (RFC2874) теперь являются экспериментальными и не используются.
Чтобы подписать DNS-запросы, отправленные программой dig, и их ответы с помощью подписей транзакций (TSIG), укажите файл ключа TSIG с помощью параметра -k. Вы также можете указать сам ключ TSIG в командной строке, используя параметр -y; hmac — тип TSIG, по умолчанию HMAC-MD5, name — имя ключа TSIG, а key — фактический ключ. Ключ представляет собой строку в кодировке base-64, обычно генерируемую dnssec-keygen(8). Следует соблюдать осторожность при использовании параметра -y в многопользовательских системах, поскольку ключ может быть виден в выводе ps(1) или в файле истории оболочки. При использовании аутентификации TSIG с dig запрашиваемый сервер имен должен знать используемый ключ и алгоритм. В BIND это делается путем указания соответствующих операторов ключа и сервера в named.conf.
Параметры запроса
dig предоставляет ряд параметров запроса, которые влияют на способ поиска и отображения результатов. Некоторые из них устанавливают или сбрасывают флаговые биты в заголовке запроса, некоторые определяют, какие разделы ответа будут напечатаны, а третьи определяют стратегии тайм-аута и повторных попыток.
Если не указано, dig будет искать /etc/trusted-key.key, а затем trust-key.key в текущем каталоге.
Требуется, чтобы dig был скомпилирован с параметром -DDIG_SIGCHASE. +[no]topdown При погоне за цепочками подписей DNSSEC выполняется проверка сверху вниз. Требуется, чтобы dig был скомпилирован с параметром -DDIG_SIGCHASE. +[no]nsid Включить запрос идентификатора сервера имен EDNS при отправке запроса.
Несколько запросов
Реализация dig в BIND 9 поддерживает указание нескольких запросов в командной строке (в дополнение к поддержке параметра пакетного файла -f). Каждый из этих запросов может быть снабжен собственным набором флагов, параметров и параметров запроса.
В этом случае каждый аргумент query представляет отдельный запрос в синтаксисе командной строки, описанном выше. Каждый из них состоит из любых стандартных параметров и флагов, имени для поиска, необязательного типа и класса запроса, а также любых параметров запроса, которые должны применяться к этому запросу.
Идентификационная поддержка
Если программа dig была создана с поддержкой IDN (интернационализированных доменных имен), она может принимать и отображать доменные имена, отличные от ASCII. dig соответствующим образом преобразует кодировку символов доменного имени перед отправкой запроса на DNS-сервер или отображением ответа с сервера. Если вы хотите отключить поддержку IDN по какой-либо причине, определите переменную среды IDN_DISABLE. Поддержка IDN отключена, если переменная установлена при запуске dig.
Коды возврата
В нашей предыдущей статье мы объяснили примеры и использование команды nslookup, которая представляет собой сетевой инструмент командной строки, используемый для запроса и получения информации DNS (системы доменных имен).
Здесь, в этой статье, мы придумываем еще один инструмент командной строки под названием dig, который очень похож на инструмент nslookup в Linux. Мы подробно рассмотрим использование команды dig с их примерами и использованием.
Dig означает (Domain Information Groper) — это инструмент командной строки сетевого администрирования для запросов к серверам имен системы доменных имен (DNS).
Это полезно для проверки и устранения неполадок DNS, а также для выполнения поиска DNS и отображения ответов, возвращаемых с запрошенного сервера имен.
Dig является частью пакета программного обеспечения сервера доменных имен BIND. Команда dig заменяет старые инструменты, такие как nslookup и host. Инструмент dig доступен в основных дистрибутивах Linux.
1. Запросить запись домена «A»
Давайте разберемся с выводом команд:
2. Запросить запись домена «A» с помощью +short
По умолчанию команда dig довольно многословна. Один из способов сократить вывод — использовать опцию +short. что резко сократит вывод, как показано ниже.
Примечание. По умолчанию dig ищет запись "A" указанного домена, но вы можете указать и другие записи. Запись MX или Mail eXchange сообщает почтовым серверам, как маршрутизировать электронную почту для домена. Аналогично TTL, SOA и т. д.
3. Запрос записи MX для домена
Запрос только различных типов записей ресурсов DNS.
4. Запрос записи SOA для домена
5. Запрос записи TTL для домена
6. Раздел "Запрос только ответов"
7. Запрос ВСЕХ типов записей DNS
8. Обратный просмотр DNS
Запрос обратного просмотра DNS. Отображать раздел ответов только с использованием +short.
9. Запрос нескольких записей DNS
Запросить DNS-запрос нескольких веб-сайтов, а именно. MX, NS и т. д. записи.
10. Создать файл .digrc
Создайте файл .digrc в папке $HOME/.digrc, чтобы сохранить параметры копания по умолчанию.
У нас есть постоянное сохранение +noall +ответов в файле .digrc в домашнем каталоге пользователя. Теперь всякий раз, когда выполняется команда dig, она будет отображать только раздел ответов вывода dig. Нет необходимости каждый раз вводить параметры, такие как +noall +answer.
В этой статье мы попытались найти команду dig, которая может помочь вам в поиске (DNS) информации, связанной со службой доменных имен. Поделитесь своими мыслями в поле для комментариев.
Если вам понравилась эта статья, подпишитесь на уведомления по электронной почте о руководствах по Linux. Если у вас есть вопросы или сомнения? обратитесь за помощью в разделе комментариев.
Если вы цените то, что мы делаем здесь, в TecMint, вам следует подумать о следующем:
TecMint – это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей, доступных всем БЕСПЛАТНО.
Если вам нравится то, что вы читаете, купите нам кофе (или 2) в знак признательности.
Мы благодарны за вашу бесконечную поддержку.
Похожие записи
4 мысли о «10 командах Linux Dig (Domain Information Groper) для запроса DNS»
Допустим, IP моего ПК = 192.168.1.5
IP моего локального DNS = 10.10.10.10
IP резолвера 1 = 1.1.1.1
(не беспокойтесь о маршрутизации), предполагая, что порт 53 открыт везде.
Спасибо, чувак! Очень полезная статья!
Еще одна хитрость: можно использовать определенный IP-адрес DNS-RESOLVER вместо системного ( /etc/resolv.conf ).
Ниже я запросил PUBLIC RESOLVER от Google (8.8.8.8):
спасибо… этот сайт был очень полезным, и эти примеры действительно сокращают кривую обучения!
Команда dig в Linux используется для сбора информации DNS. Это расшифровывается как Domain Information Groper и собирает данные о серверах доменных имен. Команда dig полезна для устранения проблем с DNS, но также используется для отображения информации DNS.
Это руководство поможет вам понять и использовать команду dig в Linux.
- Система под управлением Linux
- Учетная запись пользователя с правами sudo или root
- Доступ к окну терминала/командной строке
Установите dig в Linux (необязательно)
Большинство современных систем Linux включают команду dig.
Убедитесь, что он установлен, проверив версию программного обеспечения. Для этого откройте командную строку и введите следующее:
Система должна ответить числовым кодом. Если система не может найти указанную команду, установите dig, введя следующее:
Дебиан/Убунту:
CentOS/RedHat:
После завершения установки проверьте установку с помощью следующей команды:
Дополнительную информацию о CentOS и RHEL см. в нашей статье Как установить dig в CentOS 7 и 8.
копать синтаксис
Команда dig используется следующим образом:
[server] — имя хоста или IP-адрес, на который направляется запрос
[name] — DNS (сервер доменных имен) сервера для запроса
[type] — тип записи DNS получить. По умолчанию (или если оставить это поле пустым) dig использует тип записи A
Распространенные типы записей DNS:
- A – запись адреса, которая напрямую сопоставляет имя хоста с IP-адресом.
- MX — почтовый обмен, который сопоставляет агенты передачи сообщений для домена.
- SIG – запись подписи, используемая в протоколах шифрования.
Узнайте о других типах, обратившись к нашему полному списку в разделе «Объяснение типов записей DNS».
Команда dig разрешает имя хоста, прежде чем приступить к запросу сервера имен.
Как использовать команду dig с примерами
Давайте рассмотрим основные способы использования команды dig.
Поиск DNS
Команда dig позволяет искать доменное имя. Чтобы выполнить поиск DNS, откройте терминал и введите:
Вы должны увидеть примерно следующее:
Самый важный раздел — это раздел ОТВЕТЫ:
- В первом столбце указано имя запрашиваемого сервера.
- Второй столбец — это время жизни, установленный период времени, после которого запись обновляется.
- В третьем столбце указан класс запроса. В данном случае "IN" означает "Интернет".
- В четвертом столбце отображается тип запроса. В данном случае "A" означает запись A (адрес).
- В последнем столбце отображается IP-адрес, связанный с доменным именем.
Другие строки можно перевести следующим образом:
В первой строке отображается версия команды dig.
В разделе HEADER отображается информация, полученная от сервера. Флаги относятся к формату ответа.
Псевдосекция OPT отображает дополнительные данные:
- EDNS – система расширений для DNS, если она используется.
- Флаги – пусто, поскольку флаги не указаны.
- UDP – размер пакета UDP.
В разделе ВОПРОС отображаются отправленные данные запроса:
- Первый столбец – это запрашиваемое доменное имя.
- Второй столбец — это тип (IN = Интернет) запроса.
- Третий столбец указывает запись (A = адрес), если не указано иное
В разделе СТАТИСТИКА показаны метаданные о запросе:
- Время запроса – количество времени, которое потребовалось для ответа.
- SERVER — IP-адрес и порт отвечающего DNS-сервера. Вы можете заметить адрес обратной связи в этой строке — это относится к локальной настройке, которая транслирует адреса DNS.
- WHEN — метка времени запуска команды.
- MSG SIZE rcvd — размер ответа от DNS-сервера.
Указать DNS-сервер
По умолчанию dig использует локальную конфигурацию, чтобы решить, какой сервер имен запрашивать. Используйте следующую команду, чтобы указать сервер домена Google:
Терминал выводит следующий вывод:
Примечание. Здесь можно указать другие серверы имен доменов, например сервер вашей компании, предоставляющей хостинг, или DNS-сервер интернет-провайдера.
ЛЮБОЙ вариант
Чтобы вернуть все результаты запроса, используйте следующее:
Примечание. Любой другой тип записи можно заменить на ЛЮБУЮ опцию. Сюда входят тип MX (обмен почтой), тип A (адрес), тип SIG (подпись) и т. д. Существует множество различных типов записей DNS. Если вы не уверены, оставьте поле типа пустым.
Краткий ответ
Чтобы отобразить только IP-адрес, связанный с доменным именем, введите следующее:
На выходе отображается содержимое, как на изображении ниже:
Подробный вариант ответа
Запустите +noall +answer с командой dig, чтобы получить доступ к подробной информации в разделе ответы:
В приведенном ниже примере показан ожидаемый результат.
Вариант трассировки
Опция +trace перечисляет каждый отдельный сервер, через который проходит запрос, до конечного пункта назначения. Используйте этот параметр команды, чтобы определить IP-адрес, с которого теряется трафик.
Вывод должен быть похож на показанный ниже:
Обратный поиск DNS
Чтобы найти доменное имя по его IP-адресу, введите следующее:
На выходе отображается содержимое, как на изображении ниже:
Параметр -x позволяет указать IP-адрес вместо имени домена. Это можно комбинировать с другими вариантами:
В приведенном ниже примере показан ожидаемый результат.
Примечание. Чтобы узнать больше о том, как преобразовать IP-адрес обратно в доменное имя (в отличие от прямого DNS-запроса), ознакомьтесь с нашей статьей об обратном поиске в DNS (rDNS).
Пакетный режим для чтения имен хостов из файла
Чтобы найти несколько записей, начните с создания файла для хранения доменных имен:
См. пример на изображении ниже:
Добавьте несколько интересных веб-сайтов, как показано на изображении ниже:
Сохраните файл и выйдите. Теперь укажите файл с помощью параметра -f в команде dig:
См. пример вывода команды ниже:
Примечание. Параметр +short позволяет управлять результатами. Вместо этого можно использовать любой другой вариант.
Постоянная настройка параметров по умолчанию
Информацию, отображаемую программой dig, можно изменить в файле ~/.digrc. Откройте файл для редактирования с помощью следующей команды:
Добавьте следующие строки:
См. пример на изображении ниже:
Запишите файл (ctrl – o) и выйдите (ctrl – x).
Запустите команду dig еще раз:
Вы должны видеть только команду ответов, как если бы вы вручную добавили +noall и +answer .
Примечание. Если вам нужна программа dig в Windows, обратитесь к нашей статье Как установить Dig в Windows.
Теперь вы должны быть знакомы с командой dig в Linux. Эта команда может помочь вам найти дополнительную информацию о серверах доменных имен.
Далее мы рекомендуем узнать больше о передовых методах DNS для обеспечения безопасности и производительности, а также о том, как очистить DNS, чтобы удалить всю сохраненную информацию о поиске DNS.
Dig (Domain Information Groper) — это утилита командной строки Linux, которая выполняет поиск DNS, запрашивая серверы имен и отображая вам результат. В этом руководстве вы найдете все основные способы использования команды, которые вам следует знать в операционной системе Linux.
По умолчанию dig отправляет запрос DNS на серверы имен, перечисленные в распознавателе (/etc/resolv.conf), если только не запрашивается конкретный сервер имен.
Установите Dig в Linux
Dig — это часть служебного пакета DNS, который часто устанавливается вместе с серверами имен BIND. Вы также можете установить пакет утилит, содержащий dig, отдельно, зайдя на свой VPS через SSH и выполнив следующие команды в командной строке:
Debian и Ubuntu:
После установки проверьте версию, чтобы убедиться, что установка прошла успешно:
Синтаксис копания
В простейшей форме синтаксис утилиты dig будет выглядеть следующим образом:
[сервер] — IP-адрес или имя хоста сервера имен для запроса.
Если аргументом сервера является имя хоста, программа dig разрешит имя хоста, прежде чем продолжить запрос к серверу имен.
Это необязательно, и если вы не укажете аргумент сервера, dig будет использовать сервер имен, указанный в /etc/resolv.conf.
[name] — имя записи ресурса, которую необходимо найти.
[type] — тип запроса, запрашиваемого dig. Например, это может быть запись A, запись MX, запись SOA или любые другие типы.По умолчанию dig выполняет поиск записи A, если аргумент типа не указан.
Как использовать команду копать
Давайте рассмотрим основные способы использования команды:
Раскопать доменное имя
Чтобы выполнить поиск доменного имени в DNS, просто передайте имя вместе с командой dig:
По умолчанию команда dig отображает запись A, если не указаны другие параметры. Вывод также будет содержать другую информацию, такую как установленная версия dig, технические подробности об ответах, статистика запроса, раздел вопросов и некоторые другие.
Короткие ответы
Приведенная выше команда dig содержит много полезной информации в разных разделах, но могут быть случаи, когда вам нужен только результат запроса. Вы можете сделать это, используя опцию +short, которая будет отображать только IP-адрес (запись A) доменного имени:
Подробные ответы
Иногда вам нужно подробно просмотреть раздел ответов. Таким образом, для получения подробной информации о разделе ответов вы можете остановить отображение всего раздела с помощью параметра +noall и запросить раздел ответов только с помощью параметра +answer с командой dig.
Указание серверов имен
По умолчанию команды dig запрашивают серверы имен, перечисленные в /etc/resolv.conf, чтобы выполнить поиск DNS для вас. Вы можете изменить это поведение по умолчанию, используя символ @, за которым следует имя хоста или IP-адрес сервера имен.
Следующая команда dig отправляет DNS-запрос на сервер имен Google (8.8.8.8) с помощью параметра @8.8.8.8.
Запросить все типы записей DNS
Чтобы запросить все доступные типы записей DNS, связанные с доменом, используйте параметр ЛЮБОЙ. Параметр ЛЮБОЙ будет включать в вывод все доступные типы записей:
Поиск типа записи
Если вы хотите найти определенную запись, просто добавьте тип в конец команды.
Например, чтобы запрос получить только раздел ответа почтового обмена — MX — связанный с доменом, вы можете использовать следующую команду dig:
Аналогичным образом, чтобы просмотреть другие записи, связанные с доменом, укажите тип записи в конце команды dig:
Отследить путь DNS
Dig позволяет отслеживать путь поиска DNS с помощью параметра +trace. Опция выполняет итерационные запросы для разрешения поиска имени. Он будет запрашивать серверы имен, начиная с корня, а затем проходит вниз по дереву пространства имен, используя итерационные запросы, следующие по пути:
Обратный поиск в DNS
Помните, что если запись PTR не определена для IP-адреса, то невозможно выполнить обратный поиск DNS, поскольку запись PTR указывает на домен или имя хоста.
Пакетные запросы
С помощью утилиты dig вы можете выполнять поиск в DNS для списка доменов вместо того, чтобы делать то же самое для каждого из них по отдельности. Для этого вам нужно предоставить dig список доменных имен — по одному на строку в файле. Когда файл будет готов, укажите его имя с опцией -f:
Управление поведением копания
Вывод команды можно настроить на постоянной основе, настроив параметры в файле ~/.digrc, которые будут запускаться автоматически вместе с командой.
Предположим, вы хотите просмотреть только раздел ответов — укажите необходимые параметры в файле ~/.digrc, чтобы вам не пришлось вводить их при выполнении запроса.
Теперь выполните поиск домена на DNS-сервере. Вывод подтверждает, что dig выполняется с параметрами, установленными в файле ~/.digrc.
Заключение
Это все основные сведения, необходимые для начала работы с dig в Linux. Теперь вы можете выполнять поиск доменов в DNS, используя различные параметры. Хотите узнать больше? Просмотрите страницу руководства с помощью команды man dig, чтобы узнать обо всех возможных вариантах использования и параметрах.
Освойте другие команды Linux
Эдвард – редактор контента с многолетним опытом работы в сфере ИТ в качестве писателя, маркетолога и энтузиаста Linux. Цель Эдварда — побудить читателей создать впечатляющее присутствие в Интернете. Еще он очень любит собак, гитары и все, что связано с космосом.
Читайте также: