- 10 примеров использования команды dig для просмотра параметров DNS (DNS Lookup) в Linux
- Команда Dig в Linux (поиск DNS)
- Установка dig
- Установите dig на Ubuntu и Debian
- Установите dig на CentOS и Fedora
- Установить dig на Arch Linux
- Понимание dig вывода
- Печать только ответа
- 1. Получите короткий ответ
- 2. Получите подробный ответ
- Сервер имен для конкретного запроса
- Запрос типа записи
- 1. Запрос записей A
- 2. Запрос записей CNAME
- 3. Запрос записей TXT
- 4. Запрос записей MX.
- 5. Запрос NS-записей
- 6. Запрос всех записей
- Обратный поиск в DNS
- Массовые запросы
- Файл .digrc
- Выводы
- Настройка DNS в Linux
- Настраиваем DNS в Linux
- Способ 1: Меню графической оболочки
- Способ 2: Редактирование конфигурационных файлов
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
Давайте рассмотрим разделы данного вывода подробней:
— HEADER (заголовок): показывает версию dig, глобальные опции используемые с командой и другую дополнительную информацию
— QUESTION SECTION (секция запроса): Показывает наш запрос, то бишь мы запросили показать A-запись (команда dig без параметров) для домена ya.ru
— ANSWER SECTION (секция ответа): Показывает ответ полученный от DNS, в нашем случае показывает A-запись для ya.ru
Последняя секция это статистика по запросу (служебная информация) — время выполнения запроса, имя DNS-сервера который запрашивался, когда был создан запрос и размер сообщения
Так же можно выполнить опрос конкретного DNS-сервера:
Результат вывода дополняется еще двумя секциями:
AUTHORITY SECTION: Показывает имена DNS-серверов обработавших наш запрос
ADDITIONAL SECTION: Показывает ip-адреса этих DNS-серверов (из секции AUTHORITY SECTION)
2. Вывод только секции ANSWER SECTION
В большинстве случаев требуется только ip адрес домена, то бишь вывод секции «ANSWER SECTION»
Для этого существуют следующие ключи:
-+nocomments — отключает линию комментариев
-+noauthority — отключает секцию «AUTHORITY SECTION»
-+noadditional – отключает секцию «ADDITIONAL SECTION»
-+nostats – отключает секцию статистики
-+noanswer – выключает секцию ответа (ANSWER SECTION)
Можно сделать проще, существует ключ +noall, который выключает все секции. Таким образом мы используем ключ +noall и добавляем ключ +answer, уменьшая длину команды
3. Запрос MX-записи
Для запроса MX-записи домена мы используем одноименный аргумент командной строки (MX)
Этот же запрос можно выполнить с ключом -t (тип)
4. Запрос NS-записи
По аналогии с предыдущим пунктом, используем аргумент NS
Вы также можете использовать ключ -t для указания типа запроса
5. Просмотр всех типов DNS-записей
Для этого используется ключ ANY
Также допустим ключ -t
6. Краткий вывод команды dig
Допустим чтобы просмотреть только ip-адрес, без лишней информации, используем опцию +short
Вы также можете вывести информацию по любому виду информации с ключем +short
Пример:
7. Просмотр информации об обратной зоне домена (PTR)
Для просмотра обратной зоны необходимо использовать ключ -х
Для примера, мы хотим узнать имя домена по айпи-адресу 77.88.21.3
Для вывода полной информации убираем ключ +short
8. Использование конкретного DNS-сервера для выполнения запроса
Для использования конкретного DNS-сервераиспользуется запись вида — @dnsserver, где dnsserver это или имя или ip-адрес DNS-сервера
Данный пример мы рассмотрели в п.1
9. Объемный запрос (запрос информации сразу о нескольких доменах)
Для запроса информации о нескольких доменах возможно использование текстовых файлов с перечислением доменов.
Создадим файл names.txt с именами доменов:
Далее используем ключ -f для чтения из файла:
Также можно комбинировать тип DNS записи c опцией -f:
Также возможно перечисление доменов непосредственно в командной строке. Для примера узнаем MX-запись для домена ya.ru и NS-запись для домена google.ru:
10. Изменение параметров по умолчанию для команды dig
Например вы хотите, чтобы утилита dig по умолчанию выводила только секцию ответа (ANSWER SECTION).
Для этого необходимо внести в файл .digrc необходимые ключи, в нашем случае +noall +answer:
Таким образом мы рассмотрели мизерную часть этой замечательной утилиты, для тех, кто хочет большего, добро пожаловать в man dig 😉
Источник
Команда Dig в Linux (поиск DNS)
Dig (Domain Information Groper) — это мощный инструмент командной строки для запроса серверов имен DNS.
Команда dig позволяет запрашивать информацию о различных записях DNS, включая адреса хостов, почтовые обмены и серверы имен. Это наиболее часто используемый системными администраторами инструмент для устранения проблем с DNS из-за его гибкости и простоты использования.
В этом руководстве объясняется, как использовать утилиту dig на практических примерах и подробных объяснениях наиболее распространенных вариантов dig .
Установка dig
Чтобы проверить, доступна ли команда dig в вашей системе, введите:
Результат должен выглядеть примерно так:
Если dig отсутствует в вашей системе, приведенная выше команда напечатает «dig: команда не найдена». Инструмент dig можно установить с помощью диспетчера пакетов дистрибутива.
Установите dig на Ubuntu и Debian
Установите dig на CentOS и Fedora
Установить dig на Arch Linux
Понимание dig вывода
В простейшей форме, когда используется для запроса одного хоста (домена) без каких-либо дополнительных параметров, команда dig довольно многословна.
В следующем примере мы работаем в домене linux.org :
Результат должен выглядеть примерно так:
Давайте разберемся по разделам и объясним вывод команды dig :
В первой строке вывода выводится установленная версия dig и запрашиваемое доменное имя. Вторая строка показывает глобальные параметры (по умолчанию только cmd).
Если вы не хотите, чтобы эти строки включались в вывод, используйте параметр +nocmd . Эта опция должна быть самой первой после команды dig .
В следующем разделе приведены технические сведения об ответе, полученном от запрашиваемого центра (DNS-сервера). В заголовке отображается код операции (действие, выполняемое командой dig ) и статус действия. В этом примере статус NOERROR , что означает, что запрошенный орган обслужил запрос без каких-либо проблем.
Этот раздел можно удалить с помощью параметра +nocomments , который также отключает заголовки некоторых других разделов.
Псевдо-раздел «OPT» отображается только в более новых версиях утилиты dig . Вы можете узнать больше о механизмах расширения для DNS (EDNS)здесь .
Чтобы исключить этот раздел из вывода, используйте параметр +noedns .
В разделе «ВОПРОС» dig показывает запрос (вопрос). По умолчанию dig запрашивает запись A.
Вы можете отключить этот раздел, используя опцию +noquestion .
Раздел «ОТВЕТ» дает нам ответ на наш вопрос. Как мы уже упоминали, по умолчанию dig запрашивает запись A. Здесь мы видим, что домен linux.org указывает на IP-адрес 104.18.59.123 .
Обычно вы не хотите отключать ответ, но вы можете удалить этот раздел из вывода, используя параметр +noanswer .
Раздел «АВТОРИТЕТ» сообщает нам, какие серверы являются полномочными для ответа на запросы DNS о запрошенном домене.
Вы можете отключить этот раздел вывода, используя параметр +noauthority .
Раздел «ДОПОЛНИТЕЛЬНО» предоставляет нам информацию об IP-адресах авторитетных DNS-серверов, указанных в разделе полномочий.
Параметр +noadditional отключает дополнительный раздел ответа.
Последний раздел вывода dig включает статистику запроса.
Вы можете отключить эту часть с +nostats опции +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
Чтобы получить список всех адресов для доменного имени, используйте параметр a :
Как вы уже знаете, если тип записи DNS не указан, dig запросит запись A. Вы также можете запросить запись A, не указывая параметр a .
2. Запрос записей CNAME
Чтобы найти псевдоним домена, используйте опцию cname :
3. Запрос записей TXT
Используйте параметр txt чтобы получить все записи TXT для определенного домена:
4. Запрос записей MX.
Чтобы получить список всех почтовых серверов для определенного домена, используйте параметр mx :
5. Запрос NS-записей
Чтобы найти авторитетные серверы имен для нашего конкретного домена, используйте параметр ns :
6. Запрос всех записей
Используйте параметр any чтобы получить список всех записей DNS для определенного домена:
Обратный поиск в DNS
Чтобы запросить имя хоста, связанное с определенным IP-адресом, используйте параметр -x .
Например, чтобы выполнить обратный поиск по 208.118.235.148 , введите:
Как видно из выходных данных ниже, IP-адрес 208.118.235.148 связан с именем хоста wildebeest.gnu.org .
Массовые запросы
Если вы хотите запросить большое количество доменов, вы можете добавить их в файл (по одному домену в строке) и использовать параметр -f за которым следует имя файла.
В следующем примере мы запрашиваем домены, перечисленные в файле domains.txt .
Файл .digrc
Поведение команды dig можно контролировать, задав для каждого пользователя параметры в файле $
Если файл .digrc присутствует в домашнем каталоге пользователя, указанные в нем параметры применяются перед аргументами командной строки.
Например, если вы хотите отобразить только раздел ответов, откройте текстовый редактор и создайте следующий файл
Выводы
dig — это инструмент командной строки для запроса информации DNS и устранения проблем, связанных с DNS.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Источник
Настройка DNS в Linux
Каждый сайт, устройство или определенное расположение имеет собственный IP-адрес, определяющийся оборудованием при обращении к сетям и взаимодействии с ними. Пользователи, которые сталкиваются с необходимостью, например, перехода по сайтам или подключения к другому сетевому компьютеру, тоже должны вводить соответствующий адрес для успешного обмена информацией. Однако запомнить случайный набор цифр довольно сложно. Именно поэтому и была придумана система доменных имен DNS (Domain Name System). Теперь компьютер самостоятельно обращается к серверу для определения IP-адреса при указании доменного имени во время перехода к ресурсу. Такие сервера указываются автоматически или вручную, что зависит от типа конфигурации. Именно об этом процессе мы и хотим поговорить в рамках сегодняшнего материала, взяв за пример известный дистрибутив операционной системы Linux.
Настраиваем DNS в Linux
Практически все дистрибутивы Linux функционируют по похожему принципу. Отличаются лишь некоторые консольные команды и оформление графической оболочки. В качестве примера мы рассмотрим Ubuntu, а вы, отталкиваясь от особенностей своей сборки, тоже сможете без проблем выполнить поставленную задачу. Если трудности возникнут на уровне использования определенных команд или при поиске пунктов меню графической среды, воспользуйтесь официальной документацией дистрибутива, чтобы узнать, какая альтернативная команда или опция отвечает за осуществление нужного действия.
Способ 1: Меню графической оболочки
Этот способ в первую очередь нацелен на начинающих пользователей, поскольку чаще всего в Linux их пугает необходимость выполнять каждое действие, вводя команды в консоль. Уже давно практически во всех окружениях присутствуют соответствующие пункты, позволяющие реализовывать различные конфигурации без единого обращения к «Терминалу». К DNS это тоже относится. Давайте посмотрим, как производится данное редактирование в стандартной графической оболочке Ubuntu.
- Обратите внимание на верхнюю панель, где присутствует кнопка сети и выключения компьютера. Нажмите по одной из них, чтобы просмотреть список подключений.
Здесь вас интересует кнопка под названием «Параметры соединения».
В открывшемся меню отыщите текущее соединение и нажмите по значку в виде шестеренки, чтобы перейти к конфигурации.
В строке «Метод» вы можете указать оптимальный для вас способ получения DNS. По умолчанию используется автоматический тип через DHCP. Однако ничего не мешает вам просто отметить маркером один из остальных присутствующих пунктов.
Вы можете самостоятельно прописать серверы DNS, к которым следует обращаться вашему маршрутизатору. Для этого в строке «DNS» через запятую укажите IP-адреса. На скриншоте ниже вы видите серверы от Google, и выглядят они так: 8.8.8.8 и 8.8.4.4 .
По завершении конфигурации убедитесь в том, что все выставлено правильно, и только потом кликните на «Применить».
По окончании конфигурации откройте главное меню и запустите «Терминал» для проверки.
Введите nslookup , а затем укажите необходимый адрес для проверки, например, google.com .
После нажатия на Enter подождите несколько секунд и ознакомьтесь с полученной информацией. Вы будете уведомлены о том, какой именно DNS-сервер использовался при пропинговке адреса.
Как видите, этот метод максимально прост и позволяет обойтись без редактирования конфигурационных файлов через консоль. Однако некоторые пользователи не имеют возможности задействовать графический интерфейс или же настройка постоянно сбивается. В таком случае придется обращаться к «Терминалу», чему и будет посвящен наш следующий метод.
Способ 2: Редактирование конфигурационных файлов
Использование «Терминала» для редактирования конфигурационных файлов при изменении системных параметров — самый эффективный способ, поскольку все действия здесь будут осуществляться от имени суперпользователя, а также не сбросятся при первом же перезапуске системы. Для конфигурации DNS используйте следующую инструкцию.
- Запустите консоль так, как это было показано ранее, или используйте любой удобный способ, например, созданный значок на панели «Избранное».
Для начала просмотрите список существующих сетевых интерфейсов, чтобы проверить файл для конфигурации. Введите ls /sys/class/net/ и нажмите на Enter.
Проверьте, присутствует ли здесь ваше название интерфейса. По умолчанию оно выглядит так: enp0s3. В случае отсутствия подобной строки придется добавить ее самостоятельно, чему и будут посвящены следующие шаги. Пропустите их, если имя присутствует.
Далее дело будет касаться взаимодействия с конфигурационными текстовыми файлами. Для этого вы можете использовать любой редактор, установленный по умолчанию, например, vi. Однако начинающим юзерам не всегда удобно управлять подобным софтом. В таких ситуациях мы советуем установить более подходящее решение. Пропишите sudo apt install nano и нажмите на Enter.
Подтвердите свои намерения добавить софт, а после успешной инсталляции переходите к работе с файлами. Введите команду sudo nano /etc/network/interfaces и затем подтвердите ее.
Вставьте строки auto enp0s3 и iface enp0s3 inet dhcp , чтобы задать конфигурацию интерфейса.
Используйте комбинацию Ctrl + O для сохранения настроек. В будущем запомните, что знак ^ обозначает Ctrl, то есть, например, выход из редактора осуществляется через Ctrl + X.
При сохранении не изменяйте имя файла для записи, а просто нажимайте на Enter.
Следом в этом же файле введите dns-nameserver 8.8.8.8 для установки DNS от Google, и уже после этого можете закрыть данный объект.
Далее понадобится настроить другой элемент, перейдите к нему через sudo nano /etc/dhcp/dhclient.conf .
При запросе пароля суперпользователя введите его. Учтите, что символы при таком методе набора не отображаются в целях безопасности.
Опуститесь в самый низ по содержимому и вставьте строку supersede domain-name-servers 8.8.8.8 . Затем сохраните изменения и закройте файл.
Осталось отредактировать последние параметры в sudo nano /etc/resolvconf/resolv.conf.d/base .
Вставьте строку nameserver 8.8.8.8 , определяющую DNS. Перед выходом не забудьте применить изменения в этом же файле.
Все изменения DNS вступят в силу сразу же после перезагрузки сети. Осуществляется это командой sudo systemctl restart networking .
Появившаяся пустая строка для ввода означает, что перезапуск прошел успешно.
Конечно, использовать второй способ гораздо сложнее первого, однако это единственная альтернатива, которая оказывается эффективной в тех случаях, когда изменения DNS через графическую оболочку не приносят никаких результатов из-за постоянного сброса настроек. Вам достаточно просто следовать инструкциям, точно выполняя их для правильной конфигурации, и вы справитесь с редактированием параметров получения доменных имен.
Помимо этой статьи, на сайте еще 12315 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Источник