Как сетевой администратор, вы обнаружите, что команда nslookup
— один из самых важных инструментов. С помощью nslookup вы можете проверять записи DNS для устранения проблем с вашим DNS-сервером или определенной записью DNS. В этой статье мы подробно рассмотрим nslookup и покажем несколько практических примеров его использования.
Что такое nslookup?
Nslookup означает «поиск сервера имен». Инструмент командной строки nslookup используется для запроса к системе доменных имен (DNS) для получения сопоставления доменного имени или IP-адреса или других записей DNS. Э
Contents
- 1 Что такое nslookup?
- 2 Зачем использовать nslookup?
- 3 Установка nslookup в Linux
- 4 Выполнение простого запроса
- 5 Понимание результатов
- 6 Использование определенного DNS-сервера
- 7 Указание типа записи
- 8 Запрос всех типов записей DNS
- 9 Выполнение обратного поиска DNS
- 10 Включение режима отладки
- 11 Запись вывода в файл
- 12 Использование интерактивного режима
- 13 nslookup или dig
- 14 Часто задаваемые вопросы
Что такое nslookup?
мент, с помощью которого вы можете получить дополнительную информацию о записи DNS.Зачем использовать nslookup?
Команда nslookup — очень мощный инструмент DNS-запросов. Его можно использовать для устранения неполадок DNS или просто для получения информации о записи DNS. Например, вы можете использовать nslookup, чтобы узнать IP-адрес веб-сайта или узнать DNS-записи домена.
С учетом сказанного, давайте подробнее рассмотрим, как установить и использовать nslookup.
Установка nslookup в Linux
В большинстве дистрибутивов Linux nslookup включен в пакет bind-utils
.
В Debian или Ubuntu вы можете использовать подходящий менеджер пакетов :
sudo apt install dnsutils-y
В Centos/RHEL/Fedora вы можете использовать
Зачем использовать nslookup?
>sudo yum install bind-utils -yВ ArchLinux:
pacman -Sy dnsutils
Выполнение простого запроса
Общий синтаксис команды nslookup следующий:
nslookup <domain-name><options>
<domain-name>
— это доменное имя, которое вы хотите запросить, а <options>
— любые параметры, которые вы хотите использовать. Эти параметры управляют поведением nslookup. В этом уроке вы узнаете больше о вариантах. А пока
Установка nslookup в Linux
/p>Чтобы выполнить простой запрос DNS, укажите имя домена, которое вы хотите запросить, без указания каких-либо параметров.
Например, выполните следующую команду, чтобы запросить записи DNS для доменного имени google.com:
nslookup google.com
Эта команда возвращает все записи DNS для указанного доменного имени.
Понимание результатов
Когда вы запускаете команду nslookup без указания каких-либо параметров, она по умолчанию возвращает большой объем информации. Давайте подробнее рассмотрим, что означает этот вывод.
Первое, что вы увидите, это server
Выполнение простого запроса
использует nslookup. По умолчанию nslookup использует DNS-сервер, настроенный в вашей системе. В большинстве случаев это будет DNS-сервер вашего интернет-провайдера.
В данном случае это сервер «127.0.0.53», который является IP-адресом локального хоста. В этом руководстве nslookup запускается на том же компьютере, на котором размещен мой DNS-сервер. Если у вас нет собственного DNS-сервера, вы увидите IP-адрес DNS-сервера вашего интернет-провайдера.
Порт 53 — это порт, который используется для запросов DNS и является стандартным портом для запросов DNS.
После информации о сервере вы увидите строку Non-authoritative answer
. Эта строка указывает на то, что ответ, полученный nslookup, не был получен от авторитетного DNS-сервера домена. Этот ответ кэшируется и пересылается с локального сервера, запрошенного nslookup.
В большинстве случаев это совершенно нормально, и вам не нужно об этом беспокоиться. Но если вы устраняете проблемы с DNS, возможно, вам захочется получить ответ от авторитетного DNS-сервера домена.
Под строкой Non-authoritative answer
вы увидите записи D
Понимание результатов
ени. В этом случае возвращаются две записи A. Эти записи A содержат IP-адреса доменного имени.Вы также увидите, что возвращаются разные IP-адреса, поскольку Google настроил «балансировку нагрузки DNS». Когда вы запрашиваете DNS-серверы Google, вы каждый раз получаете другой IP-адрес, чтобы распределить нагрузку между их серверами и ускорить работу для всех.
Примечание. Если вы не получаете никаких результатов, возможно, вам потребуется очистите кеш DNS в вашей системе . Если у вас отредактировал ваш файл «/etc/hosts» , это также может исказить результаты nslookup.
Использование определенного DNS-сервера
Использование определенного DNS-сервера может оказаться полезным, если вы устраняете проблемы DNS, связанные с конкретным DNS-сервером. Или, возможно, вы находитесь в сети, в которой используется частный DNS-сервер, и хотите отправлять запросы, используя этот сервер вместо DNS-серверов вашего интернет-провайдера.
Чтобы использовать определенный DNS-сервер с nslookup, вам необходимо указать имя домена, который вы хотите запросить, а затем DNS-сервер. Например, чтобы запросить записи DNS для superuser.com с помощью DNS-серверов Google (8.8.8.8), выполните следующую команду:
nslookup superuser.com 8.8.8.8
DNS-серверы Google — хороший выбор, поскольку они быстрые и надежные, но вы можете использовать любой DNS-сервер по вашему желанию.
На этот раз мы получили записи DNS с DNS-серверов Google — и четыре записи A вместо двух, поскольку superuser.com использует четыре разных DNS-сервера для обработки трафика.
Вы можете использовать эту же технику для запроса любого DNS-сервера, который вам нужен. Укажите имя домена, за которым следует IP-адрес DNS-сервера.
Указание типа записи
По умолчанию nslookup возвращает все DNS-записи A для домена. Но что, если вы хотите запросить только запись определенного типа?
Например, возможно, вы пытаетесь получить доступ к веб-сайту, но получаете сообщение об ошибке, сообщающее, что DNS-сервер не может найти запись A для домена. В этом случае вы можете использовать nslookup для запроса записи A и проверки, возвращает ли она правильный IP-адрес.
Чтобы запросить определенный тип записи DNS, используйте параметр -type
. Он принимает один аргумент — тип записи, которую вы хотите запросить. Наиболее распространенные типы записей DNS:
- A: Запись адреса – сопоставляет доменное имя с адресом IPv4.
- AAAA: запись адреса IPv6 — сопоставляет доменное имя с адресом IPv6.
- CNAME: каноническая запись имени: сопоставляет псевдоним с реальным доменным именем и полезна при запуске FPT или веб-сервер Nginx .
- MX: запись почтового обмена: сопоставляет доменное имя с сервером электронной почты и помогает проверить правильность настройки электронной почты.
- NS: запись сервера имен: сопоставляет доменное имя с DNS-сервером и указывает, какой DNS-сервер отвечает за домен и где найти записи DNS для этого домена.
- TXT: текстовая запись – хранит текстовую информацию для домена, может использоваться для хранения таких вещей, как записи SPF, и гарантирует, что ваша электронная почта защищена от спама или фишинговых атак.
Для запроса определенного типа записи используйте следующий синтаксис:
nslookup <domain> <dns_server> set type=<record_type>Использование определенного DNS-сервера команду, чтобы запросить записьCNAME
для superuser.com:nslookup superuser.com -type=cname
Чтобы запросить запись
MX
на сайте google.com, выполните следующую команду:nslookup google.com -type=mx
Аналогичным образом вы можете запросить любой другой тип записи DNS, который вам нужен – просто убедитесь, что используете правильный тип записи в команде.
Запрос всех типов записей DNS
Если вы хотите запросить все типы записей DNS для домена, вам нужно использовать опцию
-type=any
. Он возвращает все типы записей для домена, включая A, AAAA, CNAME, MX и т. д.Эта опция может быть полезна, если вы хотите получить полное представление о DNS-записях домена.
Например, выполните следующую команду, чтобы запросить все записи DNS сайта google.com:
nslookup -type=any superuser.com
Как видно ниже, эта команда возвращает все записи DNS для google.com:
Выполнение обратного поиска DNS
Помимо запроса DNS-серверов для получения информации о домене, вы также можете использовать nslookup для запроса DNS-серверов для получения информации об IP-адресе. Это называется обратным поиском DNS.
Предположим, у вас есть IP-адрес сервера и вы хотите найти имя хоста этого сервера . Обратный поиск DNS может помочь вам в этом.
Чтобы выполни
Указание типа записи
е командуnslookup
и введите IP-адрес, который вы хотите найти.Например, выполните следующую команду, чтобы выполнить обратный поиск DNS для IP-адреса «142.250.204.46»:
nslookup 142.250.204.46Это вернет имя хоста сервера с IP-адресом 142.250.204.46.
Включение режима отладки
Продвинутые пользователи могут включить режим отладки в nslookup, чтобы получить дополнительную информацию о DNS-запросах. Этот режим полезен, если вы устраняете проблемы с DNS и хотите увидеть, что происходит за кулисами.
Чтобы включить режим отладки, используйте параметр
-debug
. Например, чтобы запросить запись A для google.comи включить режим отладки, выполните следующую команду:nslookup -debug google.com
Эта команда возвращает много информации о DNS-запросе. Эта информация может быть полезна, если вы пытаетесь устранить проблемы с DNS.
Запись вывода в файл
Может быть полезно записать вывод nslookup в файл. Вы можете сохранить этот файл и поделиться им со своими коллегами-системными администраторами, чтобы они могли помочь вам устранить проблемы с DNS.
Используйте следующий синтаксис, чтобы сохранить выходные данные nslookup в файл:
nslookup <domain> > /path/to/fileНапример, чтобы запросить все записи DNS A для google.com и сохранить результат в файле с именем «google_dns_records.txt», выполните следующую команду. Символ
>
используется для перенаправления вывода команды в файл.nslookup -debug google.com > google_dns_records.txtВыполните команда ls -la ниже, чтобы убедиться, что файл журнала создан:
ls -la google_dns_records.txtКак видно ниже, файл был успешно создан.
Запустите команда кота ниже, чтобы просмотреть содержимое файла.
cat google_dns_records.txt
Как видно ниже, файл журнала содержит все записи DNS для google.com.
Использование интерактивного режима
В этой статье мы использовали команду nslookup с различными параметрами для запроса DNS-серверов в неинтерактивном режиме, что позволяет указать все параметры в одной команде.
Помимо неинтерактивного режима, nslookup также имеет интерактивный режим. В интерактивном режиме вы можете вводить различные команды для запроса DNS-серверов без необходимости каждый раз вводить всю команду nslookup.
В общем, если вы собираетесь выполнить несколько DNS-запросов, лучше всего использовать неинтерактивный режим. Но если вы собираетесь выполнять множество DNS-запросов или хотите поэкспериментировать с различными параметрами nslookup, интерактивный режим может оказаться более удобным и логичным.
Чтобы войти в интерактивный режим, выполните приведенную ниже команду.
nslookupВаше приглашение изменится на
>
, как показано ниже. Это означает, что вы сейчас находитесь в интерактивном режиме.Вы можете запускать все команды nslookup, которые мы рассмотрели в этом руководстве, без необходимости каждый раз вводить
nslookup
Запрос всех типов записей DNS
" src="https://saintist.ru/wp-content/uploads/2024/05/nslookup-use-interactive-mode.png" alt="Nslookup использует интерактивный режим">
Чтобы выйти из интерактивного режима, выполните команду exit
.
Если вы хотите узнать больше об использовании nslookup, ознакомьтесь с разделом справочная страница nslookup .
nslookup или dig
И nslookup, и dig — отличные инструменты для запроса DNS-серверов. В целом оба инструмента дадут одинаковые результаты. Вы можете выполнить запрос, используя оба инструмента, и сравнить результаты. Это отличный способ перепроверить результаты вашего запроса.
Если вам нужно выбрать один инструмент вместо другого, рекомендуется использовать Выполнение обратного поиска DNSnd-linux/" title="использовать копать">использовать копать , поскольку nslookup является устаревшим. Впервые он был выпущен в начале 1980-х годов, и его разработчики практически отказались от него. Напротив, dig все еще активно развивается, поэтому в dig больше шансов найти новые функции и исправления ошибок, чем в nslookup.
Примечание : если вам увидев ошибку подключения «Нет маршрута к хосту», у нас есть исправления здесь .
Часто задаваемые вопросы
Является ли nslookup DNS?
Нет. nslookup — это инструмент сетевого администрирования для запроса системы доменных имен (DNS), для работы которого требуется работающий DNS-сервер. Однако nslookup также может использовать файл с именем «/etc/hosts» в качестве источника информации DNS.
Как проверить настройки DNS в Linux?
В файле «/etc/resolv.conf» хранятся ваши настройки DNS в Linux. Используйте команду cat
, чтобы просмотреть содержимо
Включение режима отладки
on>Я столкнулся с ошибкой «Невозможно найти имя сервера…» при использовании nslookup. Как это исправить?
Это известная ошибка nslookup. Обходной путь — использовать локальный DNS-сервер для выполнения запроса. Опустите параметр IP-адреса пользовательского DNS-сервера в команде как nslookup google.com
, и все должно работать.
Изображение предоставлено: Unsplash . Все скриншоты Николаса Суана Нгуена.