Битлента
Сетевые команды и утилиты5 мин чтения·

nslookup set type: как запрашивать записи MX, TXT и NS в интерактивном режиме

Как использовать nslookup в интерактивном режиме и с ключом -type: запросы записей MX, TXT, NS, SOA, PTR, выбор DNS-сервера и разбор ответа.

Кратко

В интерактивном режиме nslookup команда set type=MX задаёт тип записи, затем вводится имя домена. Разово можно написать nslookup -type=TXT example.com. Команда server меняет DNS-сервер, exit завершает сеанс.

Два режима работы nslookup

Утилита nslookup есть в Windows, macOS и большинстве дистрибутивов Linux; в Linux она ставится пакетом dnsutils или bind-utils. Она умеет работать двумя способами. Неинтерактивный режим — одна команда, один ответ: nslookup example.com. Интерактивный режим запускается просто командой nslookup без аргументов; вы попадаете в приглашение со знаком «больше» и вводите команды по одной, не запуская программу заново.

Интерактивный режим удобен, когда нужно задать серию запросов к одному серверу или сравнить типы записей: настройки сохраняются, пока вы не выйдете. Для выхода введите exit или нажмите Ctrl и C. Команда help или знак вопроса выводит краткую справку по доступным командам.

По умолчанию запрашиваются адресные записи A, а в новых версиях и AAAA. Чтобы узнать что-либо другое: почтовые серверы, текстовые записи, серверы имён домена, потребуется указать тип.

Как задать тип записи

В интерактивном режиме используется команда set type=ТИП, синонимом служит set q=ТИП. Затем вводите имя домена, и запрос будет выполнен для выбранного типа. Разово, без входа в интерактивный режим, тип задают ключом: nslookup -type=MX example.com.

  1. Введите nslookup и нажмите Enter, увидите приглашение.
  2. Введите set type=MX и Enter.
  3. Введите example.com и Enter: появится список почтовых серверов.
  4. Смените тип: set type=TXT, и повторите то же имя, получите текстовые записи.
  5. Введите exit, когда закончите.
ТипЧто запрашивает
AАдрес IPv4
AAAAАдрес IPv6
MXПочтовые серверы и их приоритеты
TXTТекстовые записи, например политики отправки почты
NSСерверы имён домена
SOAНачальная запись зоны с серийным номером и таймерами
CNAMEКаноническое имя, на которое указывает псевдоним
PTRОбратное имя по IP-адресу
ANYВсе доступные записи; многие серверы ограничивают такой ответ

Тип ANY на практике часто возвращает урезанный или пустой ответ, поэтому для полной картины запрашивайте нужные типы по одному.

Как читать ответ

Пример вывода (пример) для MX: строки Server и Address с указанием используемого DNS-сервера и порта 53, затем, при ответе из кэша резолвера, метка «Non-authoritative answer», а после неё строки вида example.com MX preference = 10, mail exchanger = mail.example.com. Число preference задаёт приоритет: сообщения сначала пытаются доставить на сервер с меньшим значением.

Метка «Non-authoritative answer» не сигнализирует об ошибке. Она означает, что ответ дал не сервер, за которым закреплена зона, а кэширующий резолвер, например роутер или сервер провайдера. Чтобы получить ответ от авторитетного сервера, сначала выясните серверы имён командой set type=NS, затем выберите один командой server имя-сервера и повторите запрос: метки уже не будет.

Другие сообщения. Non-existent domain означает, что имя не существует. Timed out — сервер не ответил за отведённое время. Server failed — сервер сообщил о внутренней ошибке. Refused — сервер отказался отвечать вам. Отсутствие строк после запроса типа при отсутствии ошибки говорит о том, что имя есть, а записей такого типа нет.

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

Выбор DNS-сервера и полезные команды

В интерактивном режиме команда server адрес меняет сервер, к которому идут запросы: server 203.0.113.53. Разово адрес указывают последним аргументом: nslookup -type=TXT example.com 203.0.113.53. Так можно сравнить ответ вашего роутера и, например, публичного резолвера либо сервера провайдера.

  • set all — показать текущие настройки, включая тип, сервер, число повторов и таймаут.
  • set timeout=N и set retry=N — время ожидания и число повторов, полезны для медленных серверов.
  • set debug — подробный вывод пакета ответа, включая заголовки и TTL.
  • set norecurse — не запрашивать рекурсию, чтобы посмотреть только то, что есть в кэше сервера.
  • set domain=имя — домен, который добавляется к коротким именам.

Обратный запрос выполняется просто: nslookup 203.0.113.10. Утилита вернёт PTR-запись, если она настроена. В ответе Name покажет обратное имя. Отсутствие PTR — обычное дело для многих адресов.

Ограничения nslookup и что использовать вместо него

Nslookup обращается к DNS-серверу напрямую и не читает файл hosts, поэтому запись, добавленную в hosts, он не увидит. Его собственный механизм отличается от механизма, которым пользуются программы, потому нужно быть осторожным: результат nslookup и поведение браузера могут различаться. Для проверки в стиле «как видит программа» в Windows подойдёт Resolve-DnsName без параметра -DnsOnly, а в Linux resolvectl query.

Формат вывода nslookup не предназначен для разбора скриптами и в разных системах немного отличается. Для автоматизации предпочтительнее dig с ключами +short и +noall +answer. Но для быстрой ручной проверки MX и TXT записей, особенно в Windows, где dig нет, nslookup остаётся самым доступным инструментом.

Запрашивайте данные только о тех доменах, которыми вы управляете либо которые проверяете по обычной необходимости. Массовые запросы к чужим серверам имён создают нагрузку и могут привести к ограничению.

Проверка почтовых записей домена на практике

Самый частый повод открыть nslookup — настройка почты для собственного домена. Порядок такой: запросите MX и убедитесь, что серверы и приоритеты соответствуют данным почтового сервиса. Затем запросите TXT: здесь размещают запись, определяющую, каким серверам разрешено отправлять почту от имени домена, и записи подтверждения владения. Одна строка TXT может быть разбита на несколько частей в кавычках, это нормально.

Если записи только что менялись, сравните ответ вашего резолвера с ответом авторитетного сервера: пока не истёк TTL, кэши могут показывать прошлое значение. Для этого выполните set type=NS, выберите один из серверов командой server и повторите запрос. Расхождение объясняет, почему письма ещё идут по старому маршруту. Обратите внимание и на запись CNAME: для домена вместе с почтой она обычно не допускается на корневом имени, и при ошибке настройки почта перестанет приходить.

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

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

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