Как узнать имя хоста linux

Обновлено: 05.07.2024

Имя хоста — это уникальная метка, которая идентифицирует машину в сети.

Должна существовать таблица соответствия между hostname и IP адресом это нужно для для маршрутизации пакетов.

Хост может иметь несколько имён, но предпочтительным является вариант, когда имя одно.

Существует три класса hostname : static , pretty и transient .

Так как CentOS 7 поддреживает только Fully Qualified Domain Names (FQDNs), советую тщательно проверить hostname, который вы планируете использовать.

  • Строчные буквы от a до z
  • Цифры от 0 до 9
  • Точки и дефисы
  • Hostnames может быть от 2 до 63 символов
  • Hostnames должен начинаться и заканчиваться цифрой или буквой

Узнать имя своего хоста

Существует несоколько способов узнать имя своего хоста.

Часто для этого достаточно просто посмотреть в терминал

Пример моего терминала

[andrei@ localhost Downloads]$

andrei - это имя пользователя

localhost - это имя хоста

Downloads - имя текущей директории

Посмотреть порядок можно выполнив

W - Working Directory - Рабочая диретория

Static hostname: localhost.localdomain Icon name: computer-vm Chassis: vm Machine ID: 35e254eda578c54084b96e06d5f285cf Boot ID: afb44fef8d764f30bb89550849b02fde Virtualization: kvm Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-1160.36.2.el7.x86_64

Изменить имя хоста

С помощью команды hostname

hostname dns-server
hostname

Если заново открыть терминал изменения будут видны в командной строке.

Это имя хоста сохранится только до перезагрузки системы

Если выполнить hostnamectl видно, что помянелось только динамическое имя хоста

Если изучить файл hostname , также можно увдиеть отсутствие изменений.

С помощью hostnamectl

Это постоянное изменение. Т.е. новое имя хоста имеет класс persistent.

pretty name

Чтобы задать pretty name нужно воспользоваться кавычками

Появилось pretty hostname а static hostname такое же , но без запрещенных символов

hosts

Изучить информацию об именах других хостов можно в файле hosts

В моём примере в сети есть два хоста:

Зайдём на него с помощью ssh и посмотрим, есть ли у него записи об именах других хостов в сети.

Для наглядности я теперь буду показываеть приглашение терминала чтобы было видно имя хоста.

Выполним ping по IP

PING 192.168.56.149 (192.168.56.149) 56(84) bytes of data. 64 bytes from 192.168.56.149: icmp_seq=1 ttl=64 time=0.650 ms 64 bytes from 192.168.56.149: icmp_seq=2 ttl=64 time=0.731 ms ^C --- 192.168.56.149 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1000ms rtt min/avg/max/mdev = 0.650/0.690/0.731/0.048 ms

По IP пингуется успешно

И ping по hostname

Это неудивительно - ведь в файле hosts нет про него никаких записей. Проверим содержимое:

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

Теперь всё работает

alias

Чтобы не писать длинные имена хостов можно придумать alias

FQDN - Fully Qualified Domain Name - полностью определённое имя домена.

Хоть пинг и был по алиасу, ответ идёт как от static fqdn

В таком случае ответ будет идти от vbdns

PING vbdns (192.168.56.149) 56(84) bytes of data. 64 bytes from vbdns (192.168.56.149): icmp_seq=1 ttl=64 time=0.721 ms 64 bytes from vbdns (192.168.56.149): icmp_seq=2 ttl=64 time=1.01 ms ^C --- vbdns ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1004ms rtt min/avg/max/mdev = 0.721/0.866/1.012/0.148 ms

Примеры команд Linux «hostname»

Изучение

Команда «hostname» в Linux используется для проверки системного имени, присвоенного машине Linux. Однако эту команду также можно сочетать с другими разными флагами для получения разных выходных данных. В этой статье мы попытаемся осветить некоторые примеры использования команды hostname в Linux.

Общий синтаксис команды «hostname»

Общий синтаксис команды hostname в Linux показан ниже:

Здесь вы можете заменить «параметр» любыми флагами или параметрами, используемыми с командой «hostname». Некоторые из этих флагов или параметров также описаны в примерах ниже. Однако, если вы хотите выполнить простую команду «hostname», вы также можете сделать это без указания каких-либо параметров.

Примеры команды Linux «hostname»

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

Пример № 1: проверьте имя хоста вашей системы Linux

Эта команда чаще всего используется для проверки имени хоста вашей системы Linux, выполняя ее так, как показано ниже:

Имя хоста нашей системы Linux показано на следующем изображении:

Имя хоста нашей системы Linux показано на следующем изображении

Пример № 2: Сравните IP-адрес с именем хоста вашей системы Linux

Вы также можете проверить IP-адрес, назначенный вашему компьютеру Linux, по его имени хоста, используя команду «hostname» с параметром «-i» следующим образом:

IP-адрес по имени хоста нашей системы Linux показан на изображении ниже:

IP-адрес по имени хоста нашей системы Linux показан на изображении ниже

Пример № 3: Проверьте полное доменное имя вашей системы Linux

Если вы хотите проверить полное доменное имя вашей системы Linux. Вы можете использовать флаг «-f» с командой «hostname» следующим образом:

Полное доменное имя нашей системы Linux показано на изображении ниже:

Полное доменное имя нашей системы Linux показано на изображении ниже

Пример № 4: Проверьте псевдоним имени хоста вашей системы Linux

Иногда пользователи также устанавливают псевдонимы для имен хостов своих систем. Если вы хотите сравнить псевдоним с именем хоста вашей системы (если он существует), вы можете использовать параметр «-a» с командой «hostname» следующим образом:

Поскольку мы не настроили псевдоним для имени хоста нашей системы, нам был предоставлен пустой вывод, как показано на изображении ниже:

Поскольку мы не настроили псевдоним для имени хоста нашей системы, нам был предоставлен пустой вывод

Если в вашем имени хоста есть точка, то короткое имя хоста относится к части вашего имени хоста перед этой точкой. Вы можете отобразить короткое имя хоста вашей системы Linux, используя флаг «-s» с командой «hostname» следующим образом:

Поскольку у нас не было точки в имени хоста нашей системы. Поэтому короткое имя хоста нашей системы Linux совпадает с нашим фактическим именем хоста. Которое показано на изображении ниже:

Поскольку у нас не было точки в имени хоста нашей системы

Если вы хотите изменить имя хоста вашей системы Linux, вы также можете сделать это, используя команду «hostname» следующим образом:

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

Вы можете подтвердить, было ли установлено новое имя хоста для вашей системы или нет, выполнив команду, показанную ниже:

Из вывода вышеупомянутой команды совершенно очевидно, что наше имя хоста было успешно изменено, как показано на следующем изображении:

Из вывода вышеупомянутой команды совершенно очевидно

Заключение

В этой статье мы обсудили шесть различных примеров использования команды hostname в Linux. Чтобы узнать больше об использовании этой команды в Linux, вы можете запустить команду hostname —help в терминале вашей системы.


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

Сетевые команды в примерах в Linux

Примеры использования сетевых команд в Linux

Давайте посмотрим некоторые примеры различных сетевых команд в Linux. Некоторые из них довольно элементарные например пинг и телнет, а некоторые являются более мощными, например Nslookup и NetStat. Когда вы использовали эти команды в комбинации вы можете получить все, что вы ищете , например, имя хоста , конечные соединения точек , состояние соединения и т.д.

Имя хоста (hostname) без вариантов отображает хозяина машины. По этому чтобы проверить кто владелец выполните команду:

Он посылает пакеты информации в определенный пользователем источник. Если будут получены пакеты , устройство назначает и посылает пакеты обратно . Ping можно использовать для двух целей

1 . Чтобы гарантировать, что сетевое соединение может быть установлено.

Можно задать время перед отправкой пакета, например подождать 3 секунды перед отправкой следующего пакета.

Чтобы проверить локальный интерфейс существует несколько способов:

Можно так же посылать N количество пакетов и после чего завершить работу, для этого:

Так же можно узнать версию самого пинга, для этого выполните команду:

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

Можно изменить размер передаваемого пакета (допустим с 56 на 120), а сделать это можно так:

Мы так же можем изменять длительность выполнение команды пинг, например нам нужно пинговать сервис 15 секунд, то для этого выполните:

Не прервав команду пинг, вы сможете увидеть статистику выполнения, нужно нажать CTRL + |

Ifconfig

Посмотреть конфигурацию сети , он отображает текущую конфигурацию сетевого адаптера . Это удобно, чтобы определить, если вы transmit (ТХ ) или receive (RX) ошибки.

ifconfig

traceroute

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

Можно вывести информацию о всех сетевых картах что подключены, для этого выполните:

netstat

Самая полезная и очень универсальная для нахождения подключений к и от хозяина. Вы можете узнать все о многоадресной группы (multicast groups) сети выполнив:

Чтобы увидеть все соединения в том числе TCP и UDP выполните команду:

Параметр что выполнена программа будет отображать только соединение TCP:

Параметр что выполнена программа будет отображать только соединение UDP:

nslookup

Если вы знаете IP-адрес он будет отображать как имя хоста. Чтобы найти все IP-адреса для данного доменного имени, команда Nslookup используется. Вы должны быть подключение к Интернету для этой утилиты. Пример использования:

Вы также можете использовать Nslookup преобразовать имя хоста в IP-адрес и с IP-адреса из имени хоста.

finger

Посмотреть информацию о пользователях, отображает имя пользователя логин, настоящее имя, имя терминала и статус записи. это довольно старая команда для Linux и редко используемые в настоящее время.

telnet

Подключается хозяина назначения по протоколу Telnet, если телнет соединение установить на любом порту означает соединения между двумя хостами работает нормально.

Обычно он используется для того чтобы узнать жив ли хост ​​или сетевое соединение в порядке.

Существуют Linux-команды, которые всегда должны быть под рукой у системного администратора. Эта статья посвящена 7 утилитам, предназначенным для работы с сетью.

Этот материал — первый в серии статей, построенных на рекомендациях, собранных от множества знатоков Linux. А именно, я спросил у наших основных разработчиков об их любимых Linux-командах, после чего меня буквально завалили ценными сведениями. А именно, речь идёт о 46 командах, некоторые из которых отличает тот факт, что о них рассказало несколько человек.


В данной серии статей будут представлены все эти команды, разбитые по категориям. Первые 7 команд, которым и посвящена эта статья, направлены на работу с сетью.

Команда ip

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

Синтаксис этой команды выглядит так:


Самое важное тут — это <OBJECT> (подкоманда). Здесь можно использовать, помимо некоторых других, следующие ключевые слова:

  • address — адрес протокола (IPv4 или IPv6) на устройстве.
  • tunnel — IP-туннель.
  • route — запись таблицы маршрутизации.
  • rule — правило в базе данных политики маршрутизации.
  • vrf — управление виртуальными устройствами маршрутизации и перенаправления трафика.
  • xfrm — управление IPSec-политикой.

Вывод IP-адресов, назначенных интерфейсу на сервере:


Назначение IP-адреса интерфейсу, например — enps03 :


Удаление IP-адреса из интерфейса:


Изменение статуса интерфейса, в данном случае — включение eth0 :


Изменение статуса интерфейса, в данном случае — выключение eth0 :


Изменение статуса интерфейса, в данном случае — изменение MTU eth0 :


Изменение статуса интерфейса, в данном случае — перевод eth0 в режим приёма всех сетевых пакетов:


Добавление маршрута, используемого по умолчанию (для всех адресов), через локальный шлюз 192.168.1.254, который доступен на устройстве eth0 :


Добавление маршрута к 192.168.1.0/24 через шлюз на 192.168.1.254:


Добавление маршрута к 192.168.1.0/24, который доступен на устройстве eth0 :


Удаление маршрута для 192.168.1.0/24, для доступа к которому используется шлюз 192.168.1.254:


Вывод маршрута к IP 10.10.1.4:

Команда ifconfig

Команда ifconfig до определённого времени представляла собой один из основных инструментов, используемых многими системными администраторами для настройки сетей и решения сетевых проблем. Теперь ей на замену пришла команда ip , о которой мы только что говорили. Но если вас, всё же, интересует эта команда, можете взглянуть на данный материал.

Команда mtr

MTR (Matt's traceroute) — это программа, работающая в режиме командной строки, представляющая собой инструмент для диагностики сетей и устранения сетевых неполадок. Эта команда совмещает в себе возможности ping и traceroute . Она, как traceroute , может выводить сведения о маршруте, по которому сетевые данные идут от одного компьютера к другому. Она выводит массу полезных сведений о каждом шаге маршрутизации, например — время ответа системы. Благодаря использованию команды mtr можно получить довольно подробные сведения о маршруте, можно обнаружить устройства, которые вызывают проблемы при прохождении данных по сети. Если, например, наблюдается рост времени ответа системы, или рост числа потерянных пакетов, это позволяет с уверенностью говорить о том, что где-то между исследуемыми системами возникла проблема с сетевым соединением.

Синтаксис команды выглядит так:


Рассмотрим несколько распространённых способов применения mtr .

Если вызвать эту команду, указав лишь имя или адрес хоста — она выведет сведения о каждом шаге маршрутизации. В частности — имена хостов, сведения о времени их ответа и о потерянных пакетах:


Вот — вариант использования mtr , когда вместо имён хостов выводятся их IP-адреса (речь идёт о ключе -g , благодаря которому вместо имён выводятся числовые IP-адреса):


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


А так можно получить отчёт, содержащий результаты работы mtr :


Вот — ещё один вариант получения такого отчёта:


Для того чтобы принудительно использовать TCP вместо ICMP — надо поступить так:


А вот так можно использовать UDP вместо ICMP:


Вот — вариант команды, где задаётся максимальное количество шагов маршрутизации:


Так можно настроить размер пакета:


Для вывода результатов работы mtr в формате CSV используется такая команда:


Вот — команда для вывода результатов работы mtr в формате XML:

Команда tcpdump

Утилита tcpdump предназначена для захвата и анализа пакетов.

Установить её можно так:


Прежде чем приступить к захвату пакетов, нужно узнать о том, какой интерфейс может использовать эта команда. В данном случае нужно будет применить команду sudo или иметь root-доступ к системе.


Если нужно захватить трафик с интерфейса eth0 — этот процесс можно запустить такой командой:


Или — такой, с указанием (через ключ -c ) количества пакетов, которые нужно захватить:

▍ Захват трафика, идущего к некоему хосту и от него

Можно отфильтровать трафик и захватить лишь тот, который приходит от определённого хоста. Например, чтобы захватить пакеты, идущие от системы с адресом 8.8.8.8 и уходящие к этой же системе, можно воспользоваться такой командой:


Для захвата трафика, идущего с хоста 8.8.8.8, используется такая команда:


Для захвата трафика, уходящего на хост 8.8.8.8, применяется такая команда:

▍ Захват трафика, идущего в некую сеть и из неё

Трафик можно захватывать и ориентируясь на конкретную сеть. Делается это так:


Ещё можно поступить так:


Можно, кроме того, фильтровать трафик на основе его источника или места, в которое он идёт.

Вот — пример захвата трафика, отфильтрованного по его источнику (то есть — по той сети, откуда он приходит):


Вот — захват трафика с фильтрацией по сети, в которую он направляется:

▍ Захват трафика, поступающего на некий порт и выходящего из некоего порта

Вот пример захвата трафика только для DNS-порта по умолчанию (53):


Захват трафика для заданного порта:


Захват трафика для всех портов кроме 80 и 25:

Команда netstat

Инструмент netstat используется для вывода сведений о сетевых соединениях и таблицах маршрутизации, данных о работе сетевых интерфейсов, о masquerade-соединениях, об элементах групп многоадресной рассылки. Эта утилита является, как и ifconfig , частью пакета net-tools . В новом пакете iproute2 для достижения тех же целей используется утилита ss .

Если в вашей системе netstat отсутствует, установить эту программу можно так:


Ей, в основном, пользуются, вызывая без параметров:


В более сложных случаях её вызывают с параметрами, что может выглядеть так:


Можно вызывать netstat и с несколькими параметрами, перечислив их друг за другом:


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


Для вывода сведений обо всех TCP-портах применяется такой вариант команды:


Если нужны данные по UDP-портам — утилиту вызывают так:


Список портов любых протоколов, ожидающих соединений, можно вывести так:


Список TCP-портов, ожидающих соединений, выводится так:


Так выводят список UDP-портов, ожидающих соединений:


А так — список UNIX-портов, ожидающих соединений:


Вот — команда для вывода статистических сведений по всем портам вне зависимости от протокола:


Так выводятся статистические сведения по TCP-портам:


Для просмотра списка TCP-соединений с указанием PID/имён программ используется такая команда:


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

Команда nslookup

Команда nslookup используется для интерактивного «общения» с серверами доменных имён, находящимися в интернете. Она применяется для выполнения DNS-запросов и получения сведений о доменных именах или IP-адресах, а так же — для получения любых других специальных DNS-записей.

Рассмотрим распространённые примеры использования этой команды.

Получение A-записи домена:


Просмотр NS-записей домена:


Выяснение сведений о MX-записях, в которых указаны имена серверов, ответственных за работу с электронной почтой:


Обнаружение всех доступных DNS-записей домена:


Проверка A-записи для выяснения IP-адресов домена — это распространённая практика, но иногда нужно проверить то, имеет ли IP-адрес отношение к некоему домену. Для этого нужно выполнить обратный просмотр DNS:

Команда ping

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


В данном случае работу команды ping можно остановить, воспользовавшись сочетанием клавиш CTRL+C . В противном случае она будет выполнять запросы до тех пор, пока её не остановят. После каждой ping-сессии выводятся сводные данные, содержащие следующие сведения:

  • Min — минимальное время, которое требуется на получение ответа от пингуемого хоста.
  • Avg — среднее время, которое требуется на получение ответа.
  • Max — максимальное время, которое требуется на получение ответа.

Обычно, если запустить команду ping в её простом виде, не передавая ей дополнительные параметры, Linux будет пинговать интересующий пользователя хост без ограничений по времени. Если нужно изначально ограничить количество ICMP-запросов, например — до 10, команду ping надо запустить так:


А для того чтобы увидеть лишь итоговый отчёт работы ping — можно воспользоваться ключом -q :


В системах с несколькими сетевыми интерфейсами можно задавать конкретный интерфейс, которым должна пользоваться команда ping . Например, есть компьютер, имеющий интерфейсы eth0 и eth1 . Если нужно, чтобы команда ping использовала бы интерфейс eth0 — надо запустить её так:


Или можно указать адрес интерфейса. В данном случае речь идёт об IP-адресе 10.233.201.45:


Применяя эту команду, можно указать и то, какую версию протокола IP использовать — v4 или v6:

▍ Destination Host Unreachable

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

▍ Request timed out

▍ Unknown host/Ping Request Could Not Find Host

Такой результат может указывать на то, что неправильно введено имя хоста, или хоста с таким именем в сети просто не существует.

О хорошем качестве связи между исследуемыми системами говорит уровень потери пакетов в 0%, а так же — низкое значение времени получения ответа. При этом в каждом конкретном случае время получения ответа варьируется, так как оно зависит от разных параметров сети. В частности — от того, какая среда передачи данных используется в конкретной сети (витая пара, оптоволокно, радиоволны).

Итоги

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

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