问题根源:什么是 DNS?
在解决问题之前,我们先简单理解一下 DNS(域名系统)是什么。

你可以把 DNS 想象成互联网的电话簿,你访问网站时输入的是人类容易记住的域名(如 www.baidu.com),但网络设备之间通信使用的是 IP 地址(如 61.200.7),DNS 服务器的作用就是将你输入的“名字”翻译成机器能懂的“地址”。
如果你的“电话簿”(DNS 服务器)配置错了,或者这本“电话簿”本身不存在、无法连接,你就永远查不到正确的“电话号码”(IP 地址),自然也就无法访问网站了。
常见原因分析
出现这个错误,通常有以下几种可能:
- 手动配置错误:你或他人手动设置了 DNS 服务器,但输入的 IP 地址是错误的、过时的,或者这个 DNS 服务器本身已经停止服务。
- 网络问题:你指定的 DNS 服务器无法连接,这可能是因为:
- 你的网络本身不通(比如路由器问题)。
- DNS 服务器在你的网络之外,但网络防火墙或运营商策略阻止了访问。
- DNS 服务器本身宕机或负载过高。
- DHCP 服务器问题:大多数情况下,我们的 DNS 服务器是由路由器或网络管理员通过 DHCP 自动分配的,如果路由器的 DHCP 设置错误,或者它指向了一个无效的 DNS 服务器,那么所有连接到这个网络的设备都会遇到这个问题。
- 本地缓存问题:你的设备可能缓存了错误的 DNS 解析记录,导致即使 DNS 服务器恢复了,你仍然无法访问。
- DNS 污染/劫持:在某些网络环境下,你的 DNS 请求可能被恶意或错误的中间节点拦截,并返回一个错误的 IP 地址。
解决方案(从易到难)
请按照以下步骤逐一尝试,通常能解决大部分问题。

检查网络连接(最基础)
在折腾 DNS 之前,先确保你的网络是通的。
- Ping 网关:打开命令提示符(Windows)或终端(macOS/Linux),输入
ping 你的网关IP(通常是168.1.1或168.0.1),如果能通,说明你和路由器的连接是正常的。如果不通,检查网线、Wi-Fi 连接,或重启路由器。
- Ping 公共 DNS:尝试 Ping 一个公共 DNS 的 IP,
ping 8.8.8.8(Google DNS)或ping 114.114.114.114(中国电信 DNS)。- 如果能通,说明你的网络可以访问外部 DNS 服务器,问题出在你当前的 DNS 配置上。
- 如果不通,说明你的网络基础连接有问题,需要先解决网络问题。
刷新本地 DNS 缓存(最快速)
很多时候,问题只是本地缓存造成的。
- Windows:
- 以管理员身份打开“命令提示符”或“PowerShell”。
- 输入命令:
ipconfig /flushdns - 看到“已成功刷新 DNS 解析缓存”的提示即可。
- macOS:
- 打开“终端”。
- 输入命令:
sudo dscacheutil -flushcache或sudo killall -HUP mDNSResponder
- Linux (Ubuntu/Debian):
- 打开“终端”。
- 输入命令:
sudo systemd-resolve --flush-caches
刷新后,重新尝试访问网站。

更改 DNS 服务器(最有效)
如果刷新缓存无效,最直接的方法就是更换一个可靠的 DNS 服务器。
方法 A:在单个设备上更改(临时生效)
-
Windows 10/11:
- 进入“设置” > “网络和 Internet” > “高级网络设置” > “编辑 IP 分配”。
- 选择你正在使用的网络(如 Wi-Fi 或以太网),点击“编辑”。
- 在“编辑 IP 设置”中,将“DNS 服务器分配”从“自动”改为“手动”。
- 打开“IPv4”,在“首选 DNS”和“备用 DNS”中填入以下任一组合的 IP 地址。
- Google DNS:
8.8.8(首选),8.4.4(备用) - Cloudflare DNS:
1.1.1(首选),0.0.1(备用) - 阿里云 DNS:
5.5.5(首选),6.6.6(备用) - 114 DNS:
114.114.114(首选),114.115.115(备用)
- Google DNS:
- 保存设置。
-
macOS:
- 进入“系统设置” > “网络”。
- 选择你正在使用的网络(如 Wi-Fi),点击“详细信息”。
- 切换到“DNS”标签页。
- 点击 号,添加上述公共 DNS 服务器的 IP 地址。
- 将新添加的 DNS 服务器拖到列表最上方(作为首选),然后点击“好”。
-
手机 (iOS/Android):
- 进入 Wi-Fi 设置。
- 长按当前连接的 Wi-Fi 网络,选择“修改网络”或“网络配置”。
- 在“高级选项”中,将“IP 设置”改为“静态”或“DHCP”(部分手机叫“BHC”)。
- 找到“DNS”选项,填入公共 DNS 的 IP 地址。
- 保存设置。
方法 B:在路由器上更改(一劳永逸)
如果你家里有多台设备,在路由器上设置 DNS,所有连接的设备都会生效。
- 在浏览器中输入路由器的管理地址(通常是
168.1.1或168.0.1),登录管理界面。 - 找到“网络设置”、“LAN 设置”或“DHCP 设置”相关的选项。
- 在 DNS 服务器设置中,将“自动从 ISP 获取”或“不指定”改为“手动”或“使用以下 DNS 服务器”。
- 填入你选择的公共 DNS 服务器地址(如
8.8.8和1.1.1)。 - 保存设置并重启路由器。
重置网络配置(大招)
如果以上方法都无效,可能是网络配置文件损坏了。
-
Windows:
- 以管理员身份打开“命令提示符”或“PowerShell”。
- 依次执行以下命令(每条命令执行后按回车):
netsh winsock reset netsh int ip reset ipconfig /release ipconfig /renew ipconfig /flushdns - 执行完毕后,必须重启电脑才能生效。
-
macOS:
- 打开“终端”。
- 输入命令:
sudo networksetup -setdnsserviceorder Wi-Fi "Empty" "127.0.0.1"(将 Wi-Fi 替换为你使用的网络服务名,如 "Ethernet")。 - 然后再设置回你想要的 DNS:
sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 1.1.1.1。
总结与排查思路
| 解决方案 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| 刷新 DNS 缓存 | 怀疑是本地缓存问题 | 速度快,操作简单 | 只能解决缓存问题 |
| 更改 DNS 服务器 | 最常见的原因,配置错误或 DNS 服务器故障 | 简单有效,能绕过本地/运营商 DNS 问题 | 需要手动设置,在路由器上设置才能全局生效 |
| 重置网络配置 | 怀疑网络配置文件损坏 | 能彻底修复底层网络问题 | 操作稍复杂,需要重启设备 |
| 检查网络连接 | 所有网络相关问题的第一步 | 确定问题根源 | 不能直接解决 DNS 问题 |
推荐的排查顺序:
**先
