我现在正在运行 CentOS-7.0-1406,似乎无法正确设置主机名。据我所知,您需要使用以下方法设置主机名hostnamectl 设置主机名命令并在 /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 控制面板中没有任何类似于主机名的设置。什么原因可能导致此类问题?
答案1
Red Hat 文档明确指示您使用完全限定域名作为机器的静态主机名尝试使用单个非限定名称来命名服务器会导致各种服务出现各种问题,最明显的是电子邮件问题。
主机名可以是自由格式的字符串,长度最多为 64 个字符。但是,Red Hat 建议静态和临时名称都与完全合格域名(FQDN)用于 DNS 中的机器,例如
host.example.com
。
你应该这样做:
hostnamectl set-hostname server.example.com
您也可以手动编辑/etc/hostname
以获得相同的效果;同样,它应该包含 FQDN。
# cat /etc/hostname
server.example.com
答案2
要在 CentOS 7 上正确设置主机名和 FQDN,您需要设置 /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。
答案3
cat /etc/hostname
server01
cat /etc/hosts
192.168.100.10 server01.test.com server01
现在您可以检查一下。
hostname
(将输出)server01
hostname -f
(将输出)server01.test.com
答案4
回显“kernel.hostname = my.com”>> /etc/sysctl.conf