避免在重新啟動時被臨時主機名覆蓋主機名
我的伺服器是 CentOS 7.1。重新啟動後,主機名被臨時主機名(
/etc/hostname
包含正確的值hostnamectl --transient set-hostname my.desired.name
正在工作,但僅在下次重新啟動之前所以,重啟後:
hostnamectl status
顯示正確的靜態主機名但錯誤的臨時主機名 (hostname -s
或hostname -f
顯示錯誤的主機名。該文件
/etc/sysconfig/network
被“anaconda”覆蓋並具有HOSTNAME="mail"
. 我嘗試編輯此文件以配置正確的名稱,但在重新啟動後它被覆蓋。如何防止
編輯:
我已經嘗試添加
DHCP_HOSTNAME="my.desired.name"
到我的 /etc/sysconfig/network-scripts/ifcfg-e ….. 但沒有成功(重新啟動後刪除了行)。而且我嘗試
hostnamectl set-hostname "" --transient
在重新啟動時添加執行(這會將瞬態設置為靜態主機名的值),但由於啟動 /etc/rc.local 以及作為啟用 chkconfig 的服務而失敗(使用 # chkconfig: - 11 91 所以它應該在所有其他服務之後執行)。歡迎任何進一步的建議。
臨時主機名在啟動時初始化為靜態主機名,但可以通過 DHCP 或 mDNS 更改。
DHCP
如果您使用的是 DHCP,則應檢查網路設備的配置中是否未設置錯誤的主機名。執行
ip addr show
以檢查您正在使用的網路設備。然後編輯適當的配置腳本。例如,如果您的網路介面是eth0
,您應該編輯它的配置文件,/etc/sysconfig/network-scripts/ifcfg-eth0
.從 Red Hat 文件配置網路介面使用 ifcfg 文件,有一個選項
配置介面以向 DHCP 伺服器發送不同的主機名。
DHCP_HOSTNAME=hostname
檢查以確保您的系統沒有
如果這不是問題,您需要檢查本地 DHCP 伺服器是否未配置為將主機名設置為
如果 DHCP 是您的問題的根源並且上述建議沒有幫助,那麼另一個選擇是將您的網路介面配置為使用靜態 IP 地址。
我知道已經有一段時間了,但是對於任何正在尋找它為什麼會發生答案的人來說:一些提供商(ISP、公司 VPN 等)在通過 DHCP 請求 IP 時將“臨時主機名”發送回主機,並且根據您機器的配置,它被設置為目前機器的主機名
我的問題(以及我在這裡結束的方式)是我將主機名設置為預設值
localhost
並根據hostnamectl
手冊頁:該工具區分三種不同的主機名:可能包含各種特殊字元的高級“漂亮”主機名(例如“Lennart’s Laptop”),用於在啟動時初始化核心主機名的靜態主機名(例如“lennarts-laptop “),以及從網路配置中接收到的預設臨時主機名。如果設置了靜態主機名並且有效(不是 localhost),則不使用臨時主機名。
所以一個解決方案是不要將主機名設置為
localhost
另一種解決方案是通過從屬性中刪除(也許是)來使您的 dhcp 配置
/etc/dhcp/dhclient.conf
不請求主機名host-name``domain-name``request