不知道什么时候,ping localhost 一直ping不通
1、首先想到的是在/etc/hosts里面配置别名
127.0.0.1 localhost.localdomain localhost
但是打开发现本来就是有的。找网上找了很久无果,因为多是说修改hosts文件
2、后来查看/etc/host.conf文件,该文件指定如何解析主机名。
Linux通过解析器库来获得主机名对应的IP地址。下面是一个“/etc/host.conf”的示例:
order bind,hosts
multi on
nospoof on
“order bind,hosts”指定主机名查询顺序,这里规定先使用DNS来解析域名,然后再查询“/etc/hosts”文件(也可以相反)。
“multi on”指定是否“/etc/hosts”文件中指定的主机可以有多个地址,拥有多个IP地址的主机一般称为多穴主机。
“nospoof on”指不允许对该服务器进行IP地址欺骗。IP欺骗是一种攻击系统安全的手段,通过把IP地址伪装成别的计算机,来取得其它计算机的信任。发现该文件也是没有问题的。
3、继续查找问题,找到文件 /etc/nsswitch.conf 这个文件配置了系统配置文件的路径
/etc/nsswitch.conf 文件是由Sun 公司开发并用于管理系统中多个配置文件查找的顺序,它比/etc/host.conf 文件提供了更多的功能。/etc/nsswitch.conf 中的每一行或者是注释(以#号开头)或者是一个关键字后跟冒号和一系列要试用的有顺序的方法。每一个关键字是在/etc/目录可以被/etc/nsswitch.conf 控制的/etc 文件的名字下面是可以被包含的关键字:
aliases 邮件别名
passwd 系统用户
group 用户组
shadow 隐蔽口令
hosts 主机名和I P 地址
networks 网络名和号
protocols 网络协议
services 端口号和服务名称
ethers 以太网号
rpc 远程进程调用的名称和号
netgroup 网内组
打开一看果然 这个文件的
#hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
被注释掉了
去掉前面的“#”,再ping 好了