域名解析出现障碍这个情况, 它的本质意思就是, 在DNS链路里面的某个环节出现了中断现象。去排查这个问题的核心原则是, 按照从用户这一端向着服务器那一端这样的方向, 一层一层地去把问题的位置找出来。
先是得确认问题到底是出在本地网络上边, 还是说出在了DNS递归层上边, 再一个呢就是看问题是不是出在了权威服务器层这个方面里。把这个具体的事情定下来以后了之后再去做针对性的修复操作就行了。下面要介绍的这7步法, 它能够覆盖百分之九十以上的域名所出现的各种解析故障的场景。
大家只要按照顺序去执行就可以了, 然后很快就能把根因给锁定住。
第一步:确认故障范围
在客户端这边执行 ping 域名 这个测试操作。要是返回结果是“无法解析主机名”, 这就说明了DNS解析链路已经中断, 那么就需要去继续往后看后续的那些步骤。
要是这个操作能返回一个IP地址出来, 但是这个网站就是没有办法访问, 那就说明这个问题是出现在服务器这一层面上的事情, 也就是说问题是在Web服务、或者是端口、或者是证书这些方面, 而绝对不是DNS这一层面的问题。
同时先清除本地缓存:Windows执行 ipconfig /flushdns龙南市就业服务平台,Linux执行 sudo resolvectl flush-caches域名解析故障排查域名解析故障排查,排除缓存导致的旧记录干扰。
第二步:验证DNS记录配置
请你去登录域名管理后台, 比方说像gz88.cn提供的这个域名解析管理面板之类的地方去进行操作。你要一项一项地把A记录、CNAME记录、MX记录还有TXT记录都检查一遍。要看看这些记录是不是配置得正确无误, 要看看里面有没有拼写出错误的情况, 还要看看记录是不是已经过期或者被删除了。
重点的地方是要仔细核对记录里面的数值和实际的那个IP地址或者是目标地址, 它们之间是不是保持一致的。同时呢, 还要看一看TTL值是不是异常地偏高, 因为这个值过高的话, 可能会导致更新的延迟现象出现。
第三步:检查客户端DNS服务器配置
你需要确认, 设备所获取的那个DNS地址到底是不是正确的状况。在Windows系统里, 可以通过运行ipconfig /all/etc/resolv.conf这个文件来进行确认操作。如果DNS地址存在配置方面的错误问题, 或者遭遇到了运营商标配所进行的劫持行为, 那么你可以选择手动把DNS地址替换为公共DNS服务, 具体提供的公共DNS地址包括114.114.114.114、8.8.8.8以及223.5.5.5这几种。更换好之后进行重试操作, 再观察网络情况是否能够完全恢复正常。
第四步:多DNS交叉验证
先执行dig命令, 针对指定域名A记录查询223.5.5.5这个地址, 再执行nslookup命令, 针对同样域名查询119.29.29.29这个地址, 然后去对比各个公共DNS服务器返回的结果。这种情况, 我们可以分成两种情况来分别进行讨论。
第一种情况是, 如果公网DNS的状态是正常的, 但是本地DNS出现了异常的问题, 那么, 我们基本上就可以把问题的范围锁定在本地DNS或者电信服务商那边负责的递归DNS上面了。第二种情况, 如果是所有DNS都无法进行解析的工作, 那么, 问题很可能就是出在了权威DNS或者是域名本身这两个环节上面。
第五步:排查运营商与ISP层面
联系互联网服务提供商, 向他们确认, 他们的递归DNS服务是否处于正常运行的状态, 是否存在地域性DNS劫持或者是缓存没有及时完成刷新的情况。如果发现只有特定地区的用户出现异常情况, 这大概率是因为当地递归DNS发生了故障, 这时候可以建议这些用户临时切换为公共DNS以规避问题。
第六步:检查防火墙与端口连通性
确认一下服务器防火墙或者是云安全组, 有没有把那个 DNS 服务要用到的 53 端口给拦截了, 这个 iptables / firewalld 规则里面, 是不是已经把 53 端口放行了, 在企业内网的那个环境里头呢, 还得确认一下, DNS 的转发规则是不是正确的, 上游的 DNS 也是能连得通的, 可不能存在什么中间的设备直接把东西给阻断了。
第七步:核查域名状态与NS授权
登录到注册商的后台去确认一下这个域名是没有过期的, 而且也没有进入到了由 clientHold 或者 serverHold 锁定的状态。
如果在最近的这段时间内你修改过NS记录, 或者是完成了域名的转移操作, 那么全球DNS的传播是需要花费24到48个小时的, 在这个时间期间内部, 解析方面出现一些异常的现象是属于正常的情况的。
常见疑难速查
修改DNS记录之后, 要等到多久才能生效? 这个时间其实是取决于TTL值的。那个TTL值默认的情况是3600秒, 也就是说1个小时左右的时间。
但是, 要在全球的范围内完全生效的话, 可能需要花费24到48小时这么长的时间。所以, 如果在那些发生变更的Frequency很高的场景下面, 建议大家提前一下把TTL的值调整得低下一些, 低到300秒比较好。
为什么有的用户一切正常, 但是另一些用户却会出现异常的状况? 这大多是因为运营商那边的DNS缓存还没有刷新掉, 又或者是某些特定区域碰到了递归解析方面故障的缘故。对于那些出现了异常情况的家伙来说, 只要去把本地缓存清清楚楚地清除一遍, 或者改换成公共DNS来用一下, 就能立刻恢复原来的状态了。
如果浏览器在访问HTTPS站点时提示“域名解析错误”, 除了检查DNS设置以外, 还需要同步检查证书里的域名是否匹配、SNI配置是否正确, 以及CDN的回源DNS是否是正常状态。
按照上面的那7个步骤, 一层一层地去进行排查, 绝大多数的域名解析故障, 都可以在30分钟里面, 定位到根本原因, 并完成的修复工作。


