Chrome是否使用与操作系统不同的DNS服务器?


11

我在Linux上运行Chrome。我有本地DNS可以将* .myname.com解析为127.0.0.2(我键入“ host what.myname.com”或“ host myname.com”,然后看到正确的地址)。但是,在Chrome中,当我键入“ myname.com”时,它将重定向到“ www.myname.com”并解决我不需要的“真实”网站。

仅当我键入“ test.myname.com”而不是“ www.myname.com”时,Chrome才能将其正确解析为127.0.0.2。我猜想Chrome浏览器正在尝试通过www.anything.com和everything.com做一些时髦的事情。

如何解决?

PS:我正在使用的本地DNS是dnsmasq。如果我明确地将myname.com放到/ etc / hosts中,Chrome可以将其正确解析为127.0.0.2,但是我不能在/ etc / hosts中使用通配符。

PPS:我可以在chrome:// net-internals /#dns上确认Chrome将myname.com和www.myname.com正确地插入了真实的公共IP。

Answers:


6

实际上,Chrome使用的是自己的DNS客户端,该客户端与多个DNS服务器(本地DNS,路由器DNS,IPv6中的路由器DNS)进行通信。我转到chrome:// flags并禁用“内置异步DNS”。现在可以了。


2
从Google Chrome浏览器中删除了“内置异步DNS”标志,从而为此禁用了“修复”功能。 chromium.googlesource.com/chromium/src/+/... (从superuser.com/a/887191/109126
jcisio

5
此选项已从Chrome中删除,删除了答案以防止混淆或
降票

1
这里仍然存在某种问题。我在Linux Mint上使用Chrome 56,并且连接到VPN后需要几分钟来解析地址。Firefox立即执行。Chrome似乎需要一段时间才能看到中的更改/etc/resolv.conf
orodbhen

1
在Android版Chrome浏览器中仍然有效。该选项称为“异步DNS解析器”(chrome:// flags /#enable-async-dns)
MaxChinni

1
69+中没有此类选项,并且禁用chrome:// flags /#enable-new-preconnect(提及DNS)无济于事
vladkras

1

您可以更改代理设置,并强制其使用所需的地址。

打开一个扩展名为.pac的新文件,系统将使用这些文件来确定代理,并将其复制到文件的内容中:

function FindProxyForURL(url, host) {
    if (host=='www.myname.com' || host=='myname.com'){
        return 'PROXY 127.0.0.2';
    }
    // All other domains should connect directly without a proxy
    return "DIRECT";
}

转到chrome代理设置,然后在“用于自动代理配置的网址”下输入该文件的路径。

不需要DNS服务器,您可以将其重定向到计算机上的其他端口,并可以根据需要对其进行编程。


1
我在使用Mac时使用了它,因为在OS XI中,整个系统都可以使用.pac文件。在Linux AFAIK中不可用(不适用于wget,curl等)。
jcisio 2013年

你有什么linux?(我有kubuntu,它正在工作)
Ohad Cohen

Archlinux + KDE。我只是不相信Chrome设置会改变控制台中的操作系统行为。
jcisio 2013年

chrome代理设置只需打开系统代理设置
Ohad Cohen 2013年

谢谢,我刚刚在上网本中对xubuntu进行了测试。无法打开系统代理设置(页面chrome:// linux-proxy-config /给出了错误)。稍后再尝试使用Archlinux。
jcisio 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.