突然在更新 Chrome 后(我认为是从 v36 => v41),我开始在 Chrome 中遇到持续的 DNS 解析错误。最终在使用 Chrome 一段时间后,当我尝试访问 HTTP(S) URL 时,Chrome 将显示:
(在视口中:)
此网页无法使用
ERR_NAME_NOT_RESOLVED
(在控制台中:)
net::ERR_NAME_NOT_RESOLVED
(在chrome://net-internals/#dns
:)
错误:-105(
ERR_NAME_NOT_RESOLVED
)
请求显示Developer tools > Network
为status: (failed)
。
有时在显示错误后,过一段时间它会自动“刷新”并真正加载页面。我多次刷新页面有时可以加载,但最终变得毫无用处。至少有时在重新启动后它会正常工作一段时间,然后最终由于错误而无法使用。但是,即使问题已经开始,它也是间歇性的:有些请求仍然有效,而其他请求则无效,没有明显的规律或原因。错误的发生可能与打开的窗口/选项卡数量或 Chrome 运行的时间长度有关。
我怀疑 Chrome 可能正在耗尽一些为其分配了极低数量的内部资源。
前提
- Chrome 41-45 Win 7 x64(通过 PortableApps“安装”,以防万一)。
Prefetch resources to load pages more quickly
/Predict network actions to improve page load performance
曾被禁用且现在被禁用- Windows
DNS Client
服务(Dnscache
)已停止并禁用。 - 没有持续运行的防病毒软件。
- Windows 防火墙正在运行,且始终配置为允许 Chrome 访问。
- 当 Chrome 出现问题时,其他应用程序(例如 Firefox)可以正常运行。(我现在使用 Firefox 发布此信息,因为 Chrome 拒绝加载该网站。)
- 没有运行代理(通常,见下文)。
- 在
chrome://net-internals/#dns
上 下Async DNS Configuration
有Internal DNS client enabled: false
。点击Host resolver cache
Clear host cache没有用。 - 以下均无任何效果:
- 在隐身模式下运行且未启用任何扩展。
- 禁用硬件加速
- 清除 cookies。
- 在新的配置文件下创建并运行,除默认设置外没有扩展。
- 重置 Chrome 的设置。
- 卸载并重新安装(例如通过 PortableApps)。
代理(Fiddler2)
这一点非常特殊,所以我想单独提一下:跑步Fiddler2(HTTP 调试代理)并通过它代理 Chrome 可消除 Fiddler2 运行时出现的问题。
问题
- 什么可能导致这个问题?
- 该怎么办呢?
- 什么可以解释通过 Fiddler2 代理 Chrome 时问题消失的原因?
答案1
答复简述如下:
Fiddler 在 Chrome 中如何工作:
如果你注意到使用 Fiddler 时的代理设置,它将被设置为<loopback>
现在回到问题:
您的设置将取决于内部浏览器设置,主要取决于 ie 或 Firefox
1)刷新并更新您的 DNS,您可以使用 msprompt 执行此操作:
net stop dnscache
net start dnscache
ipconfig /flushdns
ipconfig /renew
ipconfig /registerdns
正如你提到的Windows DNS 客户端服务(Dnscache)已停止并禁用为了缓解这个问题,请尝试启动上面提到的 DNS 服务这里
或者您可以尝试Repair/Reset Winsock
使用此命令进行设置:
netsh winsock 重置目录
上述命令将重置目录,您需要重新启动计算机。您可以通过以下命令检查/查看 DNS 缓存中保存的数据:
ipconfig /displaydns
另一个解决方案可能是确保您已选中“使用以下 DNS 服务器地址”,并且您可以使用以下域名系统
Preferred: 8 . 8 . 4 . 4
Alternate: 8 . 8 . 8 . 8
Check "OK"
如果您使用 IPV6 地址,请确保您不使用 ipv6,请确保 DNS 已设置回自动并且 IPv6 已被禁用。
另外,您没有提到您的 ie 或 firefox 是否运行正常,最后的解决方案是将 chrome 重置为默认值并从默认浏览器导入设置[ie/firefox]
如果以上所有解决方案均不起作用,请执行以下操作并编辑问题:重新启用 Windows 防火墙,按照惯例连接到路由器/调制解调器,获取命令提示符(开始->运行->cmd),然后输入 ipconfig /all >test.txt,现在复制 test.txt 的全部内容
答案2
尝试刷新并更新您的 DNS,您可以使用 msprompt 执行此操作:
ipconfig /flushdns
ipconfig /renew
ipconfig /registerdns
我看到的其他方法是手动添加 DNS 地址并重新启动调制解调器 5 分钟。