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
它向3个随机不存在的域名发出了网络请求。这是浏览器omnibox的一个特性,叫做intranet redirect detector。用于检测内网中是否存在网络重定向、网络DNS劫持。
浏览器的omnibox允许用户既可以输入网址,也可以输入一些关键词直接搜索。当用户输入了一个关键词,比如test
,test
可以被当作一个内网域名,也可以当作一个关键词,浏览器的信息条不知道该显示哪种情况。
在某些情况下,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