Centos

避免在重新啟動時被臨時主機名覆蓋主機名

  • June 16, 2019

我的伺服器是 CentOS 7.1。重新啟動後,主機名被臨時主機名(mail)覆蓋,我找不到避免這種情況的方法。也許 AutoDNS 和 MX 記錄mail會導致這種情況?

  • /etc/hostname包含正確的值
  • hostnamectl --transient set-hostname my.desired.name正在工作,但僅在下次重新啟動之前

所以,重啟後:

  • hostnamectl status顯示正確的靜態主機名但錯誤的臨時主機名 ( mail)。
  • hostname -shostname -f顯示錯誤的主機名。

該文件/etc/sysconfig/network被“anaconda”覆蓋並具有HOSTNAME="mail". 我嘗試編輯此文件以配置正確的名稱,但在重新啟動後它被覆蓋。

如何防止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

檢查以確保您的系統沒有mail 在此腳本中配置主機名。

如果這不是問題,您需要檢查本地 DHCP 伺服器是否未配置為將主機名設置為mail. 如果您有網路管理員,他已將您的主機mail配置為區域網路的 DNS / DHCP,您應該與他們交談。最佳實踐是使用非基於角色的名​​稱配置主機,然後將 DNS CNAMES 配置為相關伺服器的別名。

如果 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

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