虽说 Windows 11 提供了安全 DNS(或是说加密 DNS)的配置功能,但它的配置选项并不是想象的那样简单直观,而是和一般的 DoH 配置有所出入。配置错误的话,有可能导致 DoH 不生效,或者使部分 Electron 应用的网络极其不通畅。经过接近一年的折腾和研究,终于搞明白了如何正确配置它。
事情的起因是我在用 QQNT 的时候,登录需要很久时间,而且第一次一定不成功;而使用立创 EDA 的时候,总是打开白屏、难以登录,需要“静置”很久才“有概率”加载出来界面,再慢慢登录。一开始我以为是这俩“Electron 应用不行”的又一力证,还怀疑过是卡巴斯基(刚从 FS protection 切过去不久)的问题(当时卡巴斯基确实有卡网问题,后来修复了也排除了,只是时间上刚好碰到)。凑合用了接近一年,终于下定决心要好好研究修复一下这个问题。
其实说到底就一句话:保证 “DoH 域名指向的 IP 地址” 与 “配置的 DNS IP” 严格一致即可。DoH 域名指向的 IP,ping 一下即可拿到。
理论上 DoH 服务器和传统的 DNS 服务器是完全独立的两个配置,不知道为什么 Windows 在这里要这样设计。
拿 DNSPod 的 Public DNS 专业版举例:
可以看到这里左边给出了 DoH 和 DoT 的域名,右侧给出了 Public DNS 的 IP。DNSPod 在这里埋下了一个坑:右侧的 IP 地址,并不是左侧 DoH / DoT 域名所指向的 IP。
然而我在配置的时候,将主备 DNS 服务器配置成了右侧的两个 IP,并启用手动模板的 DoH,填入了左侧的地址。实际上 doh.pub
解析到的 IP 是 1.12.12.12
,而*.doh.pub
解析到的 IP 是 1.12.34.56
!
所以当我将 DNS IP 配置成 1.12.34.56
时,QQNT 和立创 EDA 的问题都迎刃而解了。
真是让人摸不着头脑啊,哎。