chromium intranet redirect detector


发布于 2020-09-21


有时候我们抓包,会看到Chromium内核的浏览器启动后发出3次奇怪网络请求,如下:

HEAD http://yjoivcxtjqj/ HTTP/1.1
Host: yjoivcxtjqj
Proxy-Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36
Accept-Encoding: gzip, deflate

intranet redirect detector request

它向3个随机不存在的域名发出了网络请求。这是浏览器omnibox的一个特性,叫做intranet redirect detector。用于检测内网中是否存在网络重定向、网络DNS劫持。

浏览器的omnibox允许用户既可以输入网址,也可以输入一些关键词直接搜索。当用户输入了一个关键词,比如testtest可以被当作一个内网域名,也可以当作一个关键词,浏览器的信息条不知道该显示哪种情况。

在某些情况下,ISP会拦截到DNS解析域名不存在的流量,从而进行NXDomain劫持。这就是有时候我们输入了一个错误的网址,但是仍然打开跳转到了一个网址。

这个特性带来了一些问题。

Chromium内核的浏览器已经占据了70%左右的市场份额。每次启动浏览器、网络发生了改变,会请求3个随机的不存在域名,目前每天产了几百亿不必要的DNS查询,加重了DNS服务器的流量负担。有人粗略统计过,根DNS服务器的流量,45.8%是来自chromium的这个特性。参见Chromium’s impact on root DNS traffic

有时候内网的一些网络请求会触发代理,可能要询问代理的用户名和密码,导致了用户的一些不便。

此外这个功能运行在UI线程上,通过监控数据看到一些相关的卡顿是由于它导致的。

最近,Chromium开发者正在考虑默认禁用这个功能。Issue 1090985: Disable Intranet Redirect Detector by default