Alias
如果不是 /etc/hosts,哪個文件中的主機名別名是持久的?
為了讓我的伺服器有一個別名,可以在“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。
但是,如果我在重新啟動後第一次更改別名,它就會生效。
所以實際上我有兩個問題:
- 如果不是 /etc/hosts,主機名別名在哪裡持久(因此它可以在重新啟動後繼續存在)。
- 為什麼每次啟動只能更改一次?
更多資訊:它是一個 RHEL 6.2 伺服器。
@StephaneChazelas 在此評論中是正確的。
可能您有一個名稱服務記憶體守護程序。在 sudo nscd -i hosts 之後嘗試(使主機記憶體無效)。
我無法對問題的答案發表評論,所以我自己回答這個問題。
如果您在 Fedora / RHEL / CentOS 上,主機名由 rc.sysinit 腳本在從 /etc/sysconfig/network 文件檢索所需值後設置。
至於為什麼每次啟動只能更改一次 - 它可以隨時更改。您必須為
hostname
命令提供新的主機名才能更改它,僅編輯文件不會這樣做。請記住,如果您以這種方式更改它,在您更改它之前執行的任何程序可能仍會記憶體舊值。