Linux 能PING IP 但不能PING 主机域名的解决要领 转载 2013年12月25日 10:24:27 13749 . vi /etc/nsswitch.conf hosts: files dns networks: files 改成: hosts: files dns wins networks: files 如果不一样的话,就在hosts:本来那行后面加个wins 就行了。 ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- 比来碰到了这么一个问题: ping一个域名domain_name的时候提示”ping: unknown host domain_name“,但是ping域名对应的IP地点 (使用host或nslookup获取) 却没有问题。 libc && glibc 标准C库 (the standard C library) 实现了ISO C标准,包罗了一套所有C措施都可以使用的函数。libc凡是被用作the standard C library的简写。 libc也被用作一个标准C库的实现的名字。在19世纪90年代早期,Linux内核的开发者把glibc 1.x独立了出来 (forked glibc),并把它称为”Linux libc”,也简称为libc。Linux libc主要颁布了2, 3, 4, 5四个版本。 1997年,FSF颁布了glibc 2.0,它对POSIX标准有更好的撑持,并且代码的可移植性更好。因此,此刻所有主要的Linux刊行版都是使用glibc。 Linux libc的最后的so-name是libc.so.5。因从此来的glibc 2.x使用的so-name是libc.so.6。 网络信息处事(Network Information Service, NIS) NIS也曾被称YP (Yellow Pages),它是一个基于RPC (Remote Procedure Call Protocol) 的客户机/处事器系统,允许一个NIS域中的一组机器共享一系列配置文件。在NIS环境中,有主处事器、从处事器和客户机三种类型的主机。处事器的感化是充当主机配置信息的*数据库。主处事器上生存着这些信息的权威副本,而从处事器则是生存这些信息的冗余副本。客户机依赖于处事器向它们供给这些信息。 DNS Resolver 一个域名 (Domain Name) 由一个或多个标签 (label) 构成,标签之间用点离隔。最右真个标签代表*域 (top-level domain,,TLD)。DNS (Domain Name System, 域名解析系统) 是互联网的一项核心处事,它是一个漫衍式条理化的系统,能够将域名和IP地点彼此映射。DNS通过允许一个域名处事器把它的一部分域名解析处事委托给子处事器而实现了一种条理化的域名空间。DNS由解析器 (Resolver) 和域名处事器两部分构成。 DNS系统的客户端被称为DNS解析器 (DNS Resolver)。在Linux系统上,解析器并不是特指某个应用措施,而是指解析器库。这个库包罗了标准C库中的一系列函数,最主要的两个函数是gethostbyname()和gethostbyaddr()。可以对DNS解析器进行配置,使得它们查找/etc/hosts中的信息、盘问DNS处事器或者使用网络信息处事系统的配置信息。libc使用/etc/host.conf配置文件;glibc使用/etc/nsswitch.conf配置文件。 /etc/host.conf中主要的选项有:(1) order指定域名解析的查找挨次,此中hosts暗示/etc/hosts配置文件;bind暗示盘问DNS处事器;nis暗示盘问NIS系统的配置信息。(2) multi [on|off]指定/etc/hosts中的主机是否可以有多个IP地点。 /etc/nsswitch.conf是名字处事开关 (name service switch) 的配置文件,此中对应DNS解析器的数据库名字是hosts:。它的主要选项有:(1) dns暗示使用DNS解析地点 (2) files暗示使用/etc/hosts和/etc/network配置文件 (3) nis或nisplus。 DNS处事器在/etc/resolv.conf中配置。 ping ping命令用来测试网络上的一台主机是否能够连通。ping命令向方针主机发送ICMP (Internet Control Message Protocol) 反映请求动静然后期待方针主机的回应,与此同时计算动静从源主机到方针主机的往返时间 (round-trip time,RTT)。 问题解决 首先,能够ping域名对应的IP,显然不成能是处事器禁止了ping处事 (使用防火墙等)。host和nslookup能够返回域名对应的IP地点,那么/etc/resolv.conf中的DNS设置也是没有问题的。 事实上,使用ping命令措置惩罚惩罚一个域名的时候,是使用gethostbyname()函数返回对应的主机信息 (参与源代码); 而host和nslookup则是直接使用/etc/resolv.conf中的DNS处事器。因此,需要检察/etc/nsswitch.conf中的hosts:数据库是否打开了dns选项。