hostname в Rocky
Введение | |
Узнать имя своего хоста | |
Изменить имя хоста | |
С помощью hostnamectl | |
pretty hostname | |
hosts | |
alias | |
Похожие статьи |
Введение
Имя хоста — это уникальная метка, которая идентифицирует машину в сети.
Должна существовать таблица соответствия между hostname и
IP адресом
это нужно для для маршрутизации пакетов.
Хост может иметь несколько имён, но предпочтительным является вариант, когда имя одно.
Существует три класса hostname : static , pretty и transient .
- static — традиционное имя хоста, которое может быть установлено пользователем и хранится в /etc/hostname
- pretty — имя хоста UTF8 в свободной форме, используемое для представления пользователю. Например HeiHei' host.
- transient — динамическое имя хоста, поддерживаемое ядром, которое может быть изменено сервером DHCP или mDNS во время выполнения. По умолчанию это то же самое, что и static имя хоста.
Рекомендуется использовать полное доменное имя ( FQDN ) как для static и для transient имен, таких как host.example.com .
Так как Rocky 7 поддреживает только Fully Qualified Domain Names (FQDNs),
советую тщательно проверить hostname, который вы планируете использовать.
Допустимые значения:
- Строчные буквы от a до z
- Цифры от 0 до 9
- Точки и дефисы
- Hostnames может быть от 2 до 63 символов
- Hostnames должен начинаться и заканчиваться цифрой или буквой
Узнать имя своего хоста
Существует несоколько способов узнать имя своего хоста.
Часто для этого достаточно просто посмотреть в терминал
Пример моего терминала
[andrei@localhost Downloads]$
andrei - это имя пользователя
localhost - это имя хоста
Downloads - имя текущей директории
Посмотреть порядок можно выполнив
echo $PS1
[\u@\h \W]\$
u - пользователь
h - хост
W - Working Directory - Рабочая диретория
Другие способы
hostname
localhost.localdomain
hostname -f
localhost
uname -n
localhost.localdomain
hostnamectl
Static hostname: localhost.localdomain Icon name: computer-vm Chassis: vm Machine ID: 35e254eda578c54084b96e06d5f285cf Boot ID: afb44fef8d764f30bb89550849b02fde Virtualization: kvm Operating System: Rocky Linux 7 (Core) CPE OS Name: cpe:/o:rocky:rocky:7 Kernel: Linux 3.10.0-1160.36.2.el7.x86_64
Изменить имя хоста
С помощью команды hostname
hostname dns-server
hostname
dns-server
Если заново открыть терминал изменения будут видны в командной строке.
[andrei@dns-server~]$
Это имя хоста сохранится только до перезагрузки системы
Если выполнить hostnamectl видно, что помянелось только динамическое имя хоста
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: Rocky Linux 8 (Core) CPE OS Name: cpe:/o:rocky:rocky:8 Kernel: Linux 3.10.0-1160.42.2.el7.x86_64 Architecture: x86-64
Если изучить файл hostname , также можно увдиеть отсутствие изменений.
cat /etc/hostname
localhost.localdomain
С помощью hostnamectl
hostnamectl set-hostname dns-server.andrei.com
hostname
dns-server.andrei.com
Это постоянное изменение. Т.е. новое имя хоста имеет класс persistent.
cat /etc/hostname
dns-server.andrei.com
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: Rocky Linux 7 (Core) CPE OS Name: cpe:/o:rocky:rocky:7 Kernel: Linux 3.10.0-1160.42.2.el7.x86_64 Architecture: x86-64
Появилось pretty hostname а static hostname такое же , но без запрещенных символов
В /etc/hostname отображается только static hostname
cat /etc/hostname
andreis.host.com
pretty hostname можно увидеть в файле /etc/machine-info
cat /etc/machine-info
PRETTY_HOSTNAME="andrei's.host.com"
hosts
Изучить информацию об именах других хостов можно в файле hosts
В моём примере в сети есть два хоста:
dns-server.andrei.com
с IP адресом
192.168.56.149
host113.andrei.com с IP адресом
192.168.56.113
Зайдём на него с помощью ssh и посмотрим, есть ли у него записи об именах других хостов в сети.
Для наглядности я теперь буду показываеть приглашение терминала чтобы было видно имя хоста.
[andrei@dns-server~]$ ssh andrei@192.168.56.113
Выполним ping по IP
[andrei@host113 ~]$ ping 192.168.56.149
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
[andrei@host113 ~]$ ping dns-server.andrei.com
ping: dns-server.andrei.com: Name or service not known
host113 не знает как разрешить имя
dns-server.andrei.com
Это неудивительно - ведь в файле
hosts
нет про него никаких записей. Проверим содержимое:
[andrei@host113 ~]$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
Добавим запись о dns-server.andrei.com
sudo vi !$
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
Повторим ping
[andrei@host113 ~]$ ping dns-server.andrei.com
PING dns-server.andrei.com (192.168.56.149) 56(84) bytes of data. 64 bytes from dns-server.andrei.com (192.168.56.149): icmp_seq=1 ttl=64 time=0.698 ms 64 bytes from dns-server.andrei.com (192.168.56.149): icmp_seq=2 ttl=64 time=0.735 ms 64 bytes from dns-server.andrei.com (192.168.56.149): icmp_seq=3 ttl=64 time=0.739 ms ^C --- dns-server.andrei.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2001ms rtt min/avg/max/mdev = 0.698/0.724/0.739/0.018 ms
Теперь всё работает
alias
Чтобы не писать длинные имена хостов можно придумать alias
Формат следующий
IP FQDN ALIAS
FQDN - Fully Qualified Domain Name - полностью определённое имя домена.
192.168.56.149 dns-server.andrei.com vbdns
[andrei@host113 ~]$ ping vbdns
PING dns-server.andrei.com (192.168.56.149) 56(84) bytes of data. 64 bytes from dns-server.andrei.com (192.168.56.149): icmp_seq=1 ttl=64 time=0.619 ms 64 bytes from dns-server.andrei.com (192.168.56.149): icmp_seq=2 ttl=64 time=0.674 ms ^C --- dns-server.andrei.com ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1000ms rtt min/avg/max/mdev = 0.619/0.646/0.674/0.037 ms
Обратите внимание на 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
[andrei@host113 ~]$ ping vbdns
Или
[andrei@host113 ~]$ ping dns-server.andrei.com
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
Это может стать важным при работе с сертификатами