linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
  • Введение
  • Уроки
  • How it works
  • Симулятор
  • База знаний
  • Собеседование
Index
Categories
All entries
Footer
linuxlab-УчебникиЦеныО платформеКонфиденциальность и куки
Copyright © 2026 LinuxLab. Все права защищены.
home/linux/kb/Команды/cmd-dig

kb/commands ── Команды ── beginner

dig - DNS-разведка с подробностями

dig - DNS-разведка. Запросить любую запись у любого сервера. +short - компактно, +trace - путь от корня, +dnssec - показать подписи. Современная замена nslookup для отладки.

view as markdownaka: dig, cmd-host, cmd-nslookup

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

dig [@server] [name] [type] [+option ...]

По умолчанию - A-запись через resolver из /etc/resolv.conf:

bash
$ dig example.com
;; ANSWER SECTION:
example.com.   3600  IN  A  93.184.216.34

Часто используемые типы записей

ТипЧто
AIPv4-адрес
AAAAIPv6-адрес
CNAMEалиас на другое имя
MXmail-сервер
NSname-server для зоны
TXTпроизвольные текстовые записи (SPF, DKIM, верификации)
SOAstart of authority - параметры зоны
PTRreverse - IP в имя
CAAкакие CA могут выдавать сертификат для домена
SRVservice location (SIP, XMPP, MS AD)
DS / DNSKEYDNSSEC
bash
dig example.com AAAA       # IPv6
dig example.com MX         # почтовые серверы
dig example.com TXT        # SPF, DKIM
dig example.com NS         # авторитативные NS
dig example.com ANY        # всё что есть (ChannelBind может ругнуться)

+short - выжимка

По умолчанию вывод многословный. +short оставляет только ответ:

bash
$ dig example.com +short
93.184.216.34
$ dig example.com MX +short
10 mail.example.com.
20 backup-mail.example.com.

Удобно скриптам, неудобно отлаживать.

Указать сервер

bash
dig @8.8.8.8 example.com           # запрос к Google DNS
dig @1.1.1.1 example.com           # к Cloudflare
dig @ns1.example.com example.com   # авторитативный

Без @ - используется /etc/resolv.conf. Это критично при отладке - локальный resolver может кэшировать старый ответ.

+trace - весь путь резолва

Покажет, как resolver идёт от корня к авторитативному:

bash
$ dig example.com +trace
;; .             root NS
;; com.          .com TLD NS
;; example.com.  authoritative NS
;; example.com.  93.184.216.34

Каждый шаг - отдельный запрос без рекурсии. Полезно когда «работает у меня - не работает у них» - видно где сломалось.

Reverse DNS

bash
dig -x 93.184.216.34
;; ANSWER:
34.216.184.93.in-addr.arpa.  PTR  example.com.

PTR-запись в зоне in-addr.arpa. Часто рассинхронизирована с A (forward говорит одно, reverse - другое).

DNSSEC

bash
dig example.com +dnssec

Показывает RRSIG (подписи). +sigchase следует цепочке доверия от корня. Удобно для отладки DNSSEC-проблем (валидация падает - где?).

Полезные опции

ОпцияЧто
+shortкомпактный
+traceпуть от корня
+dnssecпоказать RRSIG
+tcpчерез [[tcp-handshake
+notcpтолько UDP
+nostatsне показывать stats в конце
+nocommentsбез комментариев ;;
+noall +answerминимально - только секция ANSWER
+time=3 +tries=1таймаут 3с, одна попытка
+norecне рекурсивный (для авторитативных)
-p 5353другой порт (mDNS)

Один вкусный pattern

Видеть только TTL и значение:

bash
dig example.com +noall +answer
example.com.    3600  IN  A  93.184.216.34

Если TTL уменьшается между запросами - resolver кэширует. Если держится 3600 - cache hit.

Параллельный запрос всех типов

bash
for t in A AAAA MX NS TXT CAA SOA; do
    echo "=== $t ==="
    dig example.com $t +short
done

Отладка проблем

connection timed out; no servers could be reached

Resolver недоступен. Проверь /etc/resolv.conf, firewall, сеть.

SERVFAIL

Авторитативный сервер вернул ошибку. Часто - проблема DNSSEC-валидации или у апстрима залип запрос. Попробуй dig @8.8.8.8 - другим resolver'ом.

NXDOMAIN

Домен не существует. Проверь typo в имени, или зона ещё не делегирована.

REFUSED

Сервер не отвечает на запрос (рекурсию не разрешает извне). Это нормально для авторитативного - запрашивай его только за свои зоны.

Альтернативы

  • host - проще, без вывода служебной информации
  • nslookup - устаревший, но в Windows и Mac знаком
  • drill (LDNS) - современная замена dig от того же NLnet, но везде установлен dig

§ команды

bash
dig example.com +short

Только A-запись, без шума

bash
dig @8.8.8.8 example.com

Спросить конкретный resolver - убедиться что проблема не локальная

bash
dig example.com +trace

Полный путь резолва от корневых NS - видно где обрывается

bash
dig -x 8.8.8.8

Reverse DNS для IP - какое имя зарегистрировано

bash
dig example.com NS +short

Кто авторитативные name-серверы для зоны

bash
dig example.com TXT +short | grep -i spf

SPF-запись - какие mail-серверы могут слать от этого домена

bash
dig +noall +answer +nostats example.com

Только секция ANSWER - удобно скриптам и dashboard'ам

§ см. также

  • dns-resolutionDNS resolutionРезолвинг имени → IP проходит через NSS: сначала `/etc/hosts`, потом DNS через `/etc/resolv.conf`. Порядок задаётся в `/etc/nsswitch.conf`.
  • bind-dns-serverBIND - авторитативный/кеширующий DNS-серверBIND (Berkeley Internet Name Domain) - самый распространённый DNS-сервер в Linux. Демон `named`, конфиг `/etc/named.conf` или `/etc/bind/named.conf`, контроль через `rndc`.
  • ipv6-basicsIPv6 - адресация и базовые концепцииIPv6 - 128-битные адреса в 8 группах по 16 бит. Link-local fe80::/10 для соседей, global для интернета. SLAAC выдаёт адрес автоматически через Router Advertisement. Neighbor Discovery (NDP) заменяет ARP.
  • portПорт - как несколько сервисов делят один IP16-битное число (0-65535), идентифицирует **процесс-получатель** на хосте. IP говорит куда (хост), порт - кому (процессу). 80 - HTTP, 443 - HTTPS, 22 - SSH.
Footer
linuxlab-
Copyright © 2026 LinuxLab. Все права защищены.
Учебники
Цены
О платформе
Конфиденциальность и куки