如果不是 /etc/hosts,主机名别名会持久存在于哪个文件中?

如果不是 /etc/hosts,主机名别名会持久存在于哪个文件中?

为了让我的服务器有一个别名(可以在“hostname -a”命令中看到),我编辑了 /etc/hosts 文件以在包含主机名的条目末尾添加别名。

例如,我的主机名是 host1,我想要别名 hostalias,我在 /etc/hosts 中有以下条目:

    192.168.0.1 host1 hostalias

通过此更改,我可以使用“hostname -a”来查看主机别名。

不过,我只能改一次!如果我再次将文件 /etc/hosts 编辑为如下内容:

    192.168.0.1 host1 hostalias2

“hostname -a”的输出仍然是hostalias。

即使我删除了hostalias2并重新启动服务器后,它仍然显示hostalias。

但是,如果我在重新启动后第一次更改别名,它就会生效。

所以其实我有两个问题:

  1. 如果不是 /etc/hosts,主机名别名会持久存在于哪里(这样它可以在重新启动后继续存在)。

  2. 为什么每次启动只能更改一次?

更多信息:它是 RHEL 6.2 服务器。

答案1

如果您使用的是 Fedora / RHEL / CentOS,则主机名由 rc.sysinit 脚本在从 /etc/sysconfig/network 文件中检索所需值后设置。

至于为什么每次启动只能更改一次 - 它可以随时更改。您必须向hostname命令提供新的主机名才能更改它,仅编辑文件是无法做到这一点的。但请记住,如果您以这种方式更改它,则在您更改它之前运行的任何程序可能仍会缓存旧值。

答案2

@StephaneChazelas 就在这条评论

可能您有一个名称服务缓存守护进程。在 sudo nscd -i ports 之后尝试(以使主机缓存无效)。

我无法对问题的答案发表评论,所以我自己回答这个问题。

相关内容