LINUX主机通过域名访问网络失败

故障现象

  1. 用telnet IP+端口的方式测试正常,能够访问;
  2. 通过telnet域名+端口方式,提示:未知的名称或服务(Name or service not known)。
  3. 测试百度的网络地址,ping能够通。但是ping域名,出现同样的提示。

根据上面的故障现象分析,初步判断是DNS配置问题。

故障排查过程: 

  通过nslookup测试DNS解析,从结果来看,本地的DNS的服务器配置应该是可用的。 

  但是测试发现,使用telnet 域名+端口的方式测试,依然提示:未知的名称或服务

  测试了同网段的其它机器,通过所配置的DNS服务器X.X.X.X可以正常的进行解析,所以还是怀疑是本机配置问题。 

  搜索相关的资料。发现LINUX系统中有一个配置文件/etc/nsswitch.conf,这个文件里面定义了域名解析的搜索顺序。

  一般来说,域名的解析通过两种方式。一种是静态解析,通过/etc/hosts文件进行配置;另外一种就是通过DNS服务器。

  检查/etc/nsswitch.conf,发现对应项的配置如下,DNS被注释掉了,所以主机始终不会用到DNS的配置取解析地址。。

 

  修改配置,将注释去掉以后,重新测试,通过域名的方式telnet,可以通。至此故障排除。

原文地址:https://www.cnblogs.com/zqingfeng/p/6432758.html