DNS解析检测这个工具, 其实就是网络运维、网站开发人员, 还有站长们用来查域名出了什么毛病的一个主要手段。下面这些提到的5款工具, 它们把从基础的查询到深度的诊断这么个完整的流程都给盖全了。这些工具呢, 是能直接拿去用在生产环境里面的。

nslookup(系统自带DNS解析检测工具,全平台)

Windows、Linux、macOS均内置。核心命令:

当你敲下去nslookup 域名这个命令之后, 你就会拿取到那个默认情况下的解析结果数据。

nslookup 域名 8.8.8.8:指定DNS服务器查询

执行代码nslookup -type=MX 域名, 目的是为了查询邮件交换记录。

适用场景指的是, 你可以用在快速验证域名是否可解析。以及排查本地DNS缓存异常的时候用。

dig(Linux/macOS,功能最全)

DNS解析检测工具推荐:5款常用工具及检测方法(图1)

当你敲代码输入这个命令之后, 计算机屏幕上面会出现完整的回应内容, 这里面包括像生存时间TTL、权威服务器, 还有起始授权记录SOA这些具体的数据。

dig 域名 +short:仅返回IPDNS解析检测工具,适合脚本调用

这里有一个dig 域名 @223.5.5.5的命令, 它的意思是指定去问阿里那个DNS服务器, 用来做交叉验证用。

使用dig 域名 ANY这个操作, 就是拉取全部记录类型的信息。

这个办法可以用在那些需要把整个解析过程弄得非常透彻、非常深入的场合。比如说, 你要去对比一下不同的运营商的DNS服务器给出的结果有什么不一样的地方。再一个就是用来看看那个TTL的时间是不是真正发生了作用。

ping / traceroute(连通性验证)

ping 域名:确认解析后网络可达

执行代码traceroute后面加上域名, 进行逐跳的路径追踪操作, 从而对中断发生的节点位置进行准确定位。

DNS解析检测工具推荐:5款常用工具及检测方法(图2)

当适用场景是解析结果正常但业务不通的时候, 需要判断这个故障到底是处于DNS层, 还是处于网络传输层呢。。

whois(域名状态核查)

进行whois域名查询这个操作, 目的是去查看域名的注册人信息, 同时也要去查看NS服务器的详细信息, 还得去看看域名的到期时间到底是在哪一天, 最后还要去看一眼当前的锁定状态是什么样子的。

具体的使用场景包含确认域名有没有到期, 核查NS记录是否被错误地修改了, 以及核实该域名是不是处在registrar lock锁定状态。

在线DNS检测平台

推荐DNSChecker.org, 它支持对多个区域进行比对;还可以使用DNSPod的在线诊断功能;另外也可以选择阿里云提供的DNS检测工具来进行检查。

适用的场景包括没有Linux终端运行环境的情况, 或者是需要一次性地对全国范围内不同运营商的解析一致性进行验证的情形。

标准排查流程(按序执行)

在电脑本地, 你先用那种叫作dig的指令加上域名来操作一下, 把解析出来的结果跟你想的一比对, 看看是不是全都对得上。

DNS解析检测工具推荐:5款常用工具及检测方法(图3)

把 8.8.8.8、114.114.114.114 和 223.5.5.5 分别指定为查询目标, 进行交叉查询操作, 然后对这些结果进行对比, 看一看它们是否一致。

执行 ping 域名 这个操作, 目的是为了验证当前的网络是不是连通状态。

whois 域名, 确认注册状态正常。

可以使用在线工具来做多城市的一致性检测。

如果第①步是正常进行的状态, 而第②步出现了异常的结果, 那么就把这种情况判定为本地DNS缓存污染的问题, 然后去执行以下的操作。

Windows:ipconfig /flushdns

Linux:sudo systemd-resolve --flush-caches

上文所说的那个流程, 它可以把百分之九十以上的关于DNS解析的故障定位的场景给覆盖到。因此的话, 这里有个建议, 就是希望这个运维的团队能够把这个东西安排进日常的检查操作规范里面去。