域名DNS解析的故障解决方法

   2015-06-28 0
核心提示:在实际应用过程中可能会遇到DNS解析错误的问题,就是说当我们访问一个域名时无法完成将其解析到IP地址的工作,而直接输入网站IP却可以正常访问,这就是因为DNS解析出现故障造成的。
这个现象发生的机率比较大,所以本文将从零起步教给各位读者一些基本的排除DNS解析故障的方法。

  一、什么是DNS解析故障?

  一般来说像我们访问的www.lexue001.com,www.kanshule.com这些地址都叫做域名,而众所周知网络中的任何一个主机都是IP地址来标识的,也就是说只有知道了这个站点的IP地址才能够成功实现访问操作。

  不过由于IP地址信息不太好记忆,所以网络中出现了域名这个名字,在访问时我们这需要输入这个好记忆的域名即可,网络中会存在着自动将相应的域名解析成IP地址的服务器,这就是Dns服务器。能够实现DNS解析功能的机器可以是自己的计算机也可以是网络中的一台计算机,不过当DNS解析出现错误,例如把一个域名解析成一个错误的IP地址,或者根本不知道某个域名对应的IP地址是什么时,我们就无法通过域名访问相应的站点了,这就是DNS解析故障。

  出现DNS解析故障最大的症状就是访问站点对应的IP地址没有问题,然而访问他的域名就会出现错误。

  二、如何解决DNS解析故障:

  当我们的计算机出现了DNS解析故障后不要着急,解决的方法也很简单。

  (1)用nslookup来判断是否真的是DNS解析故障:

  要想百分之百判断是否为DNS解析故障就需要通过系统自带的NSLOOKUP来解决了。

  第一步:确认自己的系统是windows 2000和windows xp以上操作系统,然后通过“开始->运行->输入CMD”后回车进入命令行模式。

  第二步:输入nslookup命令后回车,将进入DNS解析查询界面。

  第三步:命令行窗口中会显示出当前系统所使用的DNS服务器地址,例如笔者的Dns服务器IP为202.106.0.20。

  第四步:接下来输入你无法访问的站点对应的域名。例如笔者输入 www.lexue001.com,假如不能访问的话,那么DNS解析应该是不能够正常进行的。我们会收到DNS request timed out,timeout was 2 seconds的提示信息。这说明我们的计算机确实出现了DNS解析故障。

  小提示:如果DNS解析正常的话,会反馈回正确的IP地址,例如笔者用www.lexue001.com这个地址进行查询解析,会得到name:jb51.net,addresses:61.129.70.67,61.135.133.104的信息。

  (2)查询Dns服务器工作是否正常:

  这时候我们就要看看自己计算机使用的DNS地址是多少了,并且查询他的运行情况。

  第一步:确认自己的系统是windows 2000和windows xp以上操作系统,然后通过“开始->运行->输入CMD”后回车进入命令行模式。

  第二步:输入ipconfig /all命令来查询网络参数。

  第三步:在ipconfig /all显示信息中我们能够看到一个地方写着DNS SERVERS,这个就是我们的DNS服务器地址。例如笔者的是202.106.0.20和202.106.46.151。从这个地址可以看出是个外网地址,如果使用外网DNS出现解析错误时,我们可以更换一个其他的Dns服务器地址即可解决问题。

  第四步:如果在DNS服务器处显示的是自己公司的内部网络地址,那么说明你们公司的DNS解析工作是交给公司内部的DNS服务器来完成的,这时我们需要检查这个DNS服务器,在DNS服务器上进行nslookup操作看是否可以正常解析。解决 Dns服务器上的DNS服务故障,一般来说问题也能够解决。

  (3)清除DNS缓存信息法:

  当计算机对域名访问时并不是每次访问都需要向DNS服务器寻求帮助的,一般来说当解析工作完成一次后,该解析条目会保存在计算机的DNS缓存列表中,如果这时DNS解析出现更改变动的话,由于DNS缓存列表信息没有改变,在计算机对该域名访问时仍然不会连接Dns服务器获取最新解析信息,会根据自己计算机上保存的缓存对应关系来解析,这样就会出现DNS解析故障。这时我们应该通过清除DNS缓存的命令来解决故障。

  第一步:通过“开始->运行->输入CMD”进入命令行模式。

  第二步:在命令行模式中我们可以看到在ipconfig /?中有一个名为/flushdns的参数,这个就是清除DNS缓存信息的命令。

  第三步:执行ipconfig /flushdns命令,当出现“successfully flushed the dns resolver cache”的提示时就说明当前计算机的缓存信息已经被成功清除。

  第四步:接下来我们再访问域名时,就会到Dns服务器上获取最新解析地址,再也不会出现因为以前的缓存造成解析错误故障了。

  (4)修改HOSTS文件法:

  修改HOSTS法就是把HOSTS文件中的DNS解析对应关系进行修改,从而实现正确解析的目的。因为在本地计算机访问某域名时会首先查看本地系统中的HOSTS文件,HOSTS文件中的解析关系优先级大于Dns服务器上的解析关系。

  这样当我们希望把某个域名与某IP地址绑定的话,就可以通过在HOSTS文件中添加解析条目来实现。

  第一步:通过“开始->搜索”,然后查找名叫hosts的文件。

  第二步:当然对于已经知道他的路径的读者可以直接进入c:\windows\ system32\drivers\etc目录中找到HOSTS文件。如果你的系统是windows 2000,那么应该到c:\winnt\system32\drivers\etc目录中寻找。

  第三步:双击HOSTS文件,然后选择用“记事本”程序将其打开。

  第四步:之后我们就会看到HOSTS文件的所有内容了,默认情况下只有一行内容“127.0.0.1 localhost”。(其他前面带有#的行都不是真正的内容,只是帮助信息而已)

  第五步:将你希望进行DNS解析的条目添加到HOSTS文件中,具体格式是先写该域名对应的 IP地址,然后空格接域名信息。例如笔者添加了“61.129.70.67 www.lexue001.com”与“10.82.0.1 www.lexue001.com”两个条目。

  第六步:设置完毕后我们访问www.lexue001.com时就会自动根据是在内网还是外网来解析了。

  三、总结:

  通过上面介绍的四个步骤,我们就可以解决大部分DNS解析问题了,这几个方法中前三个是循序渐进的一步步解决DNS解析故障,而最后一个修改HOSTS文件则是在实在没有办法的时候,一种权宜之计。当然不管是通过哪种方法,我们都可以解决因为 DNS解析错误带来的网络故障。相信这些方法可以帮助各位jb51的读者解决更多的实际问题。
 
标签: 域名 DNS解析
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • Linux使用nginx反向代理。可实现域名指向特定端
    在配置80指向域名的时候出现端口占用,使用kill -9无法杀死端口,应使用下面的命令来杀死进程killall -9 nginx(使用完本命令需要再把配置过的配置文件重新启动。命令写在了PS下面)后在root权限下的nginx的sbin下使用./nginx -t(命令重启nginx并检查是否有语
    02-13
  • IIS8.5中的强制https直接修改web.config文件和*
    亲测可用?xml version="1.0" encoding="UTF-8"?configurationsystem.webServerrewriterulesrule name="301Redirect" stopProcessing="true"match url="(.*)" /conditions logicalGrouping="MatchAny"add input=&quo
    02-10
  • ubuntu下配置apache2多域名(apache2.4.6) ubunt
    Ubuntu 在 Linux 各发行版中, 个人用户数量最多的. 很多人在本机和虚拟机中使用. 但 Ubuntu 和 Redhat 的 VirtualHost 设置方法不相同.1. 打开目录 /etc/apache2/sites-available/, 发现 default 和 default-ssl 两个文件, 其中 default 是 http 虚拟主机服务
    02-10
  • CentOS 7.3 源码安装apache 2.4.16配置基于域名的虚拟主机
    CentOS 7.3 源码安装apache 2.4.16配置基于域名
    主配置文件末尾添加一条配置:[root@vm2 ~]# vim /usr/local/apache/conf/httpd.conf Include conf/vhosts.conf在conf目录下新建vhosts,conf, 配置如下:VirtualHost 192.168.10.81:80DocumentRoot "/var/www/www.bangbangdj.com"ServerName www.bangbangdj.
    02-10
  • Apache服务器在80端口配置多域名虚拟主机的方法
    我们在配置一台服务器的时候,如果只运行一个站点,往往过于浪费资源。Nginx和Apache都可以通过配置虚拟主机实现多站点。配置虚拟主机的方式主要有两种,一种是多个不同端口对应的多个虚拟主机站点,一种是同一端口对应多个不同域名的虚拟主机站点。这里我用8
    02-10
  • 使用apache进行域名绑定 apache基于域名的虚拟
    【背景】  项目需要搭建一套mysqlapi的开发环境,进行域名绑定【方法】主要方式通过修改apache的vhost配置文件,重启apache服务,以及最终在客户端绑定hosts。 1、查看apache服务目录[root@alice48 10.73.13.48 sinasrv2]# ps aux |grep httpdroot14880.00
    02-10
  • apache本地域名ip重定向vhosts apache怎么绑定
    apache本地域名ip重定向,使本机通过指定域名访问到指定ip路径。1、apache配置apache/conf/httpd.conf  : 开启配置 Include conf/extra/httpd-vhosts.conf2、apache配置apache/conf/extra/httpd-vhosts.conf :  VirtualHost *:80ServerAdmin webmaster@ap
    02-10
  • linux+nginx配置虚拟域名 nginx 设置域名
    1、/usr/local/webserver/nginx/conf/ 下 nginx.conf文件server_name 改成你想要配置的域名ps:文件路径不一定是上述路径,find / -name "nginx.conf"  命令可以找到对应文件2、vim /etc/hosts加上 ip地址   server_name对应的域名。比如 192.168.1.4  
    02-10
  • nginx 请求多个域名指定对应的根目录
    nginx 请求多个域名指定对应的根目录
    同一个nginx配置文件,请求不同的域名可以指定对应的目录nginx配置cat long.confserver {listen 80;server_namea.com b.com c.com;location / {root /home/long/$host/;index index.html;}error_page 500 502 503 504/50x.html;location = /50x.html {root ht
    02-10
  • WebSocket 结合 Nginx 实现域名及 WSS 协议访问
    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过。如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/mao2080/1、基本配置 1upstream mqttServer { 2 server mqttserveri
    02-10
点击排行