在访问网站的过程中,或许经常会遭遇无法访问网页的现象,遇到这种现象时,相信多数人会下意识地认为是网络掉线,或目标网站的服务器出现了问题,可是在一番仔细排查之后,网页无法打开的现象并不是由这些因素引起的,那么究竟是什么原因让网页内容无法打开呢。
事实上,在网络连接以及目标服务器都正常的情况下,造成网页无法打开现象最可能的原因就是dns服务发生了意外,导致网站地址被无法正常解析,而且dns服务运行不正常的现象十分常见。那么我们如何能够在最短的时间内确认网页打开故障就是dns服务引起的呢,遇到dns服务运行不正常时,我们又该如何让dns服务快速恢复常态呢?下面,本文就从dns服务运行不正常的现象、判断以及应对出发,来让dns服务尽快恢复常态!
通常情况下,我们访问某个目标网站时都是通过输入形如“www.jb200.com”格式的网址来完成访问任务的,这个网址其实也是目标网站的域名;但是,我们知道主机与主机之间相互访问、通信时,都是通过IP地址来相互识别、确认的,这么说来我们只有知道了目标网站的ip地址才能够成功地打开该网站。
不过,考虑到ip地址不便于记忆,因此我们几乎都以域名的形式来访问网站内容,输入的网站地址往往会被指定的dns服务器自动解析翻译成ip地址;能够提供dns服务功能的服务器可以是本地计算机,也可以是网络中特定的一台计算机,但是一旦dns服务器运行不正常,无法为用户提供地址解析服务或者将域名解析成错误的ip地址时,我们就无法通过网站域名的形式打开目标站点的页面内容了。dns服务运行不正常的最明显现象就是访问目标网站的ip地址时正常,访问它的网站域名时就会发生错误。
在遇到网页内容无法打开,并且怀疑dns服务运行不正常时,我们首先要做的事情就是利用windows系统自带的nslookup命令来确认一下本地的dns服务是否真的运行不正常,下面就是确认dns服务运行是否正常的具体操作步骤:
首先在本地工作站系统桌面中打开“开始”菜单,并执行其中的“运行”命令,从弹出的系统对话框中输入字符串命令“cmd”,单击“确定”按钮后,将系统屏幕切换到ms-dos命令行工作模式;
其次在dos命令行中输入字符串命令“nslookup -q=ns www.jb200.com”,单击回车键后要是在地址解析过程中dns服务运行不正常的话,那我们会在结果界面中只看到“dns request timed out,timeout was 2 seconds”这样的提示信息。
在确认网站内容无法打开是由于地址不能被解析后,我们下一步要做的工作就是检查一下本地工作站所使用的dns服务器自身是否运行正常,如果dns服务器运行不正常的话,dns服务当然无法为网站地址提供解析服务了。在检查dns服务器自身是否运行正常时,我们可以按照如下步骤来进行:
首先按照前面的操作步骤,将系统运行状态切换到ms-dos命令行窗口,在该窗口的命令提示符下输入字符串命令“ipconfig /all”,单击回车键后,打开如图2所示的结果界面, 对应dns servers位置处的信息就是本地工作站所使用的dns服务器地址,比方说这里的dns服务器地址就是“61.177.7.1”;
其次根据ip地址来判断dns服务器是位于内网还是外网,例如笔者在这里指定的dns服务器位于外网,因此当我们发现使用该dns服务器无法正常解析网站地址时,不妨进入到本地工作站的tcp/ip属性设置窗口,将dns地址更换成其他能够运行正常的dns服务器地址,就能解决无法打开网页的问题了;要是指定的dns服务器位于内网,那么在使用该dns服务器无法正常解析网站地址时,就可以请单位网络管理人员检查一下局域网内部的dns服务器是否运行正常,只要解决了dns服务器的运行故障,一般就能够顺利解决网页无法打开故障了。
当以网站域名形式访问目标站点页面内容时,本地工作站并不一定都要寻求dns服务器的帮助,因为有的工作站事先已经把频繁访问站点的域名和ip地址对应关系保存到本地的hosts文件中了,所以当本地工作站访问某个目标站点的域名时往往会自动先查看本地的hosts文件,如果该文件中包含目标站点的域名和ip地址对应关系,那么目标站点的网站地址就能够被顺利解析了。
根据上面的分析思路,我们可以用手工方法将那些无法打开网页内容的站点域名和ip地址对应关系添加到本地的hosts文件中,以便实现成功解析目标站点的目的,下面就是往hosts文件中手工添加目标站点域名和ip地址对应关系的具体操作步骤:
首先打开本地工作站系统的资源管理器窗口,并在该窗口中依次展开“x:windowssystem32driversetc”文件夹,在对应“etc”子文件夹窗口中找到hosts文件,当然我们也可以依次执行“开始”/“搜索”命令,来通过文件搜索的方法找到目标hosts文件;
其次用记事本之类的文本编辑程序打开hosts文件,在随后弹出的文件编辑窗口中我们可以一目了然地看到hosts文件中所有的站点域名和ip地址对应关系了,在缺省状态下该文件只包含“127.0.0.1 localhost”这一行内容,其中开头带“#”的行都不是有效的内容,只是具体的帮助信息而已;
接下来我们就可以将那些无法访问的站点解析条目手工输入添加到本地hosts文件中了,具体添加格式应该是先输入目标站点域名所对应的ip地址,之后输入空格并连接具体的域名信息,比方说笔者在这里手工添加了“61.129.51.27 www.jbxue.net”;在确认信息输入正确后,再依次执行文件编辑窗口中的“文件”/“保存”命令,将上面输入的内容按原名保存后,如此一来我们日后就能顺利将目标网站的域名解析成ip地址了。
当我们以域名形式访问过目标网站后,该网站的域名和ip地址对应关系就会自动保存到本地工作站的dns缓存列表中,日后ie浏览器会优先访问dns缓存列表中的信息,不过一旦此时目标站点的域名和ip地址对应关系发生变动的话,dns缓存列表中的对应解析记录不会跟着同步变化,那么日后我们再次以域名形式访问目标站点时就容易发生dns解析不成功的故障。这个时候,我们可以通过刷新本地dns缓存列表的方法来解决网页无法打开的故障。
刷新本地dns缓存列表的操作步骤:
首先在本地工作站系统桌面中打开“开始”菜单,并执行其中的“运行”命令,从弹出的系统对话框中输入字符串命令“cmd”,单击“确定”按钮后,将系统屏幕切换到ms-dos命令行工作模式;
其次在dos命令行中,输入字符串命令“ipconfig /flushdns”,单击回车键后,我们将从如图4所示的结果界面中看到“successfully flushed the dns resolver cache”这样的提示, 这就意味着本地工作站dns缓存列表中的信息已经被成功刷新了。之后,我们重新以域名形式访问目标站点时,相信目标网站的页面内容就能被正确打开了。
遇到dns服务运行不正常的现象是常有的事情,面对这种故障现象我们只要依照本文所提供的应对要决进行逐一尝试,相信dns解析错误故障一定会快速被排除掉。