Команда dig в Linux

Linux 命令大全Энциклопедия команд Linux


dig (Domain Information Groper) — мощный инструмент DNS-запросов в системе Linux, используемый для запросов к серверам доменных имён DNS. По сравнению с традиционным nslookup, dig предоставляет более подробные результаты запросов и более гибкие параметры запросов.

Основные возможности команды dig:

  • Отображает полный процесс DNS-запроса
  • Поддерживает запросы всех типов DNS-записей
  • Позволяет указать конкретный DNS-сервер для запроса
  • Формат вывода понятен и удобен для чтения

Базовый синтаксис команды dig

dig [@server] [domain] [query-type] [query-class] [query-options]

Описание параметра

Параметр Описание
@server Укажите DNS-сервер для запроса (например,@8.8.8.8)
domain Домен для запроса (например,example.com)
query-type Тип записи для запроса (например,A, MX, NSи т.д.)
query-class Класс запроса (обычноININ для Интернета)
query-options Дополнительные параметры запроса

Распространённые типы запросов

dig поддерживает запросы к нескольким типам DNS-записей. Ниже перечислены распространённые типы записей:

Тип записи Описание Пример
A Запись адреса IPv4 dig example.com A
AAAA Запись адреса IPv6 dig example.com AAAA
MX Запись почтового обмена dig example.com MX
NS Запись сервера имён dig example.com NS
CNAME Запись канонического имени dig www.example.com CNAME
TXT Текстовая запись dig example.com TXT
SOA Запись начала полномочий dig example.com SOA
ANY Все записи dig example.com ANY

Разбор вывода команды dig

Выполните простой запрос dig:

dig example.com

Типичный вывод содержит следующие части:

  1. Секция HEADER: Отображает основную информацию о запросе

    • opcode: Код операции
    • status: Статус ответа
    • id: ID запроса
    • flags: Флаги (например, qr, rd, ra и т. д.)
  2. Раздел QUESTION: Отображает вопрос запроса

    • Содержит запрашиваемое доменное имя и тип записи
  3. Раздел ANSWER: Результат запроса

    • Содержит фактическую информацию о DNS-записи
  4. Раздел AUTHORITY: Информация об авторитетных серверах имён

    • Отображает авторитетные DNS-серверы, отвечающие за домен
  5. Раздел ADDITIONAL: Дополнительная информация

    • Может содержать дополнительную полезную информацию
  6. Раздел STATISTICS: Статистика запроса

    • Отображает время запроса, сервер и другую информацию

Практические примеры запросов

1. Запрос к конкретному DNS-серверу

dig @8.8.8.8 example.com

Эта команда запрашивает A-запись example.com с публичного DNS-сервера Google (8.8.8.8).

2. Запрос MX-записей

dig example.com MX

Запрос информации о почтовом сервере для домена.

3. Запрос полного процесса разрешения домена

dig +trace example.com

+traceОпция +trace отображает полный процесс разрешения, начиная с корневого сервера имён.

4. Режим краткого вывода

dig +short example.com

Отображает только результаты запроса, без другой подробной информации.

5. Обратный DNS-запрос

dig -x 8.8.8.8

Запрос соответствующего доменного имени по IP-адресу.

6. Пакетный запрос нескольких доменов

dig -f domains.txt +short

Здесь domains.txt содержит список доменов для запроса, по одному в строке.


Дополнительные параметры

1. Управление форматом вывода

dig +noall +answer example.com

+noallСкрыть все разделы,+answerОтображать только раздел ANSWER.

2. Установка тайм-аута запроса

dig +time=5 example.com

Установите тайм-аут запроса равным 5 секунд.

3. Указание порта запроса

dig @dns.server.example.com -p 5353 example.com

Запросить DNS-сервер на нестандартном порту (5353).

4. Отображение информации о TTL

dig +ttlid example.com

Отобразить значение TTL (Time To Live) для записи.

5. Отображение статистики запросов

dig +stats example.com

Отображать подробную статистику запросов.


Часто задаваемые вопросы

1. В чем разница между dig и nslookup?

dig предоставляет более подробный вывод и больше параметров запроса, чем nslookup, и является более профессиональным инструментом DNS-запросов. nslookup постепенно был вытеснен dig.

2. Как установить команду dig?

В большинстве дистрибутивов Linux dig входит в пакет bind-utils или dnsutils:

  • Debian/Ubuntu:

    sudo apt install dnsutils
  • CentOS/RHEL:

    sudo yum install bind-utils

3. Почему мой запрос dig не возвращает раздел ANSWER?

Возможные причины:

  • Запрашиваемый тип записи не существует
  • Домен не существует
  • На DNS-сервере нет записи для этого домена
  • Проблемы с сетевым подключением

Вы можете попробовать использовать+traceопцию для просмотра полного процесса разрешения.


Практические сценарии применения

1. Диагностика проблем разрешения DNS

Когда веб-сайт недоступен, можно использовать dig, чтобы проверить, нормально ли работает разрешение DNS:

dig +trace example.com

2. Проверка конфигурации почтового сервера

Проверьте, правильно ли настроен почтовый сервер домена:

dig example.com MX

3. Отслеживание изменений DNS-записей

Периодически выполняя запросы dig и сравнивая результаты, можно отслеживать изменения DNS-записей:

Пример

dig example.com A | grep -v ";" > current.txt
diff current.txt previous.txt

4. Проверка времени отклика DNS-сервера

Сравните скорость отклика разных DNS-серверов:

Пример

time dig @8.8.8.8 example.com
time dig @1.1.1.1 example.com

Итог

Команда dig — важный инструмент диагностики DNS для системных администраторов Linux и сетевых инженеров. Прочитав эту статью, вы сможете:

  1. Понять базовый синтаксис и распространённые параметры команды dig
  2. Запрашивать различные типы DNS-записей
  3. Разбирать вывод команды dig
  4. Использовать dig для решения практических задач, связанных с DNS
  5. Освоить продвинутые приёмы и методы работы с dig

Чтобы узнать больше о команде dig, можно просмотреть её страницу руководства:

man dig

Или воспользуйтесь опцией help:

dig -h

Linux 命令大全Энциклопедия команд Linux

Другие расширения