CentOS 7 主机名不会改变

CentOS 7 主机名不会改变

我有两个 CentOS 7 虚拟机在 virtualbox 中运行。我想在每台机器上设置主机名和静态 IP 地址。 VM1 工作正常。 VM2 没有。我在两台服务器上做了同样的事情,所以我不确定为什么 VM2 出现问题。它显示为 localhost.localdomain,我无法让它读取新的正确主机名。这是我所做的:

修改/etc/sysconfic/network文件如下:

NETWORKING=yes
HOSTNAME=newhost.newdomain

修改/etc/resolv.conf文件如下:

nameserver 8.8.8.8

修改/etc/sysconfig/network-scripts/ifcfg-enp0s3文件如下:

HWADDR=#
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
NAME=enp0s3
UUID=#
ONBOOT=yes
IPADDR=192.168.10.1
NETMASK=255.255.255.0
NM_CONTROLLER=no
GATEWAY=192.168.10.100

接口正常工作并且 IP 已按指定分配。唯一不起作用的是主机名。我可以使用“hostname {newname}”命令临时更改它,但这只是一个临时修复,因为它会在重新启动时恢复。所有这些都与 VM1 上的相同(分配的 IP 地址除外),并且 VM1 工作正常。我现在不关心主机文件,因为我不担心名称解析;我只是担心主机名。

有什么想法或建议吗?

答案1

设置主机名:

hostnamectl set-hostname host.domain

答案2

尝试将主机名设置为/etc/hostname

从我的 CentOS 7 机器上的主机名手册页:

主机名通常在系统启动时设置一次(通常通过读取包含主机名的文件的内容,例如/etc/hostname)。

答案3

好吧,所以我找到了一种方法来让它工作,尽管我不知道修复它实际上发生了什么。我所做的是运行“hostnamectl {newname}”。这会将主机名设置为新值,我可以重新启动并保留设置。这让我很好奇发生了什么变化,所以我回顾了前面列出的 3 个配置文件,唯一的变化是“resolv.conf”文件。我的名称服务器值已被删除,并添加了一个新行“search {localdomain}”。

出于好奇,我决定删除新行并将名称服务器值放回并重新启动。重新启动后一切看起来仍然很好。所以看来该命令解决了问题,但我不知道它实际上做了什么来解决它。

此时,我将清除虚拟机并从头开始,看看是否可以再次重现该问题,并将查看 ChrisV 提到的主机名文件。也许情况已经改变了。但这仍然给我留下了一个大问题:为什么 VM1 工作得很好,而 VM2 却失败了,而且它们是在完全相同的时间以完全相同的方式设置的(获得更精确的唯一方法是克隆 VM1)。也许经过几次擦拭和重新安装后,我会偶然发现一些表明问题根源的东西。

相关内容