Linux問題記錄——主機名變成了bogon 摘要:本文主要記錄了主機名變成bogon的原因以及解決辦法。 問題重現 主機名在一次登錄後,變成了bogon,此後每次登錄Linux系統時都是bogon。 1 Connecting to 192.168.35.128:22... 2 Connection ...
Linux問題記錄——主機名變成了bogon
摘要:本文主要記錄了主機名變成bogon的原因以及解決辦法。
問題重現
主機名在一次登錄後,變成了bogon,此後每次登錄Linux系統時都是bogon。
1 Connecting to 192.168.35.128:22... 2 Connection established. 3 To escape to local shell, press 'Ctrl+Alt+]'. 4 5 Last login: Mon Nov 18 17:24:49 2019 from 192.168.35.1 6 [root@bogon ~]#
解決辦法
修改hosts文件(重啟後問題解決)
修改etc目錄下的hosts文件,加入主機地址對應的主機名:
重啟系統,問題解決:
1 Connecting to 192.168.35.128:22... 2 Connection established. 3 To escape to local shell, press 'Ctrl+Alt+]'. 4 5 Last login: Mon Nov 18 17:35:02 2019 from 192.168.35.1 6 [root@localhost ~]#
修改主機名(重啟後仍然存在問題)
在CentOS 7中修改主機名就比較方便,一條命令即可:
1 [root@bogon ~]# hostnamectl set-hostname localhost 2 [root@bogon ~]#
不過這種辦法重啟時候還是不管用:
1 Connecting to 192.168.35.128:22... 2 Connection established. 3 To escape to local shell, press 'Ctrl+Alt+]'. 4 5 Last login: Mon Nov 18 17:24:49 2019 from 192.168.35.1 6 [root@bogon ~]#
問題說明
排查過程
問題出現的時候,先查看network配置文件:
1 [root@bogon ~]# cat /etc/sysconfig/network 2 # Created by anaconda 3 [root@bogon ~]#
並沒有發現什麼問題,然後查看hosts配置文件:
1 [root@bogon ~]# cat /etc/hosts 2 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 3 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 4 5 [root@bogon ~]#
也沒有什麼問題,hosts中的主機名是localhost,然後看下解析後的主機名:
1 [root@bogon ~]# hostname 2 bogon 3 [root@bogon ~]#
發現變成了bogon,所以判斷可能是DNS出了問題,查看DNS配置文件:
1 [root@bogon ~]# cat /etc/resolv.conf 2 # Generated by NetworkManager 3 search localdomain 4 nameserver 192.168.35.2 5 [root@bogon ~]#
發現多了一行 search localdomain ,應該是這行配置導致的問題。
使用nslookup命令查看對本機地址的解析情況:
1 [root@bogon ~]# nslookup 192.168.35.128 2 128.35.168.192.in-addr.arpa name = bogon. 3 4 Authoritative answers can be found from: 5 6 [root@bogon ~]#
發現解析到的名字是bogon,那麼說明一個問題就是,如果resolv.conf中配置了 search localdomain ,那麼此處得到的主機名則優先於hosts和network文件中的配置。
出現原因
通過在網上查詢資料得知,bogon是指那些不該出現在internet路由表中的地址。
Linux在初始化系統時,會先判斷主機名,如果主機名是localhost或localhost.localdomain,則會獲取主機IP地址並執行DNS逆向解析,將解析到的結果賦值給HOSTNAME。問題是,有些DNS伺服器會將私有地址和保留地址這樣不應該出現在網路上的IP地址解析成bogon,這就導致了登錄的時候發現主機地址變成了bogon。
修改hosts文件,將本機地址直接解析為localhost,不再經過DNS伺服器,也就不會被解析為bogon。
除了修改hosts文件,還可以更換一個DNS伺服器,將主DNS隨意改一個地址保存設置,然後再改回原IP,保存設置,然後註銷當前用戶,重新登錄即可。但這種方式本人並沒有試過,不確定可不可以。