DNS服务器可以理解成互联网电话簿。浏览器输入网址,电脑没法直接识别域名对应的服务器IP,需要请求DNS服务器,由它把域名翻译成IP地址,浏览器拿到IP之后建立连接访问网页。家里上网,背后一定有DNS服务在工作,大多是运营商分配,也可以由路由器自动获取。不少人手动设置公共DNS,像114.114.114.114、223.5.5.5,这些也属于DNS服务器。DNS不负责传输网页内容,只负责域名IP解析。
DNS异常表现五花八门。最典型是网页打不开,但微信QQ可以正常收发消息,这类App很多请求不走本地DNS。浏览器报错一般提示DNS解析失败、找不到服务器、ERR_NAME_NOT_RESOLVED。还有一种情况,部分网站正常打开,部分无法访问,百度可以访问淘宝打不开。还有页面加载缓慢,长时间转圈,大概率DNS响应延迟。遇到这类问题不用直接重装系统,按顺序排查就行。

第一步重启光猫和路由器。听起来简单,但不少DNS故障根源就是路由器缓存紊乱、DHCP分配异常。断电等待三十秒通电,指示灯恢复正常再测试。依旧不行,手机电脑断开WiFi重连,或者开关一次飞行模式,让设备重新获取网络配置。
第二步检查DNS设置。Windows右键网络图标,打开网络和Internet设置,选中当前网络,进入属性,双击Internet协议版本4。默认选项是自动获取DNS服务器地址。如果之前手动填写过异常地址,改回自动保存。自动获取DNS本身不稳定,就手动填写国内公共DNS。阿里DNS:223.5.5.5、223.6.6.6;腾讯DNS:119.29.29.29;114DNS:114.114.114.114。国外8.8.8.8、1.1.1.1国内环境稳定性一般,优先选用国内DNS。Mac打开系统设置,找到网络,选中当前网络,进入详细信息,切换DNS标签页,关闭自动,添加223.5.5.5并置顶。
修改DNS之后刷新本地缓存。Win系统Win+R输入cmd,执行ipconfig /flushdns,提示刷新成功就完成。Mac终端输入sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder,输入管理员密码执行。Linux看发行版,resolvectl flush-caches或者systemd-resolve --flush-caches。手机直接重启设备,等同于刷新缓存。
修改DNS依旧异常,检查是否开启VPN或者代理。很多代理程序修改系统DNS,退出程序时不会自动还原,DNS请求转发到已经关闭端口。彻底退出VPN、Clash、V2Ray这类工具,刷新缓存重试。浏览器自带安全DNS也会干扰解析。Chrome、Edge设置搜索安全DNS,开启状态可以临时关闭,选择使用当前服务商。Firefox同类选项在隐私与安全板块。
hosts文件也是一个容易忽略的坑。如果之前手动修改域名映射做测试,忘记清理,域名会固定解析到填写IP,绕过DNS。Windows hosts路径C:WindowsSystem32driversetchosts;Mac、Linux路径/etc/hosts。使用文本编辑器打开,删除多余自定义条目,系统自带默认内容不要改动。
公司、校园内网出现DNS异常,大多和内网DNS服务器有关。这种场景自行更换公共DNS,可能无法访问内网资源,或是被防火墙拦截。优先咨询网管IT人员,不要自行修改。手机流量DNS故障,拨打运营商客服,提交工单让运营商刷新后台数据,很多情况可以解决。
最后,如果只是单个网站打不开,其余站点访问正常,不一定是DNS问题。可能网站服务下线、链路拦截、本地防火墙拦截。用nslookup 域名 8.8.8.8测试,返回IP,代表DNS解析正常,故障在网站服务器或是你的网络到服务器链路。返回超时或者找不到记录,再继续排查DNS。网页打不开不能全部归罪DNS,它只相当于电话簿,电话簿没问题,连不上代表对方服务不可用。