无法设置主机名和FQDN Centos 7

我现在正在运行CentOS-7.0-1406,看起来我无法正确设置主机名。 据我所知,您需要使用hostnamectl set-hostname命令设置主机名,并在/ etc / hosts中写入FQDN。 我有一个centos机器,我想将它的主机名设置为“server”,将FQDN设置为“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 

起初一切看起来都不错,当我运行主机名时,控制台显示主机名,当我运行主机名时显示FQDN -f

 [root@server ~]# hostname server [root@server ~]# hostname -f server.mydomain.com 

但是,当我重新启动机器并再次运行相同的命令后,它开始显示FQDN作为主机名:

 [root@server ~]# hostname server.mydomain.com 

我必须说,这是一个VPS服务器, 我没有这样的问题,当我在本地虚拟机上。 也没有VPS控制面板中的任何设置,看起来像主机名。 什么原因可能导致这样的问题?

红帽文档明确指示您使用完全限定的域名作为机器的静态主机名 。 尝试用一个不合格的名字来命名服务器会导致各种服务的各种问题,尤其是电子邮件。

主机名称可以是最长64个字符的自由格式的string。 但是,红帽build议静态名称和临时名称都与用于DNS中计算机的完全限定域名 (FQDN)匹配,如host.example.com

你应该这样做:

 hostnamectl set-hostname server.example.com 

您也可以手动编辑/etc/hostname以达到相同的效果; 再次,它应该包含FQDN。

 # cat /etc/hostname server.example.com 

要在CentOS 7上正确设置主机名和FQDN,您需要设置/ etc / hostname以包含简短的节点名称,如:

 # echo server > /etc/hostname 

您需要在resolv.conf中添加域条目:

 # echo 'domain mydomain.com' >> /etc/resolv.conf 

之后重新启动。

注意:重新启动后,resolv.conf中的条目可能会丢失,所以要保留它,可能需要在networking脚本中设置DOMAIN =,如:

 echo 'DOMAIN="mydomain.com"' >> /etc/sysconfig/network-scripts/ifcfg-eth0 

将eth0replace为适当的接口,例如enp3s0。

echo“kernel.hostname = my.com”>> /etc/sysctl.conf