Битлента
Словарь терминов3 мин чтения·

nslookup: как проверять DNS-записи

nslookup входит в Windows, Linux и macOS и показывает, какой адрес отдаёт DNS. Режимы работы, выбор сервера и разбор типичного вывода.

Что делает утилита

nslookup задаёт вопросы DNS-серверу и показывает ответ. С её помощью узнают, какой адрес соответствует имени, какие серверы принимают почту домена, какие есть текстовые записи. В отличие от ping, утилита не проверяет сам узел: она работает только с системой имён. Поэтому это первый инструмент, когда нужно понять, кроется ли проблема в DNS или дальше по пути. Версия для Windows входит в систему, а в Linux пакет обычно нужно поставить вместе с набором утилит DNS.

Есть похожий, более подробный инструмент dig; сравнение приведено на странице utilita-dig.

Разовые запросы

Простейший вариант: nslookup example.com. Утилита выведет сервер, к которому обратилась, и найденные адреса. Строка «Non-authoritative answer» означает, что ответ получен из кэша резолвера, а не от авторитетного сервера: это нормально. Тип записи задают параметром: nslookup -type=MX example.com покажет почтовые серверы, -type=TXT текстовые записи, -type=NS серверы имён. Чтобы спросить конкретный сервер, добавьте его имя или адрес последним аргументом: nslookup example.com 1.1.1.1.

Сравнение ответа резолвера провайдера и стороннего помогает заметить подмену или устаревший кэш; о подмене на странице podmena-dns.

Вывод nslookup удобно копировать в обращение к администратору. Достаточно приложить команду, ответ и время проверки: этого хватает, чтобы воспроизвести проблему и понять, с какого именно резолвера она наблюдается.

Интерактивный режим

Если запустить nslookup без параметров, появится приглашение. Команда server меняет используемый сервер, set type=… задаёт тип записи, дальше можно вводить имена по одному. Выход по exit. Интерактивный режим удобен, когда нужно повторить проверку для нескольких имён у одного сервера. Есть параметр debug, который выводит дополнительные сведения о запросе и ответе, включая TTL.

При сравнении ответа авторитетного сервера с ответом резолвера видно, изменения ещё не дошли из-за кэша: TTL подсказывает срок, см. dns-ttl.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Как читать вывод и что означают ошибки

В первых строках указан сервер и его адрес: если это адрес вашего роутера, значит, роутер пересылает запросы дальше. Дальше Name и Address: искомое имя и результат. Несколько адресов означает несколько записей. Ошибка «Non-existent domain» (NXDOMAIN) говорит, что такого имени нет в DNS: возможно, опечатка или домен не делегирован. Сообщение «Server failed» или тайм-аут указывает на проблемы с сервером: он недоступен или возвращает сбой. «Can't find server name for address» встречается, когда для адреса DNS-сервера нет обратной записи, и на работу запросов обычно не влияет.

Ограничения: nslookup

nslookup использует собственный механизм запросов, а не общесистемный, поэтому не учитывает файл hosts и порядок разрешения имён операционной системы. Он показывает то, что скажет DNS, а не то, что получит программа. Для глубокой диагностики, включая флаги ответа и трассировку от корня, лучше подходит dig. Тем не менее для быстрой проверки записи, сравнения серверов и разбора причин «сайт не открывается по имени» nslookup хватает в большинстве случаев.

Пошаговая проверка «сайт не открывается»

Порядок такой. Выполните nslookup имя. Если ответ NXDOMAIN, проверьте написание и существование записи. Если получен адрес, сравните его с ожидаемым. Затем повторите запрос через другой резолвер: nslookup имя 8.8.8.8. Если ответы различаются, дело в кэше или подмене у первого резолвера. Если адрес верный у всех, DNS работает, и причину следует искать дальше: доступность узла проверяют командой ping и трассировкой, порт проверяют отдельно.

Отдельный случай: имя разрешается, но только часть пользователей видит сайт. Тогда полезно проверить и AAAA-запись: nslookup -type=AAAA имя. Ошибочный IPv6-адрес приводит к тому, что у части пользователей, у которых IPv6 работает, сайт не открывается, а у остальных всё в порядке. Такой пошаговый разбор обычно занимает пару минут и позволяет чётко сообщить администратору, что именно не так.

Если утилита ответила, а браузер нет, сравните результаты с ping и проверьте файл hosts. Так вы быстро отделите проблему разрешения имён от проблемы соединения с найденным адресом.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
dnsnslookupдиагностика

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

Читайте также