#Как устроена проверка
Когда вы открываете сайт, система спрашивает рекурсивный DNS-сервер (провайдера, роутера, 1.1.1.1 и т. д.), тот обращается к корневым и авторитетным серверам. Диагностика заключается в том, чтобы отправить запрос напрямую на нужный сервер и сравнить ответы. Если авторитетный сервер отвечает правильно, а ваш резолвер — нет, проблема в резолвере или кэше; если ошибка и у авторитетного — запись неверна или не опубликована.
#nslookup в Windows
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| NOERROR и пустой ответДомен существует, но записи нужного типа нет. | Запрос AAAA для домена без IPv6. | Это нормально; проверьте другой тип записи. |
| NXDOMAINИмя не существует. | Опечатка, домен не делегирован или запись не создана. | Проверьте написание и настройки NS у регистратора. |
| SERVFAILСервер не смог получить ответ. | Неверные NS, ошибка DNSSEC, недоступный авторитетный сервер. | Выполните dig +trace и проверьте DNSSEC: dig +dnssec. |
| REFUSEDСервер отказывает в запросе. | Запрос к закрытому резолверу или зоне, которую он не обслуживает. | Используйте другой DNS-сервер. |
| ТаймаутНет ответа. | Блокировка UDP/53 или недоступный сервер. | Проверьте Test-NetConnection 1.1.1.1 -Port 53, файрвол и VPN. |
| Разные ответы у разных серверовНе распространились изменения или кэш. | После смены записи часть пользователей видит старое. | Подождите окончания TTL; проверьте на DNS Checker. |
#Проверка DNS для начинающих
В Windows нажмите Win+R, введите cmd и нажмите Enter: выполните nslookup example.com для поиска A/AAAA-записей, заменяя example.com своим доменом. В Linux/macOS откройте «Терминал» и используйте dig example.com A +noall +answer (если утилита установлена). Для альтернативного сервера укажите nslookup example.com 1.1.1.1 или dig @1.1.1.1 example.com A. Сравнивайте имя, тип записи и выдавший ответ сервер. Команды ниже — независимые примеры, их не нужно выполнять все подряд; значения example.com и примерные IP заменяются реальными для вашей задачи. Секретные значения DNS/TXT не публикуйте.
- Выберите способ в командной строке или терминалеЕсли предыдущие действия не помогли, прочитайте назначение каждого варианта ниже. Не выполняйте их все подряд: выбирайте только соответствующий вашей ситуации.
- Уточните домен и получите первый ответВместо
example.comукажите проблемный домен безhttps://и пути, напримерsite.ru. В Windows введитеnslookup site.ru, в Linux/macOS —dig site.ru A +noall +answer. Нажмите Enter. Посмотрите, вернулся ли IP-адрес или показаныNXDOMAIN,SERVFAIL,timed out. Если ответ пустой, проверьте имя и тип записи: у некоторых доменов нет A-записи, но есть AAAA. - Сравните ответы разных DNS-серверовВ Windows отдельно выполните
nslookup site.ru 1.1.1.1иnslookup site.ru 8.8.8.8. В Linux/macOS —dig @1.1.1.1 site.ru A +noall +answerи повторите с@8.8.8.8. Не объединяйте эти команды как изменение настроек компьютера: они лишь отправляют диагностические запросы. Если ответы различаются, запишите сервер, время и TTL; это может быть кеширование или разная конфигурация, а не обязательно неисправность. - Проверьте нужный тип записи и авторитетный серверДля почты запросите MX, для делегирования — NS, для адреса — A или AAAA. Например в Windows выполните
nslookup -type=MX site.ru, в Linux/macOS —dig site.ru MX +noall +answer. Если вы управляете доменом, сравните результаты с настройками у DNS-провайдера и с ответом авторитетного сервера. Не меняйте DNS-записи наугад: запишите старые значения и выясните, где размещается зона. - Зафиксируйте результат и выберите следующую проверкуЕсли
NXDOMAINприходит со всех серверов, проверьте правильность домена и опубликованное делегирование. ЕслиSERVFAILпоявляется только у одного сервера, проверьте его состояние и возможные проблемы DNSSEC. Если ответы нормальные, а сайт не открывается, следующая проверка — HTTPS, прокси, файл hosts и доступность самого сервера; диагностика DNS не устраняет ошибки веб-приложения. Сохраните сообщения и адреса серверов для обращения к администратору.
#dig в Linux и macOS
dig +short example.com Adig @1.1.1.1 example.com Adig +short NS example.comdig @ns1.example.com example.com A +norecursedig +trace example.comdig -x 93.184.216.34 +shortУстановить dig: sudo apt install dnsutils (Debian/Ubuntu), sudo dnf install bind-utils (Fedora, RHEL), на macOS утилита уже есть.
#Как читать ответ
#Кэш и распространение изменений
После смены записи старые значения живут в кэше до окончания TTL (число секунд в ответе). Сбросить локальный кэш можно командами: Windows — ipconfig /flushdns (посмотреть кэш: ipconfig /displaydns), macOS — sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder, Linux с systemd-resolved — sudo resolvectl flush-caches. Кэш провайдера сбросить нельзя: используйте другой резолвер или ждите.