Alias

如果不是 /etc/hosts,哪個文件中的主機名別名是持久的?

  • March 5, 2017

為了讓我的伺服器有一個別名,可以在“hostname -a”命令中看到,我編輯了 /etc/hosts 文件以在包含主機名的條目的末尾添加別名。

例如,我的主機名是 host1,我想擁有別名 hostalias,我在 /etc/hosts 中有以下條目:

   192.168.0.1 host1 hostalias

通過此更改,我可以使用“hostname -a”來查看 hostalias。

但是,我只能更改一次!如果我再次將文件 /etc/hosts 編輯為以下內容:

   192.168.0.1 host1 hostalias2

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

即使我刪除了 hostalias2 並重新啟動伺服器,它仍然在說 hostalias。

但是,如果我在重新啟動後第一次更改別名,它就會生效。

所以實際上我有兩個問題:

  1. 如果不是 /etc/hosts,主機名別名在哪裡持久(因此它可以在重新啟動後繼續存在)。
  2. 為什麼每次啟動只能更改一次?

更多資訊:它是一個 RHEL 6.2 伺服器。

@StephaneChazelas 在此評論中是正確的。

可能您有一個名稱服務記憶體守護程序。在 sudo nscd -i hosts 之後嘗試(使主機記憶體無效)。

我無法對問題的答案發表評論,所以我自己回答這個問題。

如果您在 Fedora / RHEL / CentOS 上,主機名由 rc.sysinit 腳本在從 /etc/sysconfig/network 文件檢索所需值後設置。

至於為什麼每次啟動只能更改一次 - 它可以隨時更改。您必須為hostname命令提供新的主機名才能更改它,僅編輯文件不會這樣做。請記住,如果您以這種方式更改它,在您更改它之前執行的任何程序可能仍會記憶體舊值。

引用自:https://unix.stackexchange.com/questions/80577