dns 故障解析修复方法,常见 DNS 解析故障排查步骤

DNS故障表现有明显区分,浏览器打不开网站,提示找不到服务器或者DNS解析失败。也有不少隐性问题,网页加载缓慢,或者单独某个网站无法访问,其余站点正常。不同现象背后,原因各不相同。我整理了自己遇到以及帮别人排查的典型情况,从最简单操作开始逐层定位。

优先尝试清空本地DNS缓存。Windows系统按下Win+R,打开cmd,执行ipconfig /flushdns,提示成功刷新缓存就完成操作。Mac系统不同版本命令存在差异,通用指令sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder。Linux使用systemd-resolved,执行sudo systemd-resolve --flush-caches。清理缓存之后重试,很多临时解析故障可以直接解决,尤其是刚修改域名解析,本地还留存旧IP记录的时候。

dns 故障解析修复方法,常见 DNS 解析故障排查步骤

刷新缓存无效,下一步确认故障根源是否为DNS。打开命令提示符,ping 8.8.8.8,如果可以连通,代表基础网络没问题。再ping目标域名,提示找不到主机,基本确定DNS解析环节异常。使用nslookup 域名,查看响应的DNS服务器和返回结果。nslookup超时或者返回服务器找不到,代表当前使用的DNS服务器故障。

更换公共DNS验证,是简单有效的排查手段。电脑DNS地址修改为223.5.5.5阿里DNS、119.29.29.29腾讯DNS,或是8.8.8.8谷歌DNS,国内网络访问谷歌DNS稳定性较差。修改完成再次执行nslookup,更换DNS后解析恢复,说明原有DNS服务器异常。运营商分配DNS偶尔会出现故障,切换公共DNS可以绕开这类问题。路由器DNS配置同样值得检查,很多路由器默认运营商DNS,手动修改公共DNS,局域网所有设备都会生效。

故障不一定来自DNS服务器,本机hosts文件也会造成干扰。hosts内如果存在错误域名IP绑定,系统优先读取hosts记录,不会发起DNS查询。Windows hosts路径C:WindowsSystem32driversetchosts,Mac、Linux路径/etc/hosts。记事本或者vim打开查看,查找目标域名相关条目,找到之后注释或者删除,重新测试。

域名本身状态也要核验。域名到期未续费、被注册商暂停,解析直接失效。访问whois查询网站,查看域名到期时间与状态,状态显示clientHold或者serverHold,代表域名锁定,需要联系注册商处理。DNS记录配置错误同样常见,A记录IP填写错误、CNAME指向失效域名、MX记录出错导致邮件接收失败。登录域名解析后台逐条核对记录,重点检查近期改动过的配置。

自行管理服务器的场景,需要确认DNS服务是否正常运行。执行systemctl status named或者systemctl status dnsmasq查看服务状态,服务停止就启动。配置语法错误会导致DNS服务无法启动,named-checkconf可以校验配置文件。防火墙拦截53端口,DNS请求收发受阻,用iptables -L或者firewall-cmd --list-all查看防火墙规则。

CDN是容易忽略的因素。域名接入CDN,解析返回的IP是CDN节点地址,不是源站IP。CDN节点故障、遭受攻击,解析会返回错误IP或者超时。执行dig 域名 @8.8.8.8直接查询权威DNS,确认返回IP是否属于CDN网段。如果是,联系CDN服务商确认节点状态。

浏览器问题也会伪装成DNS故障。Chrome、Edge内置独立DNS缓存与预解析,访问chrome://net-internals/#dns清理缓存。浏览器安全DNS也就是DoH,开启之后会绕过系统DNS,直接向指定DoH服务器请求解析。DoH服务器不可用,解析直接失败。浏览器设置搜索安全DNS,临时关闭测试。

排查到这里,大部分常见故障都可以定位。依旧找不到问题,更换设备、切换网络,比如手机热点测试,区分故障是设备端还是网络侧。整个局域网解析异常,大概率是路由器或者上层网络问题,重启路由器、光猫有时能够修复。DNS故障大多不算复杂,基本都是缓存、配置或者DNS服务器临时异常,按顺序排查,耗时不会太久。

免责声明:本文提供的方法与建议仅供技术参考,实际部署效果受机房环境、运营商线路、系统配置等多重因素影响。请在专业人员指导下操作,因自行操作导致的业务损失本站不承担责任。

相关推荐