配置MGR时修改了/etc/hosts但映射后的hostname不起作用
問題描述:
配置MGR做了以下配置,但是明顯hostname映射沒起作用:[root@localhost cheng]格式是root@hostname 當前路徑,hostname 還是localhost。
這個localhost怎么來的呢,自己安裝centos時自定義的主機名…,其實默認情況下hostname是localhost.localdomain,安裝系統時把localhost.localdomain改成了localhost,基于巧合,這里hostname無論是localhost還是默認的localhost.localdomain,命令行都會顯示[root@localhost cheng]
查看/etc/hostname文件發現確實是它
[root@localhost cheng]# cat /etc/hostname localhost.com [root@localhost cheng]#解決方法:
修改hostname的方法:
1、命令hostname newName --運行后立即生效(新會話生效),但系統重啟后會丟失所做的修改
2、命令hostnamectl set-hostname newName --重啟生效,永久生效
3、修改/etc/hostname文件(效果與方法2一樣) --重啟生效,永久生效
想要使/etc/hosts中配置映射的hostname生效,必須將/etc/hostname 改為默認的localhost.localdomain(使用hostnamectl set-hostname localhost.localdomain),然后/etc/hosts中配置映射的hostname會自動生效。
這是因為系統初始化時,在/etc/rc.d/rc.sysinit中,有如下邏輯判斷,當hostname為localhost.localdomain時,將會使用接口IP地址對應的hostname來重新設置系統的hostname。
# In theory there should be no more than one network interface active # this early in the boot process -- the one we're booting from. # Use the network address to set the hostname of the client. This # must be done even if we have local storage. ipaddr=if [ "$HOSTNAME" = "localhost" -o "$HOSTNAME" = "localhost.localdomain" ]; thenipaddr=$(ip addr show to 0/0 scope global | awk '/[[:space:]]inet / { print gensub("/.*","","g",$2) }')if [ -n "$ipaddr" ]; theneval $(ipcalc -h $ipaddr 2>/dev/null)hostname ${HOSTNAME}fifi執行命令hostnamectl set-hostname localhost.localdomain后,查看/etc/hostname文件發現也已自動更改。然后重啟,/etc/hosts映射自動生效
總結
以上是生活随笔為你收集整理的配置MGR时修改了/etc/hosts但映射后的hostname不起作用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 配置MGR启动第一个节点时start g
- 下一篇: Unable to open socke