本文目录导读:

我们来系统地梳理一下DNS解析异常的排查与解决方法。
DNS(域名系统)的作用是将你输入的域名(如 www.google.com)转换成计算机能理解的IP地址(如 250.190.46),当这个“翻译”过程出问题时,就会导致“网站无法访问”、“应用程序网络异常”等问题。
以下是排查步骤,建议按顺序进行,从最简单、最常见的开始:
第一步:快速判断与排除
-
确认是否是个别网站问题:
- 尝试访问其他几个知名网站(如
baidu.com,taobao.com),如果其他网站能打开,只有特定网站打不开,问题可能出在那个网站的服务器或你的本地DNS缓存上,而非你的整体网络。 - 检查是否为全局断网:尝试用IP地址访问网站,在命令提示符(CMD)中输入
ping 142.250.190.46(Google的IP),如果能ping通,说明网络是通的,问题100%出在DNS解析上,如果ping不通,则是网络连接本身的问题(如网线/光猫故障、欠费等)。
- 尝试访问其他几个知名网站(如
-
初步使用命令检查(Windows/Mac/Linux通用):
nslookup(最常用):在命令行输入nslookup www.baidu.com(或者你打不开的域名),如果返回的“Address”一栏是一串IP地址,说明DNS能解析,如果返回“Can‘t find...”、“Non-existent domain”或“server failed”,则DNS解析失败。- 注意观察第一行:
Default Server后面显示的是你当前使用的DNS服务器地址。
- 注意观察第一行:
ping:输入ping www.baidu.com,如果系统开始解析并显示IP地址和丢包率,则正常,如果显示“Ping request could not find host...”,则DNS解析失败。
第二步:常见且简单的解决方案(90%的问题可解决)
如果确认是DNS问题,按以下顺序尝试,每次尝试后重新访问网页测试:
刷新DNS缓存 你的电脑会把之前解析过的域名和IP对暂时存起来,但有时这个缓存会过期或损坏。
- Windows:以管理员身份运行命令提示符(CMD),输入
ipconfig /flushdns,回车。 - macOS:打开终端,输入
sudo dscacheutil -flushcache和sudo killall -HUP mDNSResponder,回车(两个命令都输)。 - Linux:打开终端,输入
sudo systemctl restart nscd或sudo /etc/init.d/nscd restart(具体取决于发行版)。
更换公共DNS服务器(最有效的方法之一) 这是解决大部分DNS解析故障的核心,运营商(如电信、联通、移动)提供的DNS有时不稳定、慢或存在劫持,换成全球通用的公共DNS通常立竿见影。
- 首选推荐(第一名):
- Google Public DNS:
8.8.8和8.4.4 - Cloudflare DNS(速度极快、注重隐私):
1.1.1和0.0.1 - 国内首选(阿里云):
5.5.5和6.6.6 - 国内备用(腾讯/114):
114.114.114和114.115.115
- Google Public DNS:
如何操作?
- Windows:设置 → 网络和互联网 → 更改适配器选项 → 右键点击你正在用的网卡(以太网或WLAN)→ 属性 → 双击“Internet协议版本4 (TCP/IPv4)” → 选择“使用下面的DNS服务器地址” → 填入上面的DNS地址(首选和备用)→ 确定。
- macOS:系统偏好设置 → 网络 → 选择当前网络(Wi-Fi或以太网)→ 高级 → DNS → 点击左下角“+”号,添加新的DNS服务器(如
8.8.8),并将原有栏目的地址删除或移到下方 → 好 → 应用。 - 路由器:登录路由器管理后台(地址通常是
168.1.1或168.0.1) → 找到“网络设置”或“WAN口设置” → 将DNS模式从“自动获取”改为“手动输入” → 填入公共DNS。这样做能让家里所有设备一次性解决问题。
重启网络设备(解决临时状态) 关闭路由器和光猫电源,等待 30秒 再重新插电开机,这能清除设备内部的临时缓存和错误状态,让设备重新向运营商获取新的DNS配置。
关闭代理/VPN/网络加速软件 某些代理软件(如Clash、V2ray等)或游戏加速器会修改你的网络设置,建议先完全退出(关闭软件进程,而非仅最小化)再测试。
第三步:深入排查(如果以上均无效)
-
检查 Hosts 文件(Windows)
- 路径:
C:\Windows\System32\drivers\etc\hosts - 用记事本打开,查看是否存在你想访问的域名的条目(
0.0.1 www.baidu.com),如果有,且该IP不对,会导致无法访问,可以暂时将对应的行前面加上 注释掉,或删除该行。
- 路径:
-
检查是否被劫持或中毒(较少见)
- 如果访问
baidu.com却被导向一个陌生网站,可能是运营商劫持或电脑中了DNS劫持病毒,运行杀毒软件(如360、火绒等)进行全盘查杀,查看路由器管理界面是否被恶意修改。
- 如果访问
-
检查上游DNS服务器是否故障
- 如果你使用的是公司或校园网的内部DNS,可能其服务不稳定,可以尝试直接用
nslookup向公共DNS查询:nslookup www.baidu.com 8.8.8.8,如果能解析出IP,说明本地DNS服务器可能有问题,可以联系网络管理员。
- 如果你使用的是公司或校园网的内部DNS,可能其服务不稳定,可以尝试直接用
-
检查系统日期和时间
错误的系统时间会导致HTTPS证书校验失败,有时会误认为是DNS问题,请确保电脑时间、日期和时区完全正确(自动同步即可)。
总结排查流程图
flowchart TD
A[网站访问不了] --> B{能访问其他网站吗?}
B -- 能 --> C[清空DNS缓存 + 重启浏览器]
B -- 不能 --> D{能 ping 通 IP 地址吗?}
D -- 能 --> E[问题确认在DNS]
D -- 不能 --> F[检查网络连接 / 重启路由器和光猫 / 联系运营商]
E --> G[更换公共DNS]
G --> H[重启电脑 / 检查Hosts文件 / 关闭代理软件]
H --> I[成功?]
I -- 是 --> J[恭喜解决]
I -- 否 --> K[使用 nslookup 进一步诊断]
K --> L[联系网络管理员或专业支持]
最简版本总结(记不住太多时的救急顺序):
- 按
Win + R,输入cmd回车,输入ipconfig /flushdns回车。 - 打开网络设置,把DNS手动改成
8.8.8和5.5.5。 - 拔掉路由器和光猫电源30秒再插上。
- 重启电脑。