一、解决方法
能ping通localhost
如果修改了hosts文件为hosts: dns files 以后
就ping不通localhost了.
修改成默认值以后,就可以ping localhost了
#hostname -i
127.0.0.1
二、相关知识
对于大多数习惯用localhost的来说,实质上就是指向127.0.0.1这个本地IP地址。在操作系统中有个配置文件将localhost与127.0.0.1绑定在了一起。可以理解为本地主机的意思。
涉及到的文件:
1、/etc/hosts 是配置ip地址和其对应主机名的文件,这里可以记录本机的或其他主机的ip及其对应主机名。
文件格式 :
127.0.0.1 localhost.localdomain localhost
2、/etc/host.conf 指定主机名查找方法,通常指先查找文件/etc/hosts,找不到时再向DNS服务器请求。
文件格式 :
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 配置名字解析器
文件nsswitch.conf中的每一行配置都指明了如何搜索信息,比如用户的口令。nsswitch.conf每行配置的格式如下:
info: method [[action]] [method [[action]]...]
其中,info指定该行所描述的信息的类型,method为用来查找该信息的方法,action是对前面的method的返回状态的响应。action要放在方括号里面。
当需要提供nsswitch.conf文件所描述的信息的时候,系统将检查含有适当info字段 的配置行。它按照从左向右的顺序开始执行配置行中指定的方法。 在默认情况下,如果找到期望的信息,系统将停止搜索。如果没有指定action,那么当某个方法未能返回结果时,系统就会尝试下一个动作。有可能搜索结束 都没有找到想要的信息。
nsswitch.conf文件通常控制着用户(在passwd中)、口令(在shadow中)、主机IP地址和组信息的搜索。 下面的列表描述了nsswitch.conf文件控制搜索的大多数信息(前面所讨论的配置行格式中的info)的类型。
bootparams 无盘引导选项和其他引导选项(参见bootparam的手册页)
ethers MAC地址
group 用户所在组(/etc/group)
hosts 系统信息(/etc/hosts)
networks 网络信息(/etc/networks)
passwd 用户信息(/etc/passwd)
protocols 协议信息(/etc/protocols)
publickey 用于安全模式下运行的NFS
rpc RPC名称和编号(/etc/rpc)
services 服务信息(/etc/services)
shadow 映射口令信息(/etc/shadow)
下面列出了nsswitch.conf配置文件控制搜索的信息类型(前面所讨论的配置行格式中的method)。对于每一种信息类型,都可以指定下面的一种或者多种方法:
files 搜索本地文件,如/etc/passwd和/etc/hosts
nis 搜索NIS数据库,nis还有一个别名,即yp
dns 查询DNS(只查询主机)
compat passwd、group和shadow文件中的±语法(参见本节后面的相关内容)
两个或者更多方法所提供的信息可能会重叠。举例来说,files和nis可能都提供同一个用户的口令信息。如果出现信息重叠现象,就需要考虑将哪一种方法作为权威方法(优先考虑),并将该方法放在方法列表中靠左的位置上。
默 认nsswitch.conf文件列出的方法并没有动作项,并假设没有信息重叠(正常情况)。在这种情况下,搜索顺序无关紧要:当一种方法失败之后,系统 就会尝试下一种方法,只是时间上受到一点损失。如果在方法之间设置了动作,或者重叠的项的内容不同,那么搜索顺序就变得重要起来。
下面几行取自 nsswitch.conf文件,第一行让系统在/etc/passwd文件中搜索口令信息,如果失败的话,就使用NIS来查找信息。如果正在查找的用户 同时出现在这两个地方,就会使用本地文件中的信息,因此它就是权威信息。第二行使用NIS搜索;如果失败的话,就搜索/etc/hosts文件;如果再次 失败的话,核对DNS以找出主机信息。
在每个方法后面都可以选择跟一个动作项,用来指定如果由于某种原因该方法成功抑或失败需要做些什么。动作项的格式如下:
[[!]STATUS=action]
其中,开头和末尾的方括号属于格式的一部分,并不是用来指出括号中的内容是可选的。STATUS(按照约定使用大写字母,但本身并不区分大小 写)是待测试的状态,action是如果STATUS匹配前面的方法所返回的状态将要执行的动作。开头的感叹号(!)是可选的,其作用是将状态取反。
STATUS
STATUS的取值如下。
l NOTFOUND——方法已经执行,但是并没有找到待搜索的值。默认的动作是continue。
l SUCCESS——方法已经执行,并且已经找到待搜索的值,没有返回错误。默认动作是return。
l UNAVAIL——方法失败,原因是永久不可用。举例来说,所需的文件不可访问或者所需的服务器可能停机。默认的动作是continue。
l TRYAGAIN——方法失败,原因是临时不可用。举例来说,某个文件被锁定,或者某台服务器超载。默认动作是continue。
action
action的取值如下:
l return——返回到调用例程,带有返回值,或者不带返回值。
l continue——继续执行下一个方法。任何返回值都会被下一个方法找到的值覆盖。
下面是可以被包含的关键字:
aliases 邮件别名;
passwd 系统用户;
group 用户组;
shadow 隐蔽口令;
hosts 主机名和I P 地址;
networks 网络名和号;
protocols 网络协议;
services 端口号和服务名称;
ethers 以太网号;
rpc 远程进程调用的名称和号;
netgroup 网内组;
localhost与127.0.0.1的区别是什么?
相信有人会说是本地ip,曾有人说,用127.0.0.1比localhost好,可以减少一次解析。
看来这个问题还有人不清楚,其实这两者是有区别的。
localhost也叫local ,正确的解释是:本地服务器
127.0.0.1在windows等系统的正确解释是:本机地址(本机服务器)
他们的解析通过本机的host文件,windows自动将localhost解析为127.0.0.1
localhot(local)是不经网卡传输!这点很重要,它不受网络防火墙和网卡相关的的限制。
127.0.0.1是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。
一般设置程序时本地服务用localhost是最好的,localhost不会解析成ip,也不会占用网卡、网络资源。
有时候用localhost可以,但用127.0.0.1就不可以的情况就是在于此。猜想localhost访问时,系统带的本机当前用户的权限去访问,而用ip的时候,等于本机是通过网络再去访问本机,可能涉及到网络用户的权限。