Windows 11的DoH»»HAHAHA

10月份最期待的事情之一就是Windows 11的正式发行.第一时间升级体验了下,浏览各处的配置时候发现DNS的设置和以往不大一样.

Windows 11的DNS配置

之前基本只能在Firefox/Chrome/Edge这种自带对DoH支持的应用程序上才能使用.

而Win11带来惊喜之一就是:操作系统层面的DoH支持可能会使所有应用程序的解析隐私受到保护.

前提:自建DoH服务器

主流DoH在这边无法使用,必须自建.刚好前几天用CoreDNS自建了DoH服务器,见文章:是时候部署DoH服务保护浏览隐私了.

配置尝试过程

首先尝试了下输入8.8.4.4,如上图所示出现了和DoH (DNS Over HTTPS)有关的选项.

尝试了1.1.1.1也是出现DoH,而114.114.114.114却不行.

输入自建DoH服务器的IP则未出现DoH的选项,一开始以为是我的DoH服务器没开放53只开放了443导致的,但同时开放了53后发现也不行.

碰壁几次后换了个思路,不从GUI进行设置了,搜索和这个doh有关的powershell命令,果然,答案出现了:

https://docs.microsoft.com/en-us/powershell/module/dnsclient/get-dnsclientdohserveraddress?view=windowsserver2022-ps

虽然不是针对win11的文档…但试了下可以运行…

> Get-DnsClientDohServerAddress

ServerAddress        AllowFallbackToUdp AutoUpgrade DohTemplate
-------------        ------------------ ----------- -----------
149.112.112.112      False              False       https://dns.quad9.net/dns-query
9.9.9.9              False              False       https://dns.quad9.net/dns-query
8.8.8.8              False              False       https://dns.google/dns-query
8.8.4.4              False              False       https://dns.google/dns-query
1.1.1.1              False              False       https://cloudflare-dns.com/dns-query
1.0.0.1              False              False       https://cloudflare-dns.com/dns-query
2001:4860:4860::8844 False              False       https://dns.google/dns-query
2001:4860:4860::8888 False              False       https://dns.google/dns-query
2606:4700:4700::1001 False              False       https://cloudflare-dns.com/dns-query
2606:4700:4700::1111 False              False       https://cloudflare-dns.com/dns-query
2620:fe::fe          False              False       https://dns.quad9.net/dns-query
2620:fe::fe:9        False              False       https://dns.quad9.net/dns-query

看着是要自己通过命令才能在配置上加上DoH服务器了,看到有关命令:Add-DnsClientDohServerAddress,尝试了下不行,要在管理员权限中运行,同时设置不让降级并且自动升级的选项,如下.

> Add-DnsClientDohServerAddress -ServerAddress 45.XX.XXX.X -DohTemplate https://XXXXXX.XXXXX.XXXX/dns-query -AllowFallbackToUdp $False -AutoUpgrade $True

ServerAddress AllowFallbackToUdp AutoUpgrade DohTemplate
------------- ------------------ ----------- -----------
45.XX.XXX.X   False              True        https://XXXXXX.XXXXX.XXXX/dns-query

再次运行Get-DnsClientDohServerAddress,发现我们的DoH服务器也在列表中了, 然后,在图形界面的设置中输入自建的DoH服务器的ip,就果然出现了DoH的选项.

Windows 11的使用自建DoH服务器配置

验证

在已开启DoH和未开启DoH的情况下分别开启wireshark抓包并打开普通应用浏览,发现开启DoH后就没有普通DNS请求了.说明我们的配置成功了.

同时验证了在wsl的默认网络配置(dns的设置默认转发到主机)下,也是因为dns请求到主机,也因此受益.

总结,太长不看

先在管理员模式下的powershell使用Add-DnsClientDohServerAddress -ServerAddress 45.XX.XXX.X -DohTemplate https://XXXXXX.XXXXX.XXXX/dns-query -AllowFallbackToUdp $False -AutoUpgrade $True,把自建DoH服务器ip和url地址配置到win11的dns服务列表中,亦即从Get-DnsClientDohServerAddress中可以看到的服务器列表中.然后即可在网络设置界面中输入ip即可弹出DoH相关选项.

参考

是时候部署DoH服务保护浏览隐私了.

https://docs.microsoft.com/en-us/powershell/module/dnsclient/get-dnsclientdohserveraddress?view=windowsserver2022-ps

https://docs.microsoft.com/en-us/powershell/module/dnsclient/add-dnsclientdohserveraddress?view=windowsserver2022-ps