Сейчас я запускаю CentOS-7.0-1406 и, похоже, не могу правильно настроить имя хоста. Насколько я знаю, вам нужно настроить имя хоста, используя hostnamectl set-hostname команду и напишите полное доменное имя в / etc / hosts. У меня есть машина centos, и я хочу установить для нее имя хоста «server», а полное доменное имя - «server.mydomain.com». Я запускаю команду hostnamectl и редактирую файл / etc / hosts:
[root@server ~]# hostnamectl set-hostname server
[root@server ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
{inet_IP_here} server.mydomain.com server
Сначала все выглядит нормально, консоль отображает имя хоста, когда я запускаю имя хоста и он отображает полное доменное имя, когда я запускаю имя хоста -f:
[root@server ~]# hostname
server
[root@server ~]# hostname -f
server.mydomain.com
НО после того, как я перезагружаю компьютер и снова запускаю те же команды, он начинает отображать полное доменное имя как имя хоста:
[root@server ~]# hostname
server.mydomain.com
Сразу скажу, что это VPS сервер и у меня нет такой проблемы когда я делаю это на локальной виртуальной машине. Также нет никаких настроек в панели управления VPS, которые выглядят как имя хоста. По какой причине могут возникать такие проблемы?
Документация Red Hat явно инструктирует вас использовать полное доменное имя в качестве статического имени хоста машины. Попытка назвать сервер одним неполным именем вызывает множество проблем с различными службами, в первую очередь с электронной почтой.
Имя хоста может быть строкой произвольной формы длиной до 64 символов. Однако Red Hat рекомендует, чтобы как статические, так и временные имена соответствовали полное доменное имя (FQDN), используемый для машины в DNS, например
host.example.com
.
Вы должны делать:
hostnamectl set-hostname server.example.com
Вы также можете редактировать вручную /etc/hostname
для того же эффекта; опять же, он должен содержать полное доменное имя.
# cat /etc/hostname
server.example.com
Чтобы правильно настроить имя хоста и полное доменное имя в CentOS 7, вам необходимо настроить / etc / hostname, чтобы он содержал короткое имя узла, например:
# echo server > /etc/hostname
И вам нужно добавить запись о домене в resolv.conf:
# echo 'domain mydomain.com' >> /etc/resolv.conf
После этого перезагрузитесь.
Примечание: запись из resolv.conf может быть потеряна после перезагрузки, поэтому для ее сохранения может потребоваться установить DOMAIN = в ваших сетевых скриптах, например:
echo 'DOMAIN="mydomain.com"' >> /etc/sysconfig/network-scripts/ifcfg-eth0
Замените eth0 соответствующим интерфейсом, например enp3s0.
cat /etc/hostname
server01
cat /etc/hosts
192.168.100.10 server01.test.com server01
Теперь вы можете это проверить.
hostname
(будет выводить) server01
hostname -f
(будет выводить) server01.test.com
Echo "kernel.hostname = my.com" >> /etc/sysctl.conf