Команда dig в 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
Типичный вывод содержит следующие части:
-
Секция HEADER: Отображает основную информацию о запросе
opcode: Код операцииstatus: Статус ответаid: ID запросаflags: Флаги (например, qr, rd, ra и т. д.)
-
Раздел QUESTION: Отображает вопрос запроса
- Содержит запрашиваемое доменное имя и тип записи
-
Раздел ANSWER: Результат запроса
- Содержит фактическую информацию о DNS-записи
-
Раздел AUTHORITY: Информация об авторитетных серверах имён
- Отображает авторитетные DNS-серверы, отвечающие за домен
-
Раздел ADDITIONAL: Дополнительная информация
- Может содержать дополнительную полезную информацию
-
Раздел 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-записей:
Пример
diff current.txt previous.txt
4. Проверка времени отклика DNS-сервера
Сравните скорость отклика разных DNS-серверов:
Пример
time dig @1.1.1.1 example.com
Итог
Команда dig — важный инструмент диагностики DNS для системных администраторов Linux и сетевых инженеров. Прочитав эту статью, вы сможете:
- Понять базовый синтаксис и распространённые параметры команды dig
- Запрашивать различные типы DNS-записей
- Разбирать вывод команды dig
- Использовать dig для решения практических задач, связанных с DNS
- Освоить продвинутые приёмы и методы работы с dig
Чтобы узнать больше о команде dig, можно просмотреть её страницу руководства:
man dig
Или воспользуйтесь опцией help:
dig -h
Другие расширения
Энциклопедия команд Linux