我有两个 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)。也许经过几次擦拭和重新安装后,我会偶然发现一些表明问题根源的东西。