nslookup — это программа для запроса к серверам DNS. С помощью утилиты nslookup можно узнать значение DNS записей домена, узнать IP сайта, узнать сервера имён веб-сайта, почтовые сервера домена и другую информацию.
Программа nslookup умеет работать в двух режимах: интерактивном и не интерактивном.
Интерактивный режим nslookup
Для входа в интерактивный режим достаточно запустить программу без опций:
nslookup
Любо указать дефис. Кроме дефиса также можно указать имя домена или адрес DNS сервера для запросов:
nslookup - 8.8.4.4
В интерактивном режиме для выполнения DNS запроса указывайте по одному доменному имени, для которого вы хотите узнать IP адрес.
В интерактивной сессии командой
server домен_или_IP
можно установить используемый для запросов DNS сервер, например:
server 8.8.4.4
Можно просмотреть текущие значения всех опций командой:
set all
Пример вывода:
Set options: novc nodebug nod2 search recurse timeout = 0 retry = 3 port = 53 ndots = 1 querytype = A class = IN srchlist =
Значения всех показанных опций можно изменить.
С помощью равнозначных команд:
set querytype=ЗАПИСЬ set type=ЗАПИСЬ
Можно изменить тип запрашиваемой DNS записи, например, чтобы установить тип записи на MX:
set type=MX
После этого все запросы будут делаться с учётом установвленных настроек, то есть например будет показываться только указанный тип записи. Кстати, чтобы узнать о всех типах записях и чем они различаются, а также как вообще работает DNS, смотрите статью «Введение в DNS терминологию, компоненты и концепции».
Чтобы выводились сразу все DNS записи установите эту настройку следующим образом:
set type=ANY
Пример вывода информации о сразу всех найденных DNS записях домена suip.biz:
> suip.biz Server: 8.8.4.4 Address: 8.8.4.4#53 Non-authoritative answer: Name: suip.biz Address: 185.117.153.79 suip.biz nameserver = ns1.marosnet.ru. suip.biz nameserver = ns2.marosnet.ru. suip.biz origin = dns-manager_marosnet_net mail addr = proghoster.gmail.com serial = 2016040402 refresh = 3600 retry = 3600 expire = 604800 minimum = 86400 suip.biz mail exchanger = 10 mail.suip.biz. suip.biz mail exchanger = 20 mail.suip.biz. Name: suip.biz Address: 2a02:f680:1:1100::3d5f Authoritative answers can be found from:
Рекурсивные запросы можно включить или отключить командами:
set recurse set norecurse
По умолчанию рекурсивные запросы включены.
Поменять порт по умолчанию для TCP/UDP соединений при запросах к DNS серверу можно командой вида:
set port=ПОРТ
Портом по умолчанию является 53.
Кроме рассмотренных, имеются и некоторые другие настройки, которые используются реже — время тайм-аута, количество попыток запросов и другие.
Интерактивный nslookup может оказаться полезным если вы хотите сделать ряд поисков по DNS записям и хотите, чтобы они были сделаны с определёнными настройками, которые вы устанавливаете на данную сессию.
Неинтерактивный режим nslookup
Для работы с nslookup в неинтерактивном режиме достаточно указать после команды имя домена для поиска:
nslookup suip.biz
Поиск A и AAAA записей (IP адрес сайта) с nslookup
По умолчанию показываются записи A и AAAA. То есть если вы хотите узнать IP сайта, то достаточно запустить команду без опций, достаточно указать только имя домена:
nslookup zalinux.ru
Как по IP адресу узнать имя хоста в nslookup
Если вам нужно для IP адреса узнать связанное с ним доменное имя, то достаточно указать этот IP:
nslookup 185.117.153.79
Пример вывода:
79.153.117.185.in-addr.arpa name = suip.biz.
Как узнать IP адрес субдомена
Командой nslookup можно узнать IP адрес субдомена любого уровня:
nslookup lh5.googleusercontent.com
Поиск записей MX (Mail Exchange)
Для показа хостов, используемых для обмены почты, запустите команду вида:
nslookup -query=mx zalinux.ru
DNS запрос записей SOA (Start of Authority)
nslookup -type=soa zalinux.ru
Как узнать все DNS записи домена
nslookup -query=any zalinux.ru
Как в nslookup указать сервер для запросов
Если вы хотите сделать запрос к определённому DNS серверу (а по умолчанию адреса серверов берутся из файла /etc/resolv.conf), то после доменного имени достаточно указать имя хоста или IP DNS сервера:
nslookup zalinux.ru 8.8.4.4
Как получить записи NS (Name Server) в nslookup
NS запись содержит сервера имён данного домена, для их просмотра выполните команду вида:
nslookup -query=ns zalinux.ru
Сервера Имён — это авторитативные сервера для данного домена, которые являются самый первым источником данных о DNS записях для данного домена.
Как правило, конечный пользователь обращается не к авторитативному серверу (поскольку их много — для каждого домена может быть свой), а к кэширующему DNS серверу.
Что означает Non-authoritative answer
В большинстве ответов вы будете видеть надпись Non-authoritative answer. Чтобы понять её причину, нужно быть знакомым с работой DNS.
Если вы прочитали статью по ссылке, то вы знаете, что DNS сервер является авторитативным (authoritative) для данного домена, если он указан в качестве Сервера Имён (NS) в соответствующих записях для данного домена, а сам DNS сервер содержит файлы зоны для данного домена.
Как получить авторитативный ответ?
Предположим, я хочу узнать IP адрес домена suip.biz, но хочу получить ответ только от авторитативного DNS сервера для данного домена.
Для начала нам нужно узнать, какие сервера имён являются авторитативными для данного домена, то есть какие у этого сайта сервера имён. Как мы узнали чуть выше, нам нужно командой узнать сервера имён для данного домена:
nslookup -query=ns suip.biz
Получено сразу два сервера имён (на случай, если с одним из них будут проблемы).
Мы также уже рассмотрели, как делать запросы к определённому DNS серверу, поэтому выбираем любой из двух (кстати, их может быть больше) и делаем запрос непосредственному к данному DNS серверу:
nslookup suip.biz ns1.marosnet.ru
Обратите внимание, что надпись «Non-authoritative answer.» больше не выводится.
Как включить режим отладки nslookup
Включив режим отладки вы будете получать более вербальный вывод, в том числе в выводе будет присутствовать такая информация как TTL. Будет показан полны пакет ответа и любые промежуточные покеты ответа полученные во время поиска:
nslookup -debug suip.biz
Поддержка IDN
Если nslookup был скомпилирован с поддержкой IDN (internationalized domain name — интернационализированных доменных имён), он может принимать и отображать доменные имена не ASCII. nslookup соответствующим образом преобразует кодировку символов доменного имени перед отправкой запроса на DNS-сервер или отображением ответа с сервера. Если по какой-то причине вы хотите отключить поддержку IDN, определите переменную среды IDN_DISABLE. Поддержка IDN отключена, если переменная установлена при запуске nslookup или когда стандартный вывод не является tty.
Также смотрите
Дополнительная информация о DNS и программах для DNS запросов:
- Как пользоваться командой dig для DNS запросов
- Примеры DNS запросов командой host
- Введение в DNS терминологию, компоненты и концепции
Связанные статьи:
- Как узнать IP DNS сервера в Linux (100%)
- Как пользоваться командой dig для DNS запросов (59.4%)
- Примеры DNS запросов командой host (59.4%)
- Как в Linux определяется порядок источников для разрешения имён (приоритет файла hosts и DNS) (59.4%)
- Как настроить локальный DNS используя файл /etc/hosts в Linux (59.4%)
- IPv6 аналог для «arp -an» в IPv4 (RANDOM - 50%)