早上刚坐到工位,打开浏览器想查点资料,结果网页打不开,提示‘无法连接网络’。重启路由器也没用,ping 外网地址通,但域名就是解析不了——八成是 DNS 服务器无响应了。
先确认是不是 DNS 的锅
别急着改设置,先判断问题出在哪。打开命令提示符(Windows 是 Win+R 输入 cmd,macOS/Linux 用终端),输入下面这行:
ping 8.8.8.8
如果能通,说明网络链路本身没问题。再试试:
ping www.baidu.com
如果显示“找不到主机”或超时,那基本可以确定是 DNS 解析出了问题。
临时换一个公共 DNS 试试
很多单位或家庭宽带默认用运营商提供的 DNS,一旦它们抽风,你就上不了网。这时候换成 Google 或阿里云的公共 DNS 能快速恢复访问。
比如 Google 的:
- 8.8.8.8
- 8.8.4.4
或者阿里云的:
- 223.5.5.5
- 223.6.6.6
在 Windows 上改法:控制面板 → 网络和共享中心 → 更改适配器设置 → 右键当前网络 → 属性 → 双击‘Internet 协议版本 4 (TCP/IPv4)’→ 选择‘使用下面的 DNS 服务器地址’,填进去就行。
路由器层面统一改 DNS
如果你家好几台设备都连不上,一台台改太麻烦。直接登录路由器后台,在 WAN 或 LAN 设置里把 DNS 改成公共 DNS,所有连进来的设备都能生效。
不同品牌界面不一样,但一般都在‘上网设置’或‘高级设置’里找得到。改完记得重启路由器,让设备重新获取配置。
清一下本地 DNS 缓存
有时候电脑自己缓存了错误的记录,也会导致解析失败。清掉缓存试试:
ipconfig /flushdns
这是 Windows 命令。macOS 用:
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
Linux 用户如果是 systemd-resolved,可以用:
sudo systemd-resolve --flush-caches
检查防火墙或安全软件
有些公司电脑装了严格的防火墙策略,会拦截对非标准 DNS 端口的请求。或者你装了某款‘优化大师’类软件,偷偷改了 hosts 文件或 DNS 设置。
可以临时关掉防火墙或杀毒软件试试。另外检查一下 C:\Windows\System32\drivers\etc\hosts 文件有没有被篡改成一堆重定向规则。
内网自建 DNS 出问题怎么办
企业环境常用内网 DNS 服务器做域名解析。如果内部 DNS 服务挂了,外网域名也解析不了,就得去查服务器状态。
登录 DNS 服务器(通常是 Windows Server 或 Linux Bind),看服务是否运行:
systemctl status named
或 Windows 里查看‘DNS Server’服务有没有启动。日志里经常能看到查询失败的具体原因,比如上游 DNS 超时、配置文件语法错误等。
运营商限制或劫持
个别地区运营商会劫持 DNS 请求,把你的查询重定向到他们的缓存服务器。这时候即使你设了 8.8.8.8,实际发出的请求还是被换了。
可以用工具如 dig 或 nslookup 看真实响应来源:
nslookup www.baidu.com 8.8.8.8
如果返回的服务器 IP 不是你指定的,那大概率被劫持了。解决办法是启用 DNS over HTTPS(DoH)或 DNS over TLS(DoT),不过需要客户端支持,比如 Firefox 浏览器自带 DoH 选项。