Host команда в linux

Обновлено: 07.07.2024

Еще один метод преобразования имен заключается в использовании локальной базы данных имен хостов, подобно тому, как это делалось на заре сети Internet. Файл /etc/hosts содержит список имен хостов с соответствующими IP-адресами. В листинге 4.3 приводится пример файла /etc/hosts для клиента на базе ОС Linux. В нем должны содержаться имя вашей машины и ее IP-адрес, а также IP-адрес петли 127.0.0.1 для служебных целей. Кроме того, если имеются какие-либо удаленные хосты, к которым периодически подключается ваш сервер на ОС Linux, их IP-адреса также желательно указать в файле /etc/hosts . Теперь при каждом обращении к этим хостам у Linux-сервера уже будут их IP-адреса; таким образом, необходимость в выполнении DNS-запросов отпадает. К тому же это намного ускоряет установление соединения.

В первой и второй строках указываются IP-адреса для локального Linux-сервера. В строках 3–5 представлены IP-адреса для наиболее часто запрашиваемых машин вашей сети. Благодаря этому ускоряется доступ к ним c сервера на базе ОС Linux, по сравнению с использованием системы DNS.

Имя localhost

Во всех компьютерах с ОС Linux осуществляется поддержка имени localhost . Этому имени всегда соответствует IP-адрес 127.0.0.1 , который присваивается специальному сетевому устройству типа "петля". Эти имя и адрес позволяют внутренним процессам взаимодействовать с другими процессами в этой же системе по сетевым протоколам. Многие программы даже сконфигурированы на использование имени localhost . Изменение этого имени или соответствующего ему IP-адреса может повлиять на работу этих программ.

Файл преобразования DNS

В файле /etc/host.conf определяются методы и порядок преобразования имен ОС Linux. В листинге 4.4 показан пример файла /etc/host.conf .

В первой строке указывается порядок преобразования имен хостов. Здесь операционной системе Linux указывается, что в первую очередь она должна обращаться к файлу /etc/hosts и искать хост там, а затем попытаться преобразовать имя с помощью системы DNS (bind), если не удалось этого сделать с помощью /etc/hosts .

Утилиты клиента DNS в ОС Linux

В помощь системному администратору для ОС Linux было написано множество утилит, призванных облегчить для DNS поиск информации об удаленных хостах и сетях. Для UNIX-систем организацией Internet Software Consortium был создан программный пакет Berkeley Internet Name Domain (BIND), в который вошли три наиболее полезные, с точки зрения автора, и широко используемые утилиты: host , nslookup и dig . Эти программы распространяются совместно с программным обеспечением, входящим в большинство дистрибутивов ОС Linux. В Red Hat и Mandrake Linux эти программы поставляются в виде пакетов RPM.

Утилита host

Программа host производит простейшее преобразование имени с помощью DNS. Формат команды host следующий:

По умолчанию команда host пытается получить IP-адрес для имени, указанного как host , с помощью DNS-сервера, определенного в файле /etc/resolv.conf . Если в командной строке указан server , то по умолчанию команда host будет использовать его в качестве DNS-сервера. Добавляя дополнительные параметры в командной строке, можно модифицировать работу команды host . Все эти параметры указаны в табл. 4.5.

Параметр -l может использоваться для поиска информации обо всех хостах в домене. Очень часто вместе с ним используется параметр -t для того, чтобы отфильтровать информацию по типу (например, -t MX возвращает только записи МХ для домена). К сожалению, в настоящее время из соображений безопасности использование параметра -l затруднено, так как большинство DNS-серверов отказывает в предоставлении информации о хостах из своих баз данных. Если же информация запрашивается от удаленного или загруженного DNS-сервера (или через низкоскоростное соединение), то можно использовать параметр -w . С его помощью программа host принудительно ожидает ответа на запрос. По умолчанию время ожидания составляет около минуты.

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

Это весьма удобно при определении того, правильно ли ваш DNS-сервер кэширует ответы DNS. Во-первых, попытайтесь задать параметр -r . Если никакой информации об имени хоста нет, то от локального DNS-сервера ответ не будет получен. Затем задайте команду без параметра -r . Здесь должен быть получен нормальный ответ, так как локальному DNS-серверу разрешено получать данные от других серверов DNS. Далее еще раз попробуйте команду host с опцией -r . Теперь полученная информация должна в точности совпадать с данными, полученными в результате предыдущей попытки. Это означает, что DNS-сервер на этот раз почерпнул из кэша информацию, которая относилась к предыдущей попытке. Если никакой информации не получено, значит, локальный DNS-сервер не скэшировал предыдущий ответ. Тогда вы должны заметить значительное замедление при получении ответа на запрос, так как он делается по сети, а не берется из кэша.

По умолчанию команда host попытается вывести результаты своей работы в удобном для чтения формате. Например, как это показано в листинге 4.5. Если же задана опция -v , то вывод имеет вид исходных записей DNS. При отладке работы системы DNS это может оказаться полезным.

Host — это простая утилита для выполнения поисков по DNS. Она обычно используется для преобразования имён в IP адреса и для обратных преобразований IP адресов в доменные имена. Она также может использоваться для просмотра списка и проверки различных типов DNS записей, таких как NS и MX, тестировать правильность настройки DNS сервера и выявления связанных с DNS проблем.

Как узнать IP адрес домена в Linux


Как в host получить только IP адрес сайта без информации по почтовом сервере

По умолчанию команда host получает информацию о следующих типах DNS записей: A, AAAA, и MX.

Выведет IPv4, IPv6 и MX записи:

Если вам нужен только IP адрес сайта без другой информации, то с помощью опции -t вы можете явно указать желаемую для получения запись.

Например, чтобы показать только IPv4:

Чтобы показать только IPv6:

Как узнать Сервера Имён домена

Сервера имён, они также называются 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 (любое):


Второй вариант — использовать опцию -a, которая обычно является эквивалентом -v -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 секунду.

Поддержка IDN

Если программа host была собрана с поддержкой IDN (internationalized domain name — интернационализированных доменных имён), она может принимать и отображать доменные имена при написании которых используются не-ASCII символы. host соответствующим образом преобразует кодировку символов доменного имени перед отправкой запроса на DNS-сервер или отображением ответа с сервера. Если по какой-то причине вы хотите отключить поддержку IDN, определите переменную среды IDN_DISABLE. Поддержка IDN отключена, если переменная установлена во время работы host.

Команда хоста Linux используется для определения IP-адреса домена. Его также можно использовать для поиска доменного имени для IP-адреса.

Это руководство покажет вам, как использовать наиболее распространенные ключи с командой host.

Команда Host

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

Чтобы получить список, введите в окне терминала следующее:

Будут отображены следующие результаты:

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

Вы можете узнать больше о команде хоста, прочитав страницу руководства. Просто введите следующее в окне терминала:

Получить IP-адрес для доменного имени

Чтобы вернуть IP-адрес для доменного имени, просто введите следующую команду:

Результаты от команды хоста будут следующими:

Получить доменное имя с IP-адреса

Противоположностью возврата IP-адреса из доменного имени является возвращение доменного имени из IP-адреса.

Вы можете сделать это, набрав в окне терминала следующее:

Результаты приведены ниже:

По умолчанию команда host возвращает достаточно информации, но вы можете получить более подробный вывод, используя параметр -d или -v следующим образом:

Результаты приведенной выше команды показывают домен, который был найден вместе с любыми результатами. Он также возвращает подробности SOA для домена.

Вернуть детали SOA для домена

SOA расшифровывается как Start Of Authority. Если вы регистрируете доменное имя, а затем размещаете этот домен в компании веб-хостинга, компания веб-хостинга должна поддерживать SOA для этого домена. Это обеспечивает способ отслеживания доменных имен.

Чтобы узнать подробности SOA для домена, введите следующую команду:

Например, введите следующее в окне терминала:

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

  • Основной сервер имен
  • Ответственная сторона за домен
  • Временная метка, которая изменяется при обновлении домена
  • Количество секунд до обновления зоны
  • Количество секунд до неудачного обновления должно быть повторено
  • Верхний предел в секундах до того, как зона больше не считается авторитетной
  • Отрицательный результат ТТЛ.

Резюме

Очевидно, есть много других ключей, таких как -l, который предоставляет листинг, и -T, который ищет, используя TCP/IP вместо UDP.

Вы обнаружите, что многие веб-серверы будут отклонять эти типы запросов.

В общем, вам, вероятно, нужно будет использовать команду host только для возврата либо IP-адреса для доменного имени, либо доменного имени для IP-адреса.


Host — это простая утилита для выполнения поисков по DNS. Она обычно используется для преобразования имён в IP адреса и для обратных преобразований IP адресов в доменные имена. Она также может использоваться для просмотра списка и проверки различных типов DNS записей, таких как NS и MX, тестировать правильность настройки DNS сервера и выявления связанных с DNS проблем.

Как узнать IP адрес домена в Linux


Как в 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 (любое):



Второй вариант — использовать опцию -a, которая обычно является эквивалентом -v -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 была собрана с поддержкой IDN (internationalized domain name — интернационализированных доменных имён), она может принимать и отображать доменные имена при написании которых используются не-ASCII символы. host соответствующим образом преобразует кодировку символов доменного имени перед отправкой запроса на DNS-сервер или отображением ответа с сервера. Если по какой-то причине вы хотите отключить поддержку IDN, определите переменную среды IDN_DISABLE. Поддержка IDN отключена, если переменная установлена во время работы host.

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