nslookup: проверка DNS-записей в Windows и Linux
nslookup — базовая утилита для проверки DNS-записей из командной строки. Она есть в Windows по умолчанию, доступна в Linux и помогает быстро понять, во что резолвится домен, какие у него A, AAAA, MX, TXT, NS, CNAME-записи и какой DNS-сервер отдаёт ответ.
Для разработчика и владельца сайта nslookup полезен в типичных ситуациях: сайт не открывается после смены DNS, почта не проходит проверку SPF, поддомен ведёт не туда, CDN отдаёт старый адрес, а у части пользователей возникает ERR_NAME_NOT_RESOLVED или DNS_PROBE_FINISHED_NXDOMAIN.
nslookup часто сравнивают с dig: dig удобнее для глубокой DNS-диагностики в Linux, но nslookup проще, привычнее для Windows-аудитории и достаточно информативен для большинства прикладных проверок.
Что такое nslookup и когда он нужен
nslookup расшифровывается как name server lookup — запрос к DNS-серверу. Утилита отправляет DNS-запрос и показывает, какой ответ вернул сервер: IP-адрес домена, почтовые серверы, TXT-записи, авторитетные NS-серверы и другие данные.
DNS сам по себе — распределённая система: браузер не знает IP-адрес сайта заранее, поэтому сначала обращается к резолверу, а тот ищет нужную запись. Если хочется разобрать цепочку подробнее, полезно начать со статьи «Как работает DNS». nslookup же нужен для практической проверки конкретного домена прямо сейчас.
Типичные задачи:
1) Проверить, куда указывает домен — например, убедиться, что example.com резолвится в новый IP после миграции сервера.
2) Найти ошибку в DNS-записях — неверный CNAME, отсутствующий A, сломанный MX, неправильный TXT для SPF или DKIM.
3) Сравнить ответы разных DNS-серверов — например, локального провайдера, 8.8.8.8, 1.1.1.1 и авторитетного сервера домена.
4) Проверить распространение изменений — после смены DNS-записей разные резолверы могут некоторое время отдавать разные ответы из-за кэша и TTL.
5) Диагностировать недоступность сайта — если мониторинг доступности сообщает о сбое, nslookup помогает отделить DNS-проблему от ошибок веб-сервера, TLS, CDN или приложения.
Как запустить nslookup в Windows и Linux
В Windows nslookup уже установлен. Откройте cmd, PowerShell или Windows Terminal и выполните:
nslookup example.comВ ответ вы увидите DNS-сервер, через который выполнялся запрос, и результат резолвинга домена.
В Linux утилита обычно входит в пакеты BIND. На Debian и Ubuntu её можно установить так:
sudo apt update
sudo apt install dnsutilsВ новых версиях Debian/Ubuntu пакет может называться bind9-dnsutils, но dnsutils часто остаётся переходным именем.
На RHEL, CentOS, Fedora и совместимых системах:
sudo dnf install bind-utilsили для старых систем:
sudo yum install bind-utilsПроверить, что команда установлена, можно так:
which nslookupЕсли путь к исполняемому файлу найден, утилита готова к работе — можно сразу выполнять nslookup example.com.
На практике nslookup в Windows особенно удобен для быстрой диагностики у пользователя: не нужно ставить дополнительные инструменты, достаточно попросить открыть PowerShell и выполнить одну команду. Это полезно, когда сайт открывается у администратора, но не открывается у клиента или сотрудника из другой сети.
Есть нюанс: nslookup проверяет именно DNS-ответ. Он не обязан учитывать файл hosts, браузерный DNS-over-HTTPS, внутренний кэш приложения или особенности корпоративного прокси. Поэтому результат nslookup — важный, но не единственный слой диагностики.
Базовый синтаксис и режимы работы
У nslookup есть два основных режима: разовый запрос и интерактивная сессия.
Разовый запрос выглядит так:
nslookup example.comПо умолчанию утилита обычно запрашивает адресные записи: A для IPv4 и/или AAAA для IPv6, в зависимости от системы и DNS-ответа.
Можно сразу указать тип записи:
nslookup -type=A example.com
nslookup -type=AAAA example.com
nslookup -type=MX example.com
nslookup -type=TXT example.comМожно указать DNS-сервер, к которому нужно обратиться:
nslookup example.com 8.8.8.8В интерактивном режиме сначала запускают nslookup, а затем вводят команды:
nslookup
> set type=MX
> example.com
> server 1.1.1.1
> set type=TXT
> example.com
> exitТакой режим удобен, если нужно сделать серию запросов к одному домену или быстро переключаться между DNS-серверами.
Полезные команды интерактивного режима:
1) set type=... — задаёт тип DNS-записи: A, AAAA, MX, TXT, NS, CNAME, SOA, CAA, PTR, ANY.
2) server ... — меняет DNS-сервер для следующих запросов, например server 8.8.8.8.
3) set debug — включает подробный вывод DNS-ответа. Для обычной проверки он избыточен, но помогает увидеть детали секций ответа.
4) set timeout=... — задаёт таймаут ожидания ответа.
5) set retry=... — задаёт количество повторных попыток.
Для большинства задач достаточно разовых команд. Интерактивный режим нужен, когда вы руками сравниваете несколько типов записей и серверов.
Проверка основных DNS-записей
DNS-записи отвечают за разные части работы домена: сайт, почту, подтверждение владения, безопасность, маршрутизацию поддоменов. nslookup позволяет быстро проверить каждую из них.
1) A — IPv4-адрес домена
nslookup -type=A example.comЭта запись показывает, на какой IPv4-адрес указывает домен. Если сайт перенесли на новый сервер, здесь должен появиться новый IP. Если IP старый, причина может быть в кэше резолвера, неправильной зоне DNS или незавершённой смене NS-серверов.
2) AAAA — IPv6-адрес
nslookup -type=AAAA example.comЕсли у домена есть IPv6, браузеры и клиенты могут использовать его. Ошибка в AAAA иногда приводит к странной ситуации: IPv4 работает, но часть пользователей получает таймауты или нестабильную загрузку.
3) CNAME — алиас на другой домен
nslookup -type=CNAME www.example.comCNAME часто используют для www, CDN, внешних сервисов, конструкторов сайтов и SaaS-платформ. Если www.example.com должен вести на example.com или CDN-домен, это видно в ответе.
Нельзя ставить CNAME на корневой домен вместе с другими записями в классическом DNS. Для корня обычно используют A, AAAA, ALIAS или ANAME, если провайдер DNS поддерживает такие псевдозаписи.
4) MX — почтовые серверы
nslookup -type=MX example.comОтвет показывает серверы, принимающие почту для домена, и их приоритет. Чем меньше число приоритета, тем предпочтительнее сервер. Если MX отсутствует или указывает не туда, входящая почта может не доходить.
5) TXT — текстовые записи
nslookup -type=TXT example.comВ TXT часто лежат SPF, DKIM, DMARC, проверки владения доменом для Google, Яндекса, GitHub, CDN и других сервисов. Для почтовой безопасности полезно отдельно разобраться в SPF, DKIM и DMARC.
6) NS — DNS-серверы домена
nslookup -type=NS example.comNS показывает, какие серверы являются авторитетными для зоны. Если вы сменили DNS-хостинг, именно эти записи должны обновиться у регистратора.
7) SOA — служебная информация зоны
nslookup -type=SOA example.comSOA содержит главный сервер зоны, email администратора в DNS-формате, serial зоны и таймеры. При диагностике полезен serial: если на разных авторитетных серверах он отличается, зона могла синхронизироваться не полностью.
8) CAA — кто может выпускать TLS-сертификаты
nslookup -type=CAA example.comCAA ограничивает центры сертификации, которым разрешено выпускать сертификаты для домена. Если запись настроена неправильно, автоматический выпуск или продление сертификата может сломаться. Для смежной темы пригодится разбор HTTPS, TLS и сертификатов.
Запрос к конкретному DNS-серверу
Одна из самых полезных возможностей nslookup — запросить не «DNS по умолчанию», а конкретный сервер.
Например, проверить домен через Google DNS:
nslookup example.com 8.8.8.8Через Cloudflare DNS:
nslookup example.com 1.1.1.1Через Quad9:
nslookup example.com 9.9.9.9Через локальный роутер или корпоративный DNS:
nslookup example.com 192.168.1.1Так можно понять, проблема глобальная или локальная: если публичные резолверы уже показывают новый IP, а локальный DNS — старый, дело обычно в кэше; если старый IP отдают все резолверы, нужно проверять зону у DNS-провайдера и NS у регистратора.
Для проверки авторитетного сервера сначала найдите NS:
nslookup -type=NS example.comДопустим, ответ содержит ns1.provider.net. Тогда можно спросить его напрямую:
nslookup -type=A example.com ns1.provider.netЭто помогает отделить проблему авторитетной зоны от проблемы кэширующего резолвера. Если авторитетный сервер отдаёт верную запись, а публичный резолвер — старую, нужно ждать истечения TTL или проверять особенности кэша. Подробнее о таких задержках — в статье «Как работает DNS caching».
Есть ещё один важный сценарий: внутренние зоны. В корпоративной сети домен может резолвиться во внутренний IP, а снаружи — в публичный. Поэтому при диагностике всегда фиксируйте, откуда выполняется запрос и какой DNS-сервер использовался.
Как читать вывод nslookup
Базовый вывод nslookup выглядит примерно так:
Server: dns.google
Address: 8.8.8.8
Non-authoritative answer:
Name: example.com
Addresses: 2606:2800:220:1:248:1893:25c8:1946
93.184.216.34Разберём поля.
1) Server — DNS-сервер, который обработал запрос. Это может быть DNS провайдера, роутер, корпоративный резолвер или публичный сервер вроде 8.8.8.8.
2) Address — IP-адрес этого DNS-сервера. В Windows иногда отображается IPv6-адрес локального DNS или адрес роутера.
3) Non-authoritative answer — неавторитетный ответ. Это нормально: значит, ответ пришёл от кэширующего резолвера, а не напрямую от авторитетного DNS-сервера зоны.
4) Name — доменное имя, по которому получен ответ. Если был CNAME, итоговое имя может отличаться от исходного запроса.
5) Aliases — цепочка алиасов, если домен указывает на другой домен через CNAME.
6) Addresses — найденные IP-адреса. Их может быть несколько: для балансировки, CDN, IPv4/IPv6 или геораспределения.
Не стоит автоматически считать несколько IP ошибкой. CDN, балансировщики и отказоустойчивые схемы часто возвращают разные адреса в зависимости от региона, DNS-сервера и политики маршрутизации. В таких случаях полезна проверка сайта из разных точек. На эту тему есть отдельный материал: «Проверка доступности сайта из разных стран».
Если вывод содержит только DNS-сервер, но не содержит нужных записей, проверьте тип запроса. Например, CNAME для корневого домена может отсутствовать, но A при этом есть. Или TXT лежит не на example.com, а на _dmarc.example.com или селекторе DKIM вроде selector1._domainkey.example.com.
Типовые ошибки nslookup и что они означают
Ошибки DNS не всегда говорят о проблеме сайта. Иногда домен не существует, иногда не отвечает конкретный резолвер, иногда авторитетные серверы настроены некорректно.
1) NXDOMAIN
Пример:
** server can't find example.invalid: NXDOMAINNXDOMAIN означает, что доменное имя не найдено. Возможные причины: опечатка, несуществующий поддомен, домен не делегирован, запись удалена, ошибка в зоне DNS.
В браузере такая ситуация часто проявляется как DNS_PROBE_FINISHED_NXDOMAIN. Подробный разбор есть в статье «DNS_PROBE_FINISHED_NXDOMAIN».
2) SERVFAIL
SERVFAIL означает, что DNS-сервер не смог корректно обработать запрос. Причины: сбой авторитетного сервера, ошибка DNSSEC, некорректная зона, проблема у резолвера.
Если SERVFAIL виден только на одном публичном DNS, сравните ответы через другие серверы. Если он повторяется везде, проверяйте авторитетные NS, DNSSEC и зону у провайдера.
3) REFUSED
DNS-сервер отказался отвечать на запрос. Это может быть нормальной политикой: сервер обслуживает только свою сеть или запрещает рекурсивные запросы.
Для авторитетных серверов REFUSED на чужие рекурсивные запросы не всегда ошибка. Но если сервер должен обслуживать вашу зону и отказывается отдавать записи, нужно проверять конфигурацию.
4) connection timed out
Таймаут означает, что ответа не дождались. Причины: недоступен DNS-сервер, фильтрация UDP/TCP 53, проблемы сети, блокировка фаерволом, временный сбой провайдера.
Если таймаут возникает только с одним DNS-сервером, попробуйте другой. Если таймауты массовые, полезно проверить сеть: ping, tracert/traceroute, mtr, доступность порта 53.
5) No answer или пустой ответ
Иногда домен существует, но записи нужного типа нет. Например, у домена есть A, но нет AAAA; есть MX, но нет CAA; есть TXT на _dmarc.example.com, но нет на корне.
В браузере DNS-проблемы могут выглядеть по-разному. Если имя не резолвится, часто появляется ERR_NAME_NOT_RESOLVED; отдельный чеклист есть в статье «ERR_NAME_NOT_RESOLVED».
Практические сценарии диагностики сайта
nslookup особенно полезен не как абстрактная DNS-команда, а как часть понятной диагностики инцидента.
1) Сайт не открывается после переезда
Проверьте текущий A:
nslookup -type=A example.comЗатем сравните ответы публичных DNS:
nslookup -type=A example.com 8.8.8.8
nslookup -type=A example.com 1.1.1.1Если один сервер отдаёт старый IP, а другой новый, изменения ещё распространяются или кэш не истёк. Если все отдают старый IP, проверьте DNS-зону и делегирование.
2) Не работает www
Проверьте отдельно корень и www:
nslookup example.com
nslookup www.example.com
nslookup -type=CNAME www.example.comЧастая ошибка: настроили A для example.com, но забыли www.example.com. Или наоборот: www ведёт на CDN, а корень — на старый сервер.
3) Почта уходит в спам или не доставляется
Проверьте MX и TXT:
nslookup -type=MX example.com
nslookup -type=TXT example.com
nslookup -type=TXT _dmarc.example.comДля DKIM нужно знать селектор. Например:
nslookup -type=TXT selector1._domainkey.example.comЕсли SPF-запись дублируется, содержит лишние механизмы или отсутствует, почтовые сервисы могут отклонять письма или помечать их как подозрительные.
4) Пользователь видит ошибку, а у вас всё работает
Попросите пользователя выполнить:
nslookup example.com
nslookup example.com 8.8.8.8Сравните IP-адреса с вашими. Если у пользователя локальный DNS отдаёт другой ответ, проблема может быть в провайдерском кэше, корпоративном DNS, VPN, фильтрации или локальных настройках.
5) Мониторинг показал падение сайта
Если Statuser или другой сервис мониторинга доступности прислал уведомление о сбое, сначала разделите проблему на уровни: DNS, TCP, TLS, HTTP, приложение. nslookup закрывает первый вопрос: резолвится ли домен и какой IP отдаёт DNS.
Дальше обычно идут ping, traceroute, curl, проверка TLS-сертификата и логов веб-сервера. Для общего алгоритма пригодится материал «Не открывается сайт: пошаговая диагностика».
6) Нужно проверить, что алерт не ложный
DNS иногда даёт кратковременные сбои: один резолвер отвечает SERVFAIL, другой работает, а браузер пользователя уже успел закэшировать ошибку. Поэтому одиночный ручной nslookup не заменяет мониторинг. Удобнее, когда сервис вроде Statuser проверяет сайт с заданным интервалом и присылает уведомление, если проблема повторяется или длится дольше допустимого порога.
nslookup, dig и другие инструменты
nslookup — хороший первый инструмент, особенно в Windows. Но у него есть ограничения.
dig обычно удобнее для глубокого анализа: показывает секции DNS-ответа, флаги, TTL, время запроса, авторитетность, трассировку через +trace. Если вы работаете в Linux или macOS и часто разбираете DNS, стоит освоить dig; подробная инструкция есть в статье «Утилита dig».
Когда выбирать nslookup:
1) Нужно быстро проверить DNS в Windows — команда уже есть в системе, её легко передать пользователю или сотруднику.
2) Нужен простой ответ — какой IP, какие MX, есть ли TXT, что отдаёт конкретный DNS-сервер.
3) Диагностика идёт по телефону или в чате — вывод nslookup короче и понятнее для базовой проверки.
Когда лучше взять dig:
1) Нужно видеть TTL и структуру ответа — в dig это отображается явно и удобнее.
2) Нужно пройти цепочку делегирования — команда dig +trace example.com показывает путь от корневых серверов к авторитетным.
3) Нужно анализировать DNSSEC — dig даёт больше информации о флагах и связанных записях.
Есть и другие инструменты. host хорош для коротких DNS-запросов в Linux. Resolve-DnsName в PowerShell современнее, чем nslookup, и лучше интегрирован в Windows. Онлайн-проверки удобны для взгляда из разных регионов, но для точной диагностики всё равно полезно иметь локальную команду.
Практический подход простой: начинайте с nslookup, если нужно быстро понять факт резолвинга. Переходите к dig, если ответ странный, отличается по серверам или нужно проверить делегирование, TTL, DNSSEC и авторитетные NS.
FAQ
Можно ли проверить DNS-записи через nslookup в Windows?
Да. nslookup встроен в Windows. Откройте PowerShell или cmd и выполните nslookup example.com или nslookup -type=MX example.com.
Почему nslookup показывает старый IP после смены DNS?
Чаще всего из-за DNS-кэша и TTL. Проверьте домен через разные резолверы: 8.8.8.8, 1.1.1.1 и авторитетный DNS-сервер зоны.
Чем nslookup отличается от dig?
nslookup проще и доступен в Windows по умолчанию. dig подробнее показывает DNS-ответ и удобнее для глубокой диагностики, особенно в Linux.
Почему сайт открывается в браузере, а nslookup даёт другой результат?
Браузер может использовать DNS-over-HTTPS, собственный кэш, прокси или VPN. Кроме того, nslookup не учитывает файл hosts так же, как обычные приложения.
Похожие статьи

Проверка состояния сервисов в Node.js: зачем нужны health checks и как их реализовать
Health checks помогают контролировать доступность и работоспособность сервисов. В этой статье рассказываем, как реализовать проверку состояния в Node.js, какие типы health check существуют и как их связать с мониторингом.
15 апреля 20259 мин

Практическое использование cron. Расписание задач в Linux от А до Я
Полный разбор cron: как работает планировщик, как создавать расписания, отлаживать задачи, избегать ошибок и когда лучше использовать systemd timers.
7 декабря 202510 мин

openssl s_client: проверяем TLS-соединение и сертификаты из терминала
Практическое руководство по диагностике HTTPS, SNI, ALPN, цепочек сертификатов и ошибок TLS с помощью OpenSSL.
22 октября 202610 мин
Настроить мониторинг за 30 секунд
Надёжные уведомления о даунтаймах. Без ложных срабатываний