Команда dig в Linux используется для сбора информации о DNS. Она расшифровывается как Domain Information Groper и собирает данные о серверах доменных имен. Команда dig полезна для устранения проблем с DNS, но также используется для отображения информации DNS.
Это руководство поможет вам понять и использовать команду Linux dig.
Установка dig в Linux (необязательно)
В большинстве современных систем Linux присутствует команда dig.
Убедитесь, что она установлена, проверив версию программного обеспечения. Для этого откройте командную строку и введите следующее:
1 | dig -v |
Система должна ответить цифровым кодом. Если система не может найти указанную команду, установите dig, введя следующее:
Debian / Ubuntu:
1 | sudo apt-get install dnsutils |
CentOS / RedHat:
1 | sudo yum install bind-utils |
После завершения установки проверьте ее с помощью следующей команды:
1 | dig -v |
Синтаксис команды dig
Команда dig используется следующим образом:
1 | dig [server] [name] [type] |
Где:
- [server] - Имя хоста или IP-адрес, на который направляется запрос
- [name] - DNS (сервер доменных имен) сервера для запроса
- [тип] - тип DNS-записи, которую необходимо получить. По умолчанию (или если оставить это значение пустым) dig использует тип записи A.
Распространенные типы записей DNS:
- A - адресная запись, которая напрямую сопоставляет имя хоста с IP-адресом
- MX - Mail Exchange, которая сопоставляет агентов передачи сообщений для домена
- SIG - запись подписи, которая используется в протоколах шифрования
Команда dig разрешает имя хоста, прежде чем приступить к запросу сервера имен.
Как использовать команду dig с примерами
Давайте рассмотрим основные способы использования команды dig.
Просмотр DNS
Команда dig позволяет выполнить поиск доменного имени. Чтобы выполнить поиск DNS, откройте терминал и введите:
1 | dig google.com |
Вы должны увидеть нечто похожее на следующее:
Наиболее важным разделом является раздел ANSWER:
- В первом столбце указано имя сервера, который был запрошен.
- Второй столбец - время жизни (Time to Live), установленный промежуток времени, по истечении которого запись обновляется.
- В третьем столбце указан класс запроса - в данном случае «IN» означает Internet
- В четвертом столбце отображается тип запроса - в данном случае «A» означает запись A (адрес).
- В последнем столбце отображается IP-адрес, связанный с доменным именем
Укажите DNS-сервер
По умолчанию dig использует локальную конфигурацию, чтобы решить, какой сервер имен запрашивать. Используйте следующую команду, чтобы указать сервер домена Google:
1 | dig @1.1.1.1 google.com. |
Терминал выведет следующее сообщение:
Здесь можно указать другие серверы доменных имен, например DNS-сервер вашей компании, предоставляющей услуги хостинга сервера, или DNS-сервер интернет-провайдера.
Опция ANY
Чтобы вернуть все результаты запроса, воспользуйтесь следующей командой:
dig google.com ANY
Система выведет список всех найденных DNS-записей google.com вместе с IP-адресами.
Вместо параметра ANY можно использовать любой другой тип записи. Сюда входят записи типа MX (почтовый обмен), A (адрес), SIG (подпись) и т. д. Существует множество различных типов записей DNS. Если вы не уверены, оставьте опцию типа пустой.
Некоторые владельцы ресурсов могут блокировать запрос ANY для доменов, в целях безопасности.
Опция короткого ответа
Чтобы отобразить только IP-адрес, связанный с доменным именем, введите следующее:
1 | dig google.com +short |
В результате отобразится содержимое, как на рисунке ниже:
Опция подробного ответа
Выполните команду +noall +answer с помощью команды dig, чтобы получить доступ к подробной информации в разделе ответов:
1 | dig google.com +noall +answer |
В примере ниже показан ожидаемый результат.
Опция трассировки
Опция +trace перечисляет все серверы, через которые проходит запрос до конечного пункта назначения. Используйте этот параметр команды, чтобы определить IP-адрес, на котором падает трафик.
1 | dig google.com +trace |
Результат должен быть похож на приведенный ниже:
Обратный поиск DNS
Чтобы найти доменное имя по его IP-адресу, введите следующее:
1 | dig -x 216.58.211.238 |
На выходе вы увидите содержимое, как на рисунке ниже:
Параметр -x позволяет указать IP-адрес вместо доменного имени. Ее можно комбинировать с другими параметрами:
1 | dig +noall +answer -x 216.58.211.238 |
В примере ниже показан ожидаемый результат.
Пакетный режим чтения имен хостов из файла
Чтобы найти несколько записей, начните с создания файла для хранения доменных имен:
1 | sudo nano domain_research.txt |
Добавьте несколько интересующих вас сайтов, как показано на изображении ниже:
Сохраните файл и выйдите. Теперь укажите файл с помощью опции -f в команде dig:
1 | dig -f domain_research.txt +short |
Пример вывода команды приведен ниже:
Опция +short позволяет сделать результаты управляемыми. Вместо нее можно использовать любую другую опцию.
Постоянная настройка параметров по умолчанию
Информация, отображаемая dig, может быть изменена в файле ~/.digrc. Откройте этот файл для редактирования с помощью следующей команды:
1 | sudo nano ~/.digrc |
Добавьте следующие строки:
1 2 | +noall +answer |
Запишите файл (ctrl-o) и выйдите (ctrl-x).
Снова запустите команду dig:
1 | dig google.com |
Вы должны увидеть только команду answers, как если бы вы вручную добавили +noall и +answer.
Заключение
Теперь вы должны быть знакомы с командой dig в Linux. Эта команда поможет вам найти больше информации о серверах доменных имен.
Альтернативы
nslookup днс_для_поиска [днс_сервер]
host днс_для_поиска [днс_сервер]