Centos 7 无法设置主机名和 FQDN

Joh*_*Doe 5 centos hostname

我现在正在运行 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 
Run Code Online (Sandbox Code Playgroud)

起初一切看起来都很好,当我运行hostname时控制台显示主机,当我运行hostname -f时它显示 FQDN :

[root@server ~]# hostname
server
[root@server ~]# hostname -f
server.mydomain.com
Run Code Online (Sandbox Code Playgroud)

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

[root@server ~]# hostname
server.mydomain.com
Run Code Online (Sandbox Code Playgroud)

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

Mic*_*ton 5

Red Hat 文档明确指示您使用完全限定域名作为机器的静态主机名。尝试使用单个非限定名称命名服务器会导致各种服务出现各种问题,最显着的是电子邮件。

主机名可以是长度不超过 64 个字符的自由格式字符串。但是,Red Hat 建议静态名称和临时名称都与DNS 中用于机器的完全限定域名(FQDN)匹配,例如host.example.com.

你应该这样做:

hostnamectl set-hostname server.example.com
Run Code Online (Sandbox Code Playgroud)

您也可以手动编辑/etc/hostname以获得相同的效果;同样,它应该包含 FQDN。

# cat /etc/hostname
server.example.com
Run Code Online (Sandbox Code Playgroud)