在 CentOS 上设置新主机名,重启后会变回原名

在 CentOS 上设置新主机名,重启后会变回原名

在 CentOS (5.x) 上,我有一个 VPS,其主机名设置为“olddomain.com”,至少这是我在输入“hostname”命令时获得的域。

我想将其更改为“localhost.localdomain”,因为我认为它更通用且可靠。

localhost.localdomain 已存在于以下文件中:/etc/sysconfig/network 和 /etc/hosts

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=localhost.localdomain
GATEWAY=95.xx.xx.xx

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6

因此我接下来尝试了这些命令:

hostname localhost.localdomain

hostname -v localhost.localdomain

“hostname”命令现在返回这个新值。但重启后它会变回 olddomain.com,或者至少这是“hostname”命令返回的值。

还有什么需要编辑吗?

答案1

将以下行添加到您的 /etc/sysctl.conf配置文件中。

kernel.hostname = hostname
kernel.domainname = domain.com

并执行命令来读取和应用你的配置文件sysctl -p /etc/sysctl.conf的更改。/etc/sysctl.conf

答案2

您是否编辑了 /etc/sysconfig/network 文件?或者您只是显示其内容?hostname 命令实际上并不编辑这些文件。当系统启动时,init 脚本会从配置文件中读取主机名,然后将此设置传递给 hostname 命令。此外,如其他帖子所述,请务必编辑您的 hosts 文件,以便您的主机名 <-> ip 的映射在本地主机上正确。

更多信息请访问Red Hat 文档

另外,您是否使用网络管理器来管理网络接口?如果是,则需要进入 NM 并确保设置也与之一致。

答案3

我没有编辑这些文件/etc/sysconfig/network/etc/hosts因为这些已包含我想要的主机名(localhost.localdomain),因此仅通过命令hostname localhost.localdomain它在重启后不会保存。

然后我的主机将这两个文件编辑为不同的主机名,重新启动服务器(没有任何其他命令,只是编辑),新主机名应用并保持更改。然后我再次编辑文件并将它们设置为 localhost.localdomain,因为它们在我的其他 VPS 上,现在它们已更新并保留为 localhost,正如我想要的那样。

编辑(11年后):在使用较旧的操作系统(CentOS 7.x)时,我无法通过任何方法更改主机名,最终唯一有效的方法是下面的@bintut 的回答,编辑/etc/sysctl.conf和添加:

kernel.hostname = hostname
kernel.domainname = domain.com

答案4

我确信这/etc/sysconfig/network已被弃用。尝试/etc/sysconfig/networking/profiles/default/hosts一下/etc/sysconfig/networking/profiles/default/network

相关内容