• База знаний
  • /
  • Блог
  • /
  • Wiki
  • /
+380 (44) 364 05 71

Команды по работе с доменными именами: host, nslookup, dig, whois, ping

 

Оглавление

 

Что такое DNS

DNS (Domain Name System) — это система доменных имён, с помощью которой каждому имени домена сопоставляется его реальный IP адрес. В основе самого понятия DNS лежит представление о структуре доменного имени и зонах. Чтобы понять, как работать с доменными именами в Linux, нам необходимо изучить основные команды для работы с DNS, их синтаксис и примеры применения на практике. В этой статье рассмотрим следующие команды: host, nslookup, dig, whois, ping. Все практические задачи по работе с доменными именами мы покажем на нашем VPS под управлением серверной ОС CentOS 7. Для работы нам потребуется установить пакет утилит: bind-utils, без которого в CentOS 7 не будут работать команды host, nslookup, dig.

yum install bind-utils

установка bind-utils в CentOS 7

Также в синтаксисе некоторых команд мы будем использовать основные DNS записи для доменного имени (A, AAAA, MX, NS, SOA, TXT, CNAME, PTR), ниже расшифруем, что означает каждая из них.
Зарегистрировать домен Вы можете здесь.

Основные DNS записи для домена

Все владельцы доменов могут зайти в свой рабочий кабинет у хостинг-провайдера (или регистратора доменных имен) и посмотреть записи для своего домена, оформленные, как правило, в виде таблицы, которая содержит следующие поля:

  • Имя (хост, псевдоним);
  • Тип записи;
  • Значение (IP адрес, назначение, ответ и т.д.).

DNS записи для домена

Существуют следующие типы записей:

  • А (address record): адрес домена в IPv4, осуществляет привязку домена к IP адресу. Если у вас несколько IP адресов для одного домена, то сделайте несколько записей типа А.
  • АААА (address record): адрес домена в IPv6.
  • CNAME (canonical name record, т.е. каноническое имя): позволяет создавать псевдонимы и субдомены после создания записи типа A. Например, user1.test.com CNAME test.com.
  • MX (почтовый сервер): такой тип записи создает специальный поддомен для внутреннего почтового сервера. Например, для создания своего почтового сервера mail.test.com.
  • NS (сервер имён): служит для определения доменов (или адресов) серверов DNS, которые обслуживают этот домен.
  • TXT: информационная запись в текстовом виде.
  • SOA (Start Of Authority): указывает на каком именно сервере хранится полная информация о домене. Обозначает полное, уточненное доменное имя зоны, которое должно заканчиваться «точкой». Может быть использован символ @ (в случае, если уточненное имя домена берется из конфигурационного файла).
  • PTR: предназначение этой записи служит для осуществления связи IP-адреса сервера с каноническим именем этого же сервера.

Команда dig

Одна из основных команд Linux для работы с доменами — это dig (domain information groper). Утилита предоставляет возможность узнать о домене наиболее полную информацию, например, IP адрес, который привязан к данному доменному имени и еще ряд полезных для системного администратора параметров. Синтаксис команды dig следующий:

dig [@сервер] [имя домена] [тип записи] [флаги], где:

  • @cервер — указывает IP-адрес сервера DNS, если не указать этот параметр, то обращение идет к серверу DNS «по умолчанию»;
  • имя домена — указывает имя домена, о котором нужно получить информацию;
  • тип записи — тип записи DNS (А, MX, TXT, NS и т.д.);
  • флаги — с помощью флагов можно задать дополнительные опции утилиты dig.

Ниже укажем основные флаги утилиты dig:

  • +[no]all — используется для вывода на экран или сокрытия всех установленных «по умолчанию» флагов;
  • +[no]answer — необходима для отображения только ответа на запрос;
  • +short — выводит информацию о домене в сокращенном формате;
  • +[no]identify — применяется совместно с флагом +short для отображения информации об IP-адресе сервера;
  • +[no]comments — служит для вывода информации без комментариев;
  • +[no]trace — используется для вывода списка DNS серверов, через которые идет запрос на получение данных о домене.

Дополнительно, могут быть использованы следующие опции для команды dig:

  • -4 — разрешает к использованию только IPv4;
  • -6 — разрешает к использованию только IPv6;
  • -x — служит для получения имени домена по его IP-адресу;
  • -f — предназначена, чтобы прочитать список доменов из файла;
  • -t — служит для обозначения типа записи, которую надо вывести на экран;
  • -p — показывает номер порта DNS сервера.

Мы показали только часто употребляемые флаги и опции команды dig, для получения полной информации по данному вопросу советуем воспользоваться командой:

man dig

Сейчас приведем практические примеры использования утилиты dig. Самый простой случай применения dig:

dig [имя домена]

Например, введем в терминале:

dig freehost.com.ua

результаты выполнения команды dig

Как понять результаты выполнения этой команды? Информация условно поделена на три секции:

  • секция HEADER — показывает текущую версию утилиты dig, ID запроса и т. д.;
  • секция QUESTION SECTION — выводит на экран текущий запрос;
  • секция ANSWER SECTION — отображает ответ на созданный запрос (в нашем запросе выводит IP домена).

Если вы хотите получить только основные данные по домену, то стоит задать сокращенный запрос следующей командой:

dig freehost.com.ua +short

использование команды dig с флагом +short

При использовании флага +noall будет отключен вывод на экран информации всех трех секций:

dig freehost.com.ua +noall

Если вы хотите увидеть информацию только из секции ANSWER SECTION, то выполните следующую команду:

dig freehost.com.ua +noall +answer

использование команды dig с флагами +noall +answer

При необходимости получить такого рода информацию по нескольким доменам сразу, советуем создать специальный файл sites.txt в редакторе nano и занести туда доменные имена нужных сайтов, например:

nano sites.txt
google.com
yandex.ru
freehost.com.ua

Далее следует выполнить команду в терминале:

dig -f sites.txt +noall +answer

получение информации с помощью dig для нескольких доменов сразу

Теперь попробуем получить определенные типы записей DNS (A, MX, NS, TXT и т.д.), для этого выполняем команду dig, применяя следующие флаги, например, для типа записи «почтовый сервер»:

dig freehost.com.ua MX

получение информации с помощью dig с флагом MX

Или же, если мы хотим получить ответ только для третьей секции утилиты dig:

dig freehost.com.ua MX +noall +answer
dig freehost.com.ua NS +noall +answer
dig freehost.com.ua A +noall +answer
dig freehost.com.ua TXT +noall +answer
dig google.com ANY +noall +answer

использование команды dig с флагами для определения типа записи

Сейчас попробуем указать конкретный сервер в синтаксисе команды dig (без указания сервера, утилита использует информацию из файла /etc/resolv.conf). Приведем пример с публичным сервером google.com:

dig @8.8.8.8 google.com +noall +answer

использование команды dig с параметром @сервер.

Для решения обратной задачи — получения имени домена по IP-адресу, выполним команду dig с опцией -x:

dig -x 178.20.156.90
dig -x 178.20.156.90 +short

команда dig с опцией -x

Попытаемся узнать, через какие DNS сервера идет запрос для получения информации о домене (команда трассировки в Linux):

dig +trace freehost.com.ua

использование команды dig с флагом +trace

Для вывода текущей версии утилиты dig воспользуемся опцией -v:

dig -v

версия утилиты dig

Для проверки синхронизации зоны со всеми NS введем команду:

dig freehost.com.ua +nssearch

использование команды dig с флагом +nssearch

Команда nslookup

Эта команда также позволяет получить информацию по домену или по IP адресу. Основной синтаксис написания nslookup:

nslookup [опции] [доменное имя] [сервер]

где [сервер] — указывать необязательно.

Самый простой пример использования nslookup приведем ниже:

nslookup freehost.com.ua

использование команды nslookup

Можем выполнить и обратную задачу — по IP адресу узнать доменное имя сайта.

nslookup 194.0.200.202

пример использования команды nslookup

Ниже приведем основные опции команды nslookup:

  • type – записывается тип записи DNS (к примеру, NS, TXT, SOA и др.);
  • port – указывается номер порта;
  • recurse – в случае, когда DNS не отвечает, использовать другие DNS;
  • retry – задается количество попыток;
  • timeout – время;
  • fail – в случае, когда DNS возвращает ошибку, необходимо использовать другой сервер.

Приведем примеры команды, с использованием опции type (тип записи), например, для получения записей типа NS, MX, TXT, SOA и т.д.:

nslookup -type=ns freehost.com.ua
nslookup -type=mx freehost.com.ua
nslookup -type=txt freehost.com.ua
nslookup -type=soa freehost.com.ua

примеры команды nslookup с использованием опции type

Техническую информацию о домене можно получить в ответе, запустив команду nslookup с параметром для типа записи SOA:

  • origin — источник информации;
  • mail addr — указывает email address администратора домена;
  • serial — показывает время в формате timestamp;
  • refresh — выводит время в секундах, в течении которого нужно повторить подключения, чтобы обновить информацию;
  • retry — указывает время в секундах, через которое необходимо опять повторить подключения к DNS, в случае, если он недоступен;
  • expire — показывает интервал времени в секундах, через который нужно считать информацию, полученную от первого DNS, устаревшей;
  • minimum — это время в секундах, которое проходит до следующего обновления.

Команда whois

Whois — это сервис, который позволяет узнать всю информацию о владельце домена. В ОС Linux эту команду можно вводить прямо в терминале. В CentOS 7 данная служба не установлена «по умолчанию», поэтому необходимо ее установить:

yum install jwhois

установка whois в CentOS 7

Итак, посмотрим всю информацию о владельце домена freehost.com.ua (ниже приведена только первая часть скриншота для примера):

whois freehost.com.ua

команда whois freehost.com.ua

Для изучения всех параметров команды whois выполните:

man whois

команда man whois

Команда ping

Команда ping известна всем пользователям сети, которые сталкивались с проблемами с соединением. Ping служит для того, чтобы узнать, есть ли связь с удаленным узлом сети, используя протокол ICMP (Internet Control Message Protocol). Принцип действия утилиты простой: на удаленный хост передается пакет с данными ICMP, с целью получить пакет с ответом — если он приходит, то удаленный узел считается доступным.

Синтаксис данной команды:

ping [опции] [адрес удаленного узла]

На скриншотах ниже показаны простые примеры использования команды ping:

ping 194.0.200.202

использование команды ping

ping freehost.com.ua

пример использования команды ping

Команда ping может исполняться достаточно долго, для выхода из этого режима необходимо нажать комбинацию клавиш: ctrl+c.

Ниже приведем некоторые опции утилиты ping с примерами:

  • -4 — применять ipv4 (по умолчанию);
  • -6 — применять только ipv6;
  • -b — пинговать широковещательный адрес;
  • -с — задать количество пакетов, которые необходимо отправить;
  • -D — показывать время в формате UNIX timestamp;
  • -f — работать в режиме флуда;
  • -i — задать интервал в секундах между отправкой пакетов;
  • -v — информация в подробном выводе.
ping -c 5 freehost.com.ua

опция -с утилиты ping

ping -f freehost.com.ua

опция -f утилиты ping

ping -i 0.3 freehost.com.ua

опция -i утилиты ping

ping -D freehost.com.ua

опция -D утилиты ping

Команда host

Еще одна команда для работы с DNS — это host. Она предназначена для получения информации о доменном имени, например, чтобы по имени домена узнать IP адрес:

host freehost.com.ua

команда host

Данную команду можно использовать со следующими опциями, например:

host [-опция]

где:

  • -l — выводит на экран всю информацию о домене;
  • -v — выдает результаты в подробном формате;
  • -w — принуждает утилиту host ждать ответ;
  • -r — используется для выключения режима рекурсии (в этом случае DNS-сервер не обращается за информацией к другим DNS-серверам, используется только локальная база);
  • -d — необходимо для включения режима отладки;
  • -t querytype — определяет тип запроса (например, -t TXT — возвращает только тип записи TXT для домена);
  • -a — служит для восстановления всех записей в DNS.

Заключение

В данной статье мы рассказали нашим читателям, как работать с системой доменных имён (DNS) с помощью команд host, nslookup, dig, whois, ping. В нашем материале приведены практические задачи, которые может решать системный администратор или пользователь Linux в своей ежедневной работе, применяя эти утилиты.

Для заказа VPS и его настройки вы всегда можете обратиться за помощью к специалистам компании FREEhost.UA.

Подписывайтесь на наш телеграмм - канал t.me/freehostua, чтоб быть в курсе новых полезных материалов. Смотрите наш Youtube канал на youtube.com/freehostua.

 

Дата: 30.08.2021
Автор: Евгений
Голосование

Авторам статьи важно Ваше мнение. Будем рады его обсудить с Вами:

comments powered by Disqus
Спасибо, что выбираете FREEhost.UA