在上网冲浪时,我们经常会遇到网络连接正常,但无法浏览网页的问题。对于这类网络故障,很多时候都与系统的DNS服务有关。为了解决由DNS服务引起的网络故障,本文总结了一些这方面的故障解决案例,希望对大家有所帮助。
措施:考虑到这则故障与DNS缓存有关,认为问题多半出在控制DNS缓存的系统服务上。单击“开始→运行”,执行“services.msc”命令,打开系统服务列表窗口。用鼠标双击“DNS Client”服务选项,切换到目标服务的选项设置对话框(如图1),
图1 DNS Client属性窗口
在这里先单击“停止”按钮,将该服务临时停用,之后单击“启动”按钮,对目标系统服务执行重新启动操作。启动成功后,再次对本地连接进行了修复操作,发现系统这次没有提示错误,并且IE浏览器也能正常打开网页了,这说明故障现象已经消失。当然,对于一些使用了动态地址上网的客户端系统来说,我们有时还需要通过重新启动“DHCP Client”服务的方式,才能彻底解决故障的现象。
措施:既然其他客户端系统访问同样的网站正常,这说明问题肯定在客户端系统自身。考虑到故障客户端系统访问其他网站一切正常,只是在访问以前的旧网站才出现问题,笔者认为很可能是该系统的DNS缓存内容已经过时,此时不妨将DNS缓存中的内容强制清空一次。
在强制清空DNS缓存内容时,可以依次单击“开始→运行”命令,弹出系统运行对话框,输入“cmd”命令,按回车键后,在该窗口中执行字符串命令“ipconfig/flushdns”(如图2),
图2 执行字符串命令 ipconfig/flushdns
就能强制清空DNS缓存内容了。如果还不能解决问题,那还需要打开本地系统的资源管理器窗口,切换到“C:\Windows\System32\drivers\etc”文件夹窗口,用记事本打开“host”文件,保留“127.0.0.1”这一行的内容,将其他内容全部删除,再执行文件保存操作,相信这样多半就能解决问题了。
故障三、系统存储空间不足
现象:有时在windows server 2003服务器系统中,尝试重新启动DNS Server服务时,系统会弹出存储空间不足的错误提示,同时,DNS Server服务也无法正常启用。
措施:造成这种现象的原因有多个方面,例如DNS缓存容量不是很大,DNS缓存文件受到破坏等。在解决故障时,可以先试着增大DNS缓存容量;在进行这种设置时,依次单击“开始→运行”命令,弹出运行对话框,执行regedit命令,依次选择注册表编辑窗口中的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters子键(如图3),
图3 Parameters子键
在Parameters子键下分别生成“CacheHashTableBucketSize”、“CacheHashTableSize”、“MaxCacheEntryTtILimit”、“MaxSOACacheEntryTtILimit”双字节值,再将其数值修改为“384”、“64000”、“301”、“300”,这样就能适当增大DNS缓存容量。
如果上述设置无法解决问题,可能尝试将DNS缓存文件替换掉。实在不行的话,可以通过查杀病毒来解决问题。
故障四、无法正常解析域名
现象:某局域网是通过代理服务器方式共享上网的,该代理主机中还安装、部署了DNS服务器,可是在客户端系统指定使用该DNS服务器解析域名时,发现网站页面无法打开,但是QQ、MSN等与域名解析无关的应用程序都能正常上网通信。显然,局域网中的DNS服务器无法正常解析域名。
措施:出现这种问题,可以首先打开DNS服务器的控制台窗口,单击“监视”标签,选中该页面中的“对此DNS服务器的简单查询”选项,再单击“立即测试”按钮,看看DNS服务器能否正常将该主机名称解析为IP地址。如果测试失败,那就意味着DNS服务器安装、配置存在问题,必须重点检查DNS配置。
如果DNS服务器能够正常解析域名,那问题多半出在代理服务器上。此时,可以重点查看代理服务器的工作状态是否正常,或者看看有没有采取限制访问措施。例如,代理服务器要是没有开通TCP 53端口和UDP 53端口,或者防火墙对网络连接进行了限制,那么客户端系统自然就无法通过其中的DNS正常解析域名了。
故障五、自动访问恶意站点
现象:最近,笔者上网冲浪时,发现输入要访问的站点地址后,IE浏览器打开的却是一些恶意站点的页面。
措施:这种现象多半是客户端系统的DNS缓存内容受到了“污染”,用户向DNS缓存申请域名解析请求时,就容易被送到恶意站点,而不是自己想要访问的站点。遇到这种问题时,可以依次单击“开始→运行”命令,在系统运行框中执行“net stop dnscache”命令,临时关闭客户端系统DNS缓存功能(如图4),这样就能正常访问自己想要的站点内容了。
图4 关闭客户端系统DNS缓存功能
当然,我们也可以通过修改DNS缓存的TTL值,来有效避免DNS缓存攻击现象。在修改TTL值时,依次单击“开始→运行”,在系统运行框中执行“regedit”命令,逐一跳到注册表编辑窗口HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters子键上,用鼠标双击该子键下面的DefaultTTL键值,将其数值设置为“32”或“64”,最后重新启动一下系统即可,不过我们不能将TTL值修改得过小,不然会加重局域网DNS服务器运行负荷。