专栏首页程序生涯DNS(域名系统)介绍,深入解析DNS解析失败发生的原因及解决方法

DNS(域名系统)介绍,深入解析DNS解析失败发生的原因及解决方法

域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

开始时,域名的字符仅限于ASCII字符的一个子集。2008年,ICANN通过一项决议,允许使用其它语言作为互联网顶级域名的字符。使用基于Punycode码的IDNA系统,可以将Unicode字符串映射为有效的DNS字符集。因此,诸如“XXX.中国”、“XXX.美国”的域名可以在地址栏直接输入并访问,而不需要安装插件。但是,由于英语的广泛使用,使用其他语言字符作为域名会产生多种问题,例如难以输入,难以在国际推广等。

主条目:域名服务器记录类型列表

DNS系统中,常见的资源记录类型有:

  • 主机记录(A记录):RFC 1035定义,A记录是用于名称解析的重要记录,它将特定的主机名映射到对应主机的IP地址上。
  • 别名记录(CNAME记录): RFC 1035定义,CNAME记录用于将某个别名指向到某个A记录上,这样就不需要再为某个新名字另外创建一条新的A记录。
  • IPv6主机记录(AAAA记录): RFC 3596定义,与A记录对应,用于将特定的主机名映射到一个主机的IPv6地址。
  • 服务位置记录(SRV记录): RFC 2782定义,用于定义提供特定服务的服务器的位置,如主机(hostname),端口(port number)等。
  • NAPTR记录:RFC 3403定义,它提供了正则表达式方式去映射一个域名。NAPTR记录非常著名的一个应用是用于ENUM查询。

WHOIS(域名数据库查询)

不知道大家有没有遇到过DNS解析错误的问题,一般有时候我们上网会遇到网页打不开的状况,有时候提示是DNS错误,那就是解析出现了问题了,今天就帮大家一起分析下。

  一、什么是DNS解析故障?

  一般来说像我们访问的www.xtzj.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.softer.com,假如不能访问的话,那么DNS解析应该是不能够正常进行的。我们会收到DNS request timed out,timeout was 2 seconds的提示信息。这说明我们的计算机确实出现了DNS解析故障。

  小提示:如果DNS解析正常的话,会反馈回正确的IP地址,例如笔者用www.sohu.com这个地址进行查询解析,会得到name:sohu.com,addresses:61.135.133.103,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地址,然后空格接域名信息。例如笔者添加了“211.153.80.1 www.ftedu.gov.cn”与“10.82.0.1 www.ftedu.gov.cn”两个条目。

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

  三、总结:

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

  如果有遇到这个问题,也不用着急,今天教程已经解释得很清楚了,什么原因该怎么解决大家看着办吧,不过注意小心谨慎,希望对大家有帮助。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Web如何应对流量劫持?

    虽然互联网经过多年的发展,可是网站使用的底层协议仍是 HTTP,HTTP 作为一种明文传播协议,所有的传输数据都是明文,我们都知道在通信中使用明文(不加密) 内...

    用户7657330
  • 复制表

    基于现有的表创建新表是一项很容易的任务。以下代码将得到tb_test表的一个副本,名为tb_test2:

    用户7657330
  • css相关的几个点

    点评:css li 去掉点的样式写法,其实就是利用css的list-sytle样式来实现的。

    用户7657330
  • D妹上新|一键修改DNS,用上了吗?

    一键修改DNS,适用于什么场景: 1.如果用户刚刚将域名从其他注册商转入腾讯云,但是还没来得及用上腾讯云提供的解析服务。 2.如果用户的域名是在腾讯云注册的,...

    腾讯云DNSPod团队
  • 用本机电脑搭建网站(域名、DNS解析)

    最近又准备瞎捣鼓一下个人网站。本来呢,如果是自己玩玩的话,用花生壳或者NAT123这样的动态DNS解析就可以了。但是最近花生壳这个吊玩意不知道怎么又没办法解析了...

    乐百川
  • 美国半个互联网瘫痪对开发者使用 DNS 的启发

    DNS 行业正在面临越来越严重的安全威胁,我们应积极采取措施进行应对,最后,仍然是需要完善法律法规,并对进行攻击者加大打击力度,必要时进行法律制裁。

    腾讯云DNSPod团队
  • 选择 Namesilo 注册、转移、续费域名的理由

    魏艾斯博客www.vpsss.net
  • DNS 负载均衡:如何提升网站性能

    如果你想提高你的网站或Web应用程序的访问速度,DNS负载均衡或许可以帮助你实现这一目标。通过帮助你分散收到的流量,有助于使网站以最佳的速度运行。 ? 什么是D...

    企鹅号小编
  • 有你的设备吗?约五亿物联网设备仍受DNS重绑定攻击影响

    网络安全公司Aemis在去年发现蓝牙协议漏洞“BlueBorne”之后,于近日再次发出警告,称大约五亿的智能设备如今仍受DNS重绑定这种老式攻击的影响。

    FB客服
  • 来说说DNS解析

    通常 Internet 主机域名的一般结构为:主机名.三级域名.二级域名.顶级域名。 Internet 的顶级域名由 Internet网络协会域名注册查询负责网...

    前端博客 : alili.tech

扫码关注云+社区

领取腾讯云代金券