1.在新装的linux系统中,默认安装之后
2.一般虚拟机是桥接至物理网卡进行网络访问,将虚拟机网络模式更改为NAT模式,更改完成之后进行ssh登录,主机名产生变化.
这两种情况都有可能莫名更改主机名,原因尚不清楚.
[root@localhost ~]#
[root@bogon ~]#
首先,查看netword文件
[root@localhost ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain
[root@localhost ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
network和hosts中的主机名都正常,都是localhost
[root@bogon ~]# hostname
bogon
直接使用hostname发现还是返回了bogon,并不是文件中的localhost,查看dns文件
[root@locahost ~]# cat /etc/resolv.conf
;generated by /sbin/dhclient-script
search localdomain
发现多了一行search localdomain,应该是这行配置导致的问题
resolv.conf中的配置是由vmware 8网上自动下发,所以更改此处配置无用
准备曲线救国,这块的配置说明是要在加载配置文件后,对该主机的IP地址进行解析
返回的domain域名作为主机名回显至命令行,尝试解析本机IP
[root@localhost ~]# nslookup 192.168.213.128
Server: 192.168.213.2
Address: 192.168.213.2#53
Non-authoritative answer:
128.12.168.192.in-addr.arpa name=bogon.
Authoritative answers can be found from:
[root@localhost ~]#
果然本机的IP地址被解析为bogon,那么说明一个问题就是,如果resolv.conf中配置了search localdomian,
那么此处得到的主机名则优先于hosts和network文件中的配置
要解决这个问题,最简单的方案就是让其解析时不经过dns,使用hosts文件,直接将本机的IP地址解析为localhost即可
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.13.128 localhost
重启服务器,登录后查看主机名恢复正常
网上看了很多帖子,有的讲到了这种方法,但是没有讲解原因.
参考 http://www.cnblogs.com/armo/p/6739472.html