hostname в CentOS

Содержание
Введение
Узнать имя своего хоста
Изменить имя хоста
С помощью hostnamectl
pretty hostname
hosts
alias
На хостинге
Похожие статьи

Введение

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

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

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

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

Рекомендуется использовать полное доменное имя ( FQDN ) как для static и для transient имен, таких как host.example.com .

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

Допустимые значения:

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

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

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

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

[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: 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

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: 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

Если изучить файл 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: 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

Появилось 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

Это может стать важным при работе с сертификатами

На хостинге

Как добавить соответствие IP адреса и домена сайта