我有一个内部 DNS 服务器,它为我的内部服务器提供 DNS 名称。例如,我的 DNS 服务器将“files.mydomain.com”指向我的 NAS 的 Web 界面 192.168.1.200。
我还运行了一个公共 DNS 服务器,将同一个域暴露给互联网,但提供的是可公开访问的 IP,而不是内部 IP(192.168.1.x)。例如,从互联网解析“files.mydomain.com”将解析为 12.34.56.78。
问题是,位于 12.34.56.78 的机器是网关/防火墙,因此它不会“重定向”来自 LAN 内部的连接,即使它这样做,效率也会非常低。即使我的系统配置为使用内部 DNS 服务器,Google Chrome 仍会将“files.mydomain.com”解析为 12.34.56.78。在任何其他情况下(其他浏览器、命令行等)解析域都会正确返回正确的内部 IP 192.168.1.200。
从网上的阅读来看,这似乎与 Chrome 中的 Google 异步 DNS 服务有关,该服务会覆盖系统 DNS 并首先转到 Google 的 DNS 服务器。似乎只有在那里失败时,它才会真正使用系统 DNS。由于“files.mydomain.com”做外部解析(从 Google 的角度来看)到 12.34.56.78,Chrome 尝试连接到那里,但失败了。相反,在 LAN 内部,我需要 Chrome 连接到 192.168.1.200。各种选项用过的存在,但已被从 Chrome 中禁用或删除(提交消息通常是“我们不再需要此功能”)。令人沮丧。
如果这听起来很刺耳,请原谅,但请不要回答我以下问题:1)设置 IPv6 DNS;2)以某种方式重新设置我的网络,以便 Google 的 DNS 为 Chrome 提供内部 IP(糟糕的想法,而且它会阻止来自 LAN 外部的访问),或 3)使用 hosts 文件(无法承受内部服务器上可能发生的 DNS 更改)。
如何让 Google Chrome 停止使用 Google DNS 来解析 IP 地址?
在所有平台上观察 - Windows、Mac 和 Linux。
答案1
截至撰写本文时,禁用内置异步 DNS 缓存的设置已从页面中删除chrome://flags
,但可以使用命令行开关禁用它--disable-async-dns
答案2
有一种方法可以停用 Chrome ipv6 DNS,但已被谷歌移除
我会考虑使用本地主机文件作为黑洞。关于如何在这里做到这一点。