команда host в Linux с примерами
Команда host в системе Linux используется для операций поиска DNS (Domain Name System). Проще говоря, эта команда используется для поиска IP-адреса конкретного доменного имени или, если вы хотите узнать доменное имя определенного IP-адреса, команда хоста становится удобной. Вы также можете найти более подробную информацию о домене, указав соответствующую опцию вместе с именем домена.
Синтаксис:
Команда хоста без какой-либо опции: она напечатает общий синтаксис команды вместе с различными опциями, которые можно использовать с командой хоста, а также даст краткое описание каждой опции.
Пример:
Различные параметры с помощью команды host:
Пример:
Пример:
Пример:
Пример 1:
Пример 2: Распечатать запись SOA
Пример 3: Распечатать текстовую запись
Пример:
Пример:
Команда host в linux
Команда host позволяет использовать одноименную утилиту для отправки запросов серверам доменных имен. При использовании host пользователь может указать имя сервера доменных имен, который должен обработать запрос, поэтому рассматриваемая утилита используется главным образом для диагностики серверов доменных имен. Кроме того, утилита может осуществлять обратное разрешение доменных имен, то есть, получать список доменных имен, связанных с заданным IP-адресом. Данная утилита схожа по функционалу с утилитой dig, но имеет более простой и понятный синтаксис.
Базовый синтаксис команды выглядит следующим образом:
$ host [параметры] имя-домена-или-ip-адрес [имя-сервера-доменных-имен]
Утилита поддерживает ряд параметров командной строки. Наиболее полезным параметром является параметр -t, позволяющий указать интересующий пользователя тип ресурсной записи.
В частности, поддерживаются следующие типы ресурсных записей:
По умолчанию утилита осуществляет запросы значений ресурсных записей типов A, AAAA и MX. Параметр -a позволяет осуществить запрос значений всех ресурсных записей домена. Параметр -T позволяет осуществить обращение к DNS-серверу по протоколу TCP. Параметр -R позволяет указать количество повторов отправки запросов и полезен при работе в ненадежных сетях по протоколу UDP. Параметр -W позволяет указать длительность периода ожидания ответа сервера в секундах, а параметр -w позволяет ожидать ответа сервера в течение неограниченного времени. Параметры -4 и -6 позволяют использовать протоколы IPv4 и IPv6 соответственно.
Примеры использования
Получение IP-адреса сервера по имени домена
Для получения IP-адреса сервера ресурса по имени его домена достаточно передать утилите имя домена без каких-либо параметров:
В результате будет получен следующий вывод, практически не содержащий ненужной информации по сравнению с выводом утилиты dig:
linux-faq.ru has address 185.17.121.220
linux-faq.ru mail is handled by 0 linux-faq.ru.
Несложно заметить, что сервер имеет IP-адрес 185.17.121.220. Для получения более компактного вывода может использоваться следующая команда:
Теперь вывод будет содержать лишь наиболее важную информацию:
linux-faq.ru has address 185.17.121.220
Получение имен доменов почтовых серверов, связанных с доменом
Для получения имен доменов почтовых серверов, связанных с заданным доменом, можно обойтись вызовом утилиты host с именем домена без каких-либо параметров. Если же вам не нужна дополнительная информация, вы можете четко указать тип ресурсной записи MX. Для этого может использоваться параметр -t:
В результате будет получен аналогичный вывод:
linux-faq.ru mail is handled by 0 linux-faq.ru.
Получение имен серверов доменных имен, связанных с доменом
Для получения имен серверов доменных имен, связанных с заданным доменом, нужно четко указывать тип ресурсной записи NS. Для этого может использоваться параметр -t:
В результате будет получен аналогичный вывод:
linux-faq.ru name server ns1.m-hosting.ru.
linux-faq.ru name server ns2.m-hosting.ru.
Получение значений всех доступных ресурсных записей
Для получения значений всех доступных ресурсных записей, связанных с заданным доменом, нужно использовать параметр -a:
В результате будет получен аналогичный вывод:
;; QUESTION SECTION:
;linux-faq.ru. IN ANY
;; ANSWER SECTION:
linux-faq.ru. 9875 IN SOA ns1.m-hoster-6.ru. wm-max2008.yandex.ru. 2018122909 3600 7200 1209600 86400
linux-faq.ru. 6859 IN MX 0 linux-faq.ru.
linux-faq.ru. 14139 IN A 185.17.121.220
linux-faq.ru. 330754 IN NS ns1.m-hosting.ru.
linux-faq.ru. 330754 IN NS ns2.m-hosting.ru.
Received 177 bytes from 127.0.0.53#53 in 65 ms
Это формат вывода утилиты dig, который наверняка многим знаком.
Обратное разрешение доменного имени
Для того, чтобы осуществить обратное разрешение доменного имени достаточно задать IP-адрес сервера:
$ host 185.17.121.220
220.121.17.185.in-addr.arpa domain name pointer server6.m-hoster-6.ru.
Использование определенного сервера доменных имен
Для использования определенного сервера доменных имен необходимо указать его имя или IP-адрес:
$ host linux-faq.ru ns1.r01.ru
Using domain server:
Name: ns1.r01.ru
Address: 89.111.160.32#53
Aliases:
linux-faq.ru has address 185.17.121.220
linux-faq.ru mail is handled by 0 linux-faq.ru.
В данном случае информация получена от DNS-сервера регистратора доменных имен R01.
Команды по работе с доменными именами: 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.
Также в синтаксисе некоторых команд мы будем использовать основные DNS записи для доменного имени (A, AAAA, MX, NS, SOA, TXT, CNAME, PTR), ниже расшифруем, что означает каждая из них.
Зарегистрировать домен Вы можете здесь.
Основные DNS записи для домена
Все владельцы доменов могут зайти в свой рабочий кабинет у хостинг-провайдера (или регистратора доменных имен) и посмотреть записи для своего домена, оформленные, как правило, в виде таблицы, которая содержит следующие поля:
Существуют следующие типы записей:
Команда dig
Одна из основных команд Linux для работы с доменами — это dig (domain information groper). Утилита предоставляет возможность узнать о домене наиболее полную информацию, например, IP адрес, который привязан к данному доменному имени и еще ряд полезных для системного администратора параметров. Синтаксис команды dig следующий:
dig [@сервер] [имя домена] [тип записи] [флаги], где:
Ниже укажем основные флаги утилиты dig:
Дополнительно, могут быть использованы следующие опции для команды dig:
Мы показали только часто употребляемые флаги и опции команды dig, для получения полной информации по данному вопросу советуем воспользоваться командой:
Сейчас приведем практические примеры использования утилиты dig. Самый простой случай применения dig:
Например, введем в терминале:
Как понять результаты выполнения этой команды? Информация условно поделена на три секции:
Если вы хотите получить только основные данные по домену, то стоит задать сокращенный запрос следующей командой:
При использовании флага +noall будет отключен вывод на экран информации всех трех секций:
Если вы хотите увидеть информацию только из секции ANSWER SECTION, то выполните следующую команду:
При необходимости получить такого рода информацию по нескольким доменам сразу, советуем создать специальный файл sites.txt в редакторе nano и занести туда доменные имена нужных сайтов, например:
Далее следует выполнить команду в терминале:
Теперь попробуем получить определенные типы записей DNS (A, MX, NS, TXT и т.д.), для этого выполняем команду dig, применяя следующие флаги, например, для типа записи «почтовый сервер»:
Или же, если мы хотим получить ответ только для третьей секции утилиты dig:
Сейчас попробуем указать конкретный сервер в синтаксисе команды dig (без указания сервера, утилита использует информацию из файла /etc/resolv.conf). Приведем пример с публичным сервером google.com:
Попытаемся узнать, через какие DNS сервера идет запрос для получения информации о домене (команда трассировки в Linux):
Для проверки синхронизации зоны со всеми NS введем команду:
Команда nslookup
Эта команда также позволяет получить информацию по домену или по IP адресу. Основной синтаксис написания nslookup:
nslookup [опции] [доменное имя] [сервер]
где [сервер] — указывать необязательно.
Самый простой пример использования nslookup приведем ниже:
Можем выполнить и обратную задачу — по IP адресу узнать доменное имя сайта.
Ниже приведем основные опции команды nslookup:
Приведем примеры команды, с использованием опции type (тип записи), например, для получения записей типа NS, MX, TXT, SOA и т.д.:
Техническую информацию о домене можно получить в ответе, запустив команду nslookup с параметром для типа записи SOA:
Команда whois
Whois — это сервис, который позволяет узнать всю информацию о владельце домена. В ОС Linux эту команду можно вводить прямо в терминале. В CentOS 7 данная служба не установлена «по умолчанию», поэтому необходимо ее установить:
Итак, посмотрим всю информацию о владельце домена freehost.com.ua (ниже приведена только первая часть скриншота для примера):
Для изучения всех параметров команды whois выполните:
Команда ping
Команда ping известна всем пользователям сети, которые сталкивались с проблемами с соединением. Ping служит для того, чтобы узнать, есть ли связь с удаленным узлом сети, используя протокол ICMP (Internet Control Message Protocol). Принцип действия утилиты простой: на удаленный хост передается пакет с данными ICMP, с целью получить пакет с ответом — если он приходит, то удаленный узел считается доступным.
Синтаксис данной команды:
ping [опции] [адрес удаленного узла]
На скриншотах ниже показаны простые примеры использования команды ping:
Команда ping может исполняться достаточно долго, для выхода из этого режима необходимо нажать комбинацию клавиш: ctrl+c.
Ниже приведем некоторые опции утилиты ping с примерами:
Команда host
Еще одна команда для работы с DNS — это host. Она предназначена для получения информации о доменном имени, например, чтобы по имени домена узнать IP адрес:
Данную команду можно использовать со следующими опциями, например:
Заключение
В данной статье мы рассказали нашим читателям, как работать с системой доменных имён (DNS) с помощью команд host, nslookup, dig, whois, ping. В нашем материале приведены практические задачи, которые может решать системный администратор или пользователь Linux в своей ежедневной работе, применяя эти утилиты.
Примеры DNS запросов командой host
Host — это простая утилита для выполнения поисков по DNS. Она обычно используется для преобразования имён в IP адреса и для обратных преобразований IP адресов в доменные имена. Она также может использоваться для просмотра списка и проверки различных типов DNS записей, таких как NS и MX, тестировать правильность настройки DNS сервера и выявления связанных с DNS проблем.
Как узнать IP адрес домена в Linux
Это самый простой пример команды host, который вы можете запустить, просто укажите доменное имя, такое как zalinux.ru для получения IP адреса сервера, где размещён этот сайт:

Как в host получить только IP адрес сайта без информации по почтовом сервере
По умолчанию команда host получает информацию о следующих типах DNS записей: A, AAAA, и MX.
Выведет IPv4, IPv6 и MX записи:
Если вам нужен только IP адрес сайта без другой информации, то с помощью опции -t вы можете явно указать желаемую для получения запись.
Например, чтобы показать только IPv4:
Чтобы показать только IPv6:
Кстати, о видах DNS записей и их функциях смотрите статью «Введение в DNS терминологию, компоненты и концепции».
Как узнать Сервера Имён домена
Сервера имён, они также называются Name Servers или просто NS, можно узнать для домена с помощью опции -t ns:
Поиск CNAME записей
Для поиска CNAME записей домена запустите:
Поиск MX записей домена
Чтобы узнать MX записи домена запустите команду вида:
Поиск TXT записей
Для просмотра TXT записей любого домена запустите команду:
Поиск SOA записей домена
Для получения записи SOA домена используйте команду:
С помощью опции -C можно проверить непротиворечивость: хост будет запрашивать записи SOA для имени зоны со всех перечисленных доверенных серверов имён для этой зоны. Список серверов имён определяется записями NS, найденными для зоны.
DNS запрос к определённому серверу имён
По умолчанию сервера имён для запроса берутся из файла /etc/resolv.conf, но вы можете указать любой другой DNS сервер — просто напишите его после имени домена:
Поиск всех DNS записей домена
В программе host есть несколько способов вывести информацию о сразу всех DNS записях домена, причём они немного различаются выводом.
Найти все DNS записи можно опцией -t (устанавливает тип запрашиваемой записи) со значением ANY (любое):


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

Вы можете использовать любой из этих вариантов в зависимости от того, какой из них ближе к вашим целям.
Как узнать TTL у DNS записи
Чтобы узнать TTL для DNS записей домена, используйте команду следующего вида:
Использование IPv4 или IPv6
Опции -4 и -6 включают принудительное использование для транспортировки запроса, соответственно, только IPv4 или только IPV6:
Выполнение не-рекурсивны запросов
Опция -r выполняет не-рекурсивные запросы, установка этой настройки очищает RD (recursion desired — рекурсия желательна), бит в запросе, который делает host.
Как выполнить DNS запрос по TCP протоколу
Опции -T и -U могут включать принудительное использование протоколов. Соответственно TCP и UDP.
По умолчанию когда host делает запросы, она использует UDP. Опция -T делает так, что программа при запросах к серверу имён начинает использовать TCP соединения.
Протокол TCP выбирается автоматически для запросов, которые это требуют, для таких, как запросы zone transfer (AXFR). Запросы типа ANY по умолчанию используют TCP, но принудительно могут быть установлены на UDP если используется опция -U.
Изменение тайм-аута DNS запросов
Опция -w означает «ждать вечно»: она делает тайм-аут запроса максимально возможным.
С помощью опции -W СЕКУНДЫ устанавливает количество секунд, которое нужно ожидать ответ. Если значение меньше единицы, то время ожидания устанавливается на 1 секунду.
По умолчанию host ждёт по 5 секунд для UDP ответов и 10 секунд для TCP подключений.
Поддержка IDN
Если программа host была собрана с поддержкой IDN (internationalized domain name — интернационализированных доменных имён), она может принимать и отображать доменные имена при написании которых используются не-ASCII символы. host соответствующим образом преобразует кодировку символов доменного имени перед отправкой запроса на DNS-сервер или отображением ответа с сервера. Если по какой-то причине вы хотите отключить поддержку IDN, определите переменную среды IDN_DISABLE. Поддержка IDN отключена, если переменная установлена во время работы host.







































