как узнать имя хоста linux
Примеры команд Linux «hostname»
Команда «hostname» в Linux используется для проверки системного имени, присвоенного машине Linux. Однако эту команду также можно сочетать с другими разными флагами для получения разных выходных данных. В этой статье мы попытаемся осветить некоторые примеры использования команды hostname в Linux.
Общий синтаксис команды «hostname»
Общий синтаксис команды hostname в Linux показан ниже:
Здесь вы можете заменить «параметр» любыми флагами или параметрами, используемыми с командой «hostname». Некоторые из этих флагов или параметров также описаны в примерах ниже. Однако, если вы хотите выполнить простую команду «hostname», вы также можете сделать это без указания каких-либо параметров.
Примеры команды Linux «hostname»
Чтобы узнать, как использовать команду hostname в Linux, вы можете просмотреть следующие примеры:
Пример № 1: проверьте имя хоста вашей системы Linux
Эта команда чаще всего используется для проверки имени хоста вашей системы Linux, выполняя ее так, как показано ниже:
Имя хоста нашей системы Linux показано на следующем изображении:
Пример № 2: Сравните IP-адрес с именем хоста вашей системы Linux
Вы также можете проверить IP-адрес, назначенный вашему компьютеру Linux, по его имени хоста, используя команду «hostname» с параметром «-i» следующим образом:
IP-адрес по имени хоста нашей системы Linux показан на изображении ниже:
Пример № 3: Проверьте полное доменное имя вашей системы Linux
Если вы хотите проверить полное доменное имя вашей системы Linux. Вы можете использовать флаг «-f» с командой «hostname» следующим образом:
Полное доменное имя нашей системы Linux показано на изображении ниже:
Пример № 4: Проверьте псевдоним имени хоста вашей системы Linux
Иногда пользователи также устанавливают псевдонимы для имен хостов своих систем. Если вы хотите сравнить псевдоним с именем хоста вашей системы (если он существует), вы можете использовать параметр «-a» с командой «hostname» следующим образом:
Поскольку мы не настроили псевдоним для имени хоста нашей системы, нам был предоставлен пустой вывод, как показано на изображении ниже:
Пример # 5: Проверьте короткое имя хоста вашей системы Linux
Если в вашем имени хоста есть точка, то короткое имя хоста относится к части вашего имени хоста перед этой точкой. Вы можете отобразить короткое имя хоста вашей системы Linux, используя флаг «-s» с командой «hostname» следующим образом:
Поскольку у нас не было точки в имени хоста нашей системы. Поэтому короткое имя хоста нашей системы Linux совпадает с нашим фактическим именем хоста. Которое показано на изображении ниже:
Пример # 6: Измените имя хоста вашей системы Linux
Если вы хотите изменить имя хоста вашей системы Linux, вы также можете сделать это, используя команду «hostname» следующим образом:
Здесь вам нужно будет заменить NewHostName любым желаемым новым именем хоста. Которое вы хотите настроить для своей системы Linux. Эта команда не будет выводить на терминал какие-либо данные после успешного выполнения.
Вы можете подтвердить, было ли установлено новое имя хоста для вашей системы или нет, выполнив команду, показанную ниже:
Из вывода вышеупомянутой команды совершенно очевидно, что наше имя хоста было успешно изменено, как показано на следующем изображении:
Заключение
В этой статье мы обсудили шесть различных примеров использования команды hostname в Linux. Чтобы узнать больше об использовании этой команды в Linux, вы можете запустить команду hostname —help в терминале вашей системы.
Что такое имя хоста в Linux и как его изменить?
Когда вы посещаете веб-сайт, вы вводите URL этого веб-сайта в свой браузер. Этот URL-адрес состоит из обычных слов, которые вы можете легко понять, например «technodor.info». За кулисами DNS- сервер связывает это имя с IP-адресом сервера. Эта система существует, потому что запоминание IP-адресов ужасно, и никто не будет этого делать. Хост-имена работают одинаково, только в локальной сети.
Когда вы даете компьютеру имя хоста, это обычное слово, которое вы понимаете и можете легко ввести, чтобы идентифицировать этот компьютер в своей сети. Подобно URL-адресу, вы можете заменить это имя хоста, где вы регулярно будете использовать IP-адрес. Это включает просмотр локальных веб-страниц и использование SSH. Если вы не используете локальный DNS- сервер, для его запуска требуется небольшая настройка.
Просмотреть свое имя хоста
Настройка имени хоста
Systemd
sudo hostnamectl set-hostname newname
Systemd позаботится о том, чтобы сбросить все для вас.
Метод старой школы
Есть две строки, которые вам нужно заботиться, и она должна выглядеть примерно так:
Файл хостов
sudo systemctl restart networking
Теперь вы можете получить доступ к своей новой записи через свое имя хоста. Попробуйте войти в SSH.
Если вам удалось подключиться, все настроено и работает правильно.
Найти hostname из IP Linux
Имена или ярлыки полезны, поскольку они позволяют нам отличить одну вещь или одного человека от другого. Даже имя человека, которое может не быть уникальным в глобальном масштабе, содержит набор символов, которые позволяют человеку отличаться от другого человека.
Точно так же компьютеры поддерживают метки или имена, которые помогают придать им уникальную идентичность в сети. Вот здесь и появляется имя хоста. Имя хоста — это набор буквенно-цифровых символов, уникальных для компьютерной сети, позволяющий устройствам связываться друг с другом.
Как правило, базовая технология, которая идентифицирует компьютер или устройство в сети, представляет собой набор чисел, известных как IP-адреса. Затем они сопоставляются с определенным именем, преобразованным в IP-адрес машины.
Однако в этом руководстве я покажу вам различные способы, которые вы можете использовать для получения имени хоста, связанного с определенным IP-адресом. Методы, обсуждаемые в этом руководстве, будут работать почти во всех Linux и Unix-подобных системах.
Разобравшись с этим, давайте погрузимся.
Метод 1: Ping
Самый простой способ получить имя хоста с IP-адреса — использовать команду ping. Ping — это простая, но мощная утилита командной строки, которая использует пакеты ECHO для связи с хостом.
ПРИМЕЧАНИЕ. Следующая команда работает только на компьютерах с Windows. Для Linux проверьте следующий метод.
Чтобы получить имя хоста с IP-адреса с помощью команды ping, используйте команду ниже:
Вот результат выполнения вышеуказанной команды:
Приведенная выше команда не всегда надежна; это часто работает только в том случае, если имя хоста доступно в файле hosts.
Метод 2: команда хоста
Второй и распространенный метод получения имени хоста из IP-адреса в Linux — это команда host. Этот простой инструмент является частью пакета dnsutil.
7 сетевых Linux-команд, о которых стоит знать системным администраторам
Существуют Linux-команды, которые всегда должны быть под рукой у системного администратора. Эта статья посвящена 7 утилитам, предназначенным для работы с сетью.
Этот материал — первый в серии статей, построенных на рекомендациях, собранных от множества знатоков Linux. А именно, я спросил у наших основных разработчиков об их любимых Linux-командах, после чего меня буквально завалили ценными сведениями. А именно, речь идёт о 46 командах, некоторые из которых отличает тот факт, что о них рассказало несколько человек.
В данной серии статей будут представлены все эти команды, разбитые по категориям. Первые 7 команд, которым и посвящена эта статья, направлены на работу с сетью.
Команда ip
Команда ip — это один из стандартных инструментов, который необходим любому системному администратору для решения его повседневных задач — от настройки новых компьютеров и назначения им IP-адресов, до борьбы с сетевыми проблемами существующих систем. Команда ip может выводить сведения о сетевых адресах, позволяет управлять маршрутизацией трафика и, кроме того, способна давать данные о различных сетевых устройствах, интерфейсах и туннелях.
Синтаксис этой команды выглядит так:
Самое важное тут — это (подкоманда). Здесь можно использовать, помимо некоторых других, следующие ключевые слова:
Вывод 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
Команда mtr
Синтаксис команды выглядит так:
Если вызвать эту команду, указав лишь имя или адрес хоста — она выведет сведения о каждом шаге маршрутизации. В частности — имена хостов, сведения о времени их ответа и о потерянных пакетах:
А следующий вариант команды позволяет выводить и имена, и IP-адреса хостов:
Так можно задать количество ping-пакетов, которые нужно отправить системе, маршрут к которой подвергается анализу:
А так можно получить отчёт, содержащий результаты работы mtr :
Вот — ещё один вариант получения такого отчёта:
Для того чтобы принудительно использовать TCP вместо ICMP — надо поступить так:
А вот так можно использовать UDP вместо ICMP:
Вот — вариант команды, где задаётся максимальное количество шагов маршрутизации:
Так можно настроить размер пакета:
Для вывода результатов работы mtr в формате CSV используется такая команда:
Вот — команда для вывода результатов работы mtr в формате XML:
Команда tcpdump
Утилита tcpdump предназначена для захвата и анализа пакетов.
Установить её можно так:
Прежде чем приступить к захвату пакетов, нужно узнать о том, какой интерфейс может использовать эта команда. В данном случае нужно будет применить команду sudo или иметь root-доступ к системе.
Если нужно захватить трафик с интерфейса eth0 — этот процесс можно запустить такой командой:
▍ Захват трафика, идущего к некоему хосту и от него
Можно отфильтровать трафик и захватить лишь тот, который приходит от определённого хоста. Например, чтобы захватить пакеты, идущие от системы с адресом 8.8.8.8 и уходящие к этой же системе, можно воспользоваться такой командой:
Для захвата трафика, идущего с хоста 8.8.8.8, используется такая команда:
Для захвата трафика, уходящего на хост 8.8.8.8, применяется такая команда:
▍ Захват трафика, идущего в некую сеть и из неё
Трафик можно захватывать и ориентируясь на конкретную сеть. Делается это так:
Ещё можно поступить так:
Можно, кроме того, фильтровать трафик на основе его источника или места, в которое он идёт.
Вот — пример захвата трафика, отфильтрованного по его источнику (то есть — по той сети, откуда он приходит):
Вот — захват трафика с фильтрацией по сети, в которую он направляется:
▍ Захват трафика, поступающего на некий порт и выходящего из некоего порта
Вот пример захвата трафика только для DNS-порта по умолчанию (53):
Захват трафика для заданного порта:
Захват только HTTPS-трафика:
Захват трафика для всех портов кроме 80 и 25:
Команда netstat
Если в вашей системе netstat отсутствует, установить эту программу можно так:
Ей, в основном, пользуются, вызывая без параметров:
В более сложных случаях её вызывают с параметрами, что может выглядеть так:
Можно вызывать netstat и с несколькими параметрами, перечислив их друг за другом:
Для вывода сведений обо всех портах и соединениях, вне зависимости от их состояния и от используемого протокола, применяется такая конструкция:
Для вывода сведений обо всех TCP-портах применяется такой вариант команды:
Если нужны данные по UDP-портам — утилиту вызывают так:
Список портов любых протоколов, ожидающих соединений, можно вывести так:
Список TCP-портов, ожидающих соединений, выводится так:
Так выводят список UDP-портов, ожидающих соединений:
А так — список UNIX-портов, ожидающих соединений:
Вот — команда для вывода статистических сведений по всем портам вне зависимости от протокола:
Так выводятся статистические сведения по TCP-портам:
Для просмотра списка TCP-соединений с указанием PID/имён программ используется такая команда:
Для того чтобы найти процесс, который использует порт с заданным номером, можно поступить так:
Команда nslookup
Команда nslookup используется для интерактивного «общения» с серверами доменных имён, находящимися в интернете. Она применяется для выполнения DNS-запросов и получения сведений о доменных именах или IP-адресах, а так же — для получения любых других специальных DNS-записей.
Рассмотрим распространённые примеры использования этой команды.
Получение A-записи домена:
Просмотр NS-записей домена:
Выяснение сведений о MX-записях, в которых указаны имена серверов, ответственных за работу с электронной почтой:
Обнаружение всех доступных DNS-записей домена:
Проверка использования конкретного DNS-сервера (в данном случае запрос производится к серверу имён ns1.nsexample.com ):
Проверка A-записи для выяснения IP-адресов домена — это распространённая практика, но иногда нужно проверить то, имеет ли IP-адрес отношение к некоему домену. Для этого нужно выполнить обратный просмотр DNS:
Команда ping
Команда ping — это инструмент, с помощью которого проверяют, на уровне IP, возможность связи одной TCP/IP-системы с другой. Делается это с использованием эхо-запросов протокола ICMP (Internet Control Message Protocol Echo Request). Программа фиксирует получение ответов на такие запросы и выводит сведения о них вместе с данными о времени их приёма-передачи. Ping — это основная команда, используемая в TCP/IP-сетях и применяемая для решения сетевых проблем, связанных с целостностью сети, с возможностью установления связи, с разрешением имён.
Эта команда, при простом способе её использования, принимает лишь один параметр: имя хоста, подключение к которому надо проверить, или его IP-адрес. Вот как это может выглядеть:
Обычно, если запустить команду ping в её простом виде, не передавая ей дополнительные параметры, Linux будет пинговать интересующий пользователя хост без ограничений по времени. Если нужно изначально ограничить количество ICMP-запросов, например — до 10, команду ping надо запустить так:
Или можно указать адрес интерфейса. В данном случае речь идёт об IP-адресе 10.233.201.45:
Применяя эту команду, можно указать и то, какую версию протокола IP использовать — v4 или v6:
В процессе работы с утилитой ping вы столкнётесь с различными результатами. В частности, это могут быть сообщения о нештатных ситуациях. Рассмотрим три таких ситуации.
▍ Destination Host Unreachable
Вероятной причиной получения такого ответа является отсутствие маршрута от локальной хост-системы к целевому хосту. Или, возможно, это удалённый маршрутизатор сообщает о том, что у него нет маршрута к целевому хосту.
▍ Request timed out
Если результат работы ping выглядит именно так — это значит, что локальная система не получила, в заданное время, эхо-ответов от целевой системы. По умолчанию используется время ожидания ответа в 1 секунду, но этот параметр можно настроить. Подобное может произойти по разным причинам. Чаще всего это — перегруженность сети, сбой ARP-запроса, отбрасывание пакетов фильтром или файрволом и прочее подобное.
▍ Unknown host/Ping Request Could Not Find Host
Такой результат может указывать на то, что неправильно введено имя хоста, или хоста с таким именем в сети просто не существует.
О хорошем качестве связи между исследуемыми системами говорит уровень потери пакетов в 0%, а так же — низкое значение времени получения ответа. При этом в каждом конкретном случае время получения ответа варьируется, так как оно зависит от разных параметров сети. В частности — от того, какая среда передачи данных используется в конкретной сети (витая пара, оптоволокно, радиоволны).
Итоги
Надеемся, вам пригодятся команды и примеры их использования, о которых мы сегодня рассказали. А если они вам и правда пригодились — возможно, вам будет интересно почитать продолжение этого материала.
hostname в CentOS
Введение
Имя хоста — это уникальная метка, которая идентифицирует машину в сети.
Должна существовать таблица соответствия между hostname и IP адресом это нужно для для маршрутизации пакетов.
Хост может иметь несколько имён, но предпочтительным является вариант, когда имя одно.
Так как CentOS 7 поддреживает только Fully Qualified Domain Names (FQDNs), советую тщательно проверить hostname, который вы планируете использовать.
Узнать имя своего хоста
Существует несоколько способов узнать имя своего хоста.
Часто для этого достаточно просто посмотреть в терминал
Пример моего терминала
[andrei@ localhost Downloads]$
Посмотреть порядок можно выполнив
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 видно, что помянелось только динамическое имя хоста
Static hostname: localhost.localdomain Transient hostname: dns-server Icon name: computer-vm Chassis: vm Machine ID: cff8a80b9c356243b5238452511a8ade Boot ID: 64d9ddab85ec4c219ac46c6a2940e628 Virtualization: kvm Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-1160.42.2.el7.x86_64 Architecture: x86-64
С помощью hostnamectl
hostnamectl set-hostname dns-server.andrei.com
hostname
Это постоянное изменение. Т.е. новое имя хоста имеет класс persistent.
pretty name
Чтобы задать pretty name нужно воспользоваться кавычками
hostnamectl set-hostname «andrei’s.host.com»
hostnamectl
Static hostname: andreis.host.com Pretty hostname: andrei’s.host.com Icon name: computer-vm Chassis: vm Machine ID: cff8a80b9c356243b5238452511a8ade Boot ID: 64d9ddab85ec4c219ac46c6a2940e628 Virtualization: kvm Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-1160.42.2.el7.x86_64 Architecture: x86-64
В /etc/hostname отображается только static hostname
pretty hostname можно увидеть в файле /etc/machine-info
hosts
Изучить информацию об именах других хостов можно в файле hosts
В моём примере в сети есть два хоста:
dns-server.andrei.com с IP адресом 192.168.56.149
host113.andrei.com с IP адресом 192.168.56.113
Зайдём на него с помощью ssh и посмотрим, есть ли у него записи об именах других хостов в сети.
Для наглядности я теперь буду показываеть приглашение терминала чтобы было видно имя хоста.
Выполним ping по IP
По IP пингуется успешно
И ping по hostname
ping: dns-server.andrei.com: Name or service not known
host113 не знает как разрешить имя dns-server.andrei.com
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
Добавим запись о dns-server.andrei.com
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.56.149 dns-server.andrei.com
Теперь всё работает
alias
Чтобы не писать длинные имена хостов можно придумать alias
192.168.56.149 dns-server.andrei.com vbdns
Обратите внимание на dns-server.andrei.com
Хоть пинг и был по алиасу, ответ идёт как от static fqdn
Если поменять порядок так, что vbdns идёт первым а FQDN dns-server.andrei.com вторым, но dns-server.andrei.com будет считаться алиасом
192.168.56.149 vbdns dns-server.andrei.com
В таком случае ответ будет идти от vbdns
Это может стать важным при работе с сертификатами