只要网站要么就完全打不打开, 要么加载速度会缓慢得让人受不了, 又或者在访问的时候会弹出各种各样的报错信息, 那么就很有可能是dns解析这个环节当中出现了问题。

那么使用dns解析的检测工具来进行检查, 这一定是排查这类故障的最为关键的第一步操作, 也是效率最高的操作方式。当前这篇文章专门提供了一套从进行检测到准确定位问题的完整操作流程, 这一套流程详细覆盖了市面上主流的检测工具以及常见的多种异常场景表现。

第一步:确认DNS解析结果是否正确

你可以开启电脑里的网络页面, 然后去找那些专门用来查DNS的小工具, 比方说像gname.xin这个地方提供的那个DNS查询的功能啦, 还有DNSPod在线检测功能也是可以的, 要不就在电脑的命令行里输入dig或者是nslookup那个命令指令也行, 总之你得把你自己的域名放进去进行查找, 等着看系统最后给你返回出来的是哪一个IP地址, 看完以后你要仔细地核对这个数字到底和你心里头预期的是不是一样的样子, 这里面特别需要注意好下面那三件事情。

找到A记录或者是AAAA记录这些存在的地方, 然后把那里显示出来的指向的服务器所使用的IP地址到底是什么情况进行确认和检查, 看一看它到底是不是正确的。

关于CNAME记录的问题, 需要去确认一下, 到底存不存在那些多余的跳转链路。

查看NS记录, 目的是确认目前正在使用的那一组DNS服务器的地址, 是不是和那个域名注册商网站上所填写的配置好的信息完全保持一致。

如果解析出来的结果和大家期待的样子不一样的话, 就说明问题出现在域名服务商那边设置的有问题, 或者存在dns传播有延缓的情况, 这时需要去域名管理的后台那里仔细核对一下相关的记录。

第二步:检测解析链路与响应时间

如果网络地址本身被确认是准确的, 可是连接操作依旧出现不正常的状况, 那么就必须得对域名解析这一条链路展开更进一步的检查处理。具体的关键操作要点如下所示。

你可以进到 gname.xin 的 DNS 诊断页面, 或者用类似这样的工具去进行操作。然后你需要选中那个叫“全球节点解析检测”的选项。

接着你要去观察一下, 像是北京、广州、新加坡、法兰克福这些不同地区, 它们返回过来的 IP 地址是不是都一样。如果发现并不一致的话, 那就说明可能存在这种情况, 也就是 DNS 节点同步的速度慢了, 或者说是受到了污染的干扰。

通过执行 dig, 再加上 +trace 这个参数进行逐级查询的方式, 来定位从根服务器到权限服务器的那每一跳的链路, 是否处于通畅的状态。

DNS解析检测工具怎么用:网站打不开、解析超时,按这3步排查(图1)

对解析响应的时间进行记录。在正常的TTL范围内, 响应的具体时间需要低于50毫秒。当超过200毫秒的时候, 通常就代表着权威服务器的负载过高了, 或者是网络链路出现了异常情况。

第三步:验证客户端本地环境

当链路解析的过程一切正常, 但是本机仍然没有办法进行访问的时候, 这个情形出现的原因极有可能是存在于客户端这部分的。

你要是用的Windows系统, 就执行那个ipconfig /flushdns, 要是用的是macOS系统, 就执行那个sudo dscacheutil -flushcache, 这么做的目的是为了要把本地的DNS缓存给清除掉。

先试着把系统用的DNS服务器暂时改成223.5.5.5, 这个地址是阿里云提供的DNS服务, 或者也可以改成119.29.29.29, 这个是由腾讯云下的DNSPod所运营的, 这样做的主要目的是为了排除因运营商那边的DNS服务器出现故障而导致的问题。

检查 hosts 文件中是否存在对该域名的静态绑定,必要时注释或删除。

主流DNS解析检测工具速查

大城新闻网

工具 适用场景 入口
gname.xin DNS检测 在线快速查询、全球节点对比 官网在线工具栏
dig / nslookup 命令行深度排查 系统终端
DNSPod在线检测 国内节点覆盖全 tencent.com 搜索
Route / MTR 解析+路由联合诊断 命令行或在线版
Cloudflare DNS Checker 海外节点与CDN联查 cloudflare.com

高频疑难与应对

刚刚完成了对DNS记录的修改动作, 当前处于部分地区无法识别并生效的状态, 这种情况属于基于TTL机制而产生的正常传播延迟过程, 需要耐心等待到原始的TTL时间参数期满结束为止, 在最长可能需要等待48个小时之后, 或者采取临时性措施降低TTL数值设定后再进行重试操作。

解析的结果是正确的, 但是浏览器里面依然是显示着旧的页面内容, 这时候你需要做的动作是去清除浏览器的缓存文件夹或者是强制进行刷新操作, 具体的方式就是按键盘上的Ctrl键加Shift键再加R键一起按下。

如果是只有公司内网出现异常情况, 但是外网访问是正常的状况, 那大概率是因为内网的DNS代理或者防火墙拦截所导致的, 所以这个时候应该联系IT部门来仔细检查那个AD DNS的转发规则。

以上这个流程, 它是覆盖从“解析结果是否正确”一直到“客户端能否正常访问”这样完整的链路的。你可以按照三步来依次执行操作, 这样子做的话, 绝大多数的DNS解析故障是可以在十分钟之内完成定位并解决的。