当我说自行解析 DNS我指的不是 DoH,我认为从扩展上讲它也在其中。
我指的是常规/标准/未加密/“经典”DNS。
当我在计算机上切换网络时,例如从我常用的防火墙严密的子网切换到防火墙不严密的子网时,一旦检测到变化,我的主机防火墙就会弹出一个窗口,提示 Vivaldi/Chromium/Chrome/Brave/… 想要建立新<ip-address-set-on-my-system's-settings>
连接UDP:53,而不是让系统来处理——这才是它应该如何工作的,对吧?主机上的应用程序使用系统的解析器;从第 7 层到第 1 层,通信向下传递,反之亦然。
如果我对弹出窗口说“不”,浏览器就会完全停止工作,因为这是规则。因为我说了“不”,所以我假设连接是拒绝明确地,而不仅仅是已丢弃如果我设置防火墙警报模式到默默地阻止一切,在此期间不会为被阻止的流量创建规则。
在静默阻止期间,Chromium 浏览器会继续使用系统的解析器工作。或者至少这是我对此唯一合理的解释,但同一防火墙报告的系统 DNS 客户端进程的网络活动证实了这一点。
我并不是 Chromium 的忠实用户,只有在需要访问网站而又不想取消 Firefox 的安全功能时才会用到它,因为取消安全功能有点麻烦。但据我所知,就像 Firefox 一样,它也有这个功能旗帜类似于 Firefox 的关于:(例如:about:about)页面。设置可能在那里吗?如果是的话,我该如何找到它?
答案1
Chrome 倾向于使用自己的 DNS 解析器,这样它就可以在内部管理缓存或 DoH 等内容,这样清除 Chrome 缓存等操作就不会影响整个系统。默认情况下,它会读取系统的 DNS 设置,但除非必要,否则不会使用解析器。
目前,强制 chrome 对所有内容使用系统解析器的唯一方法是使用命令行标志,该标志采用如下映射列表,它适用于任何 chrome 浏览器:
chrome.exe --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE 127.0.0.1"
Google 在这里对 Chromium 解析器行为的如何/何时/为什么进行了深入的描述:https://chromium.googlesource.com/chromium/src/+/master/net/dns/README.md
您还可以访问about://net-internals/#dns
一些其他工具。
我仅在 Windows 上测试了 Chrome 和 Edge,发现 Edge 在我的情况下更喜欢系统 DNS 解析器。我不认为其他 Chromium 浏览器会这样做,但您可能需要根据您使用的浏览器进行调整。