DNS 与 DoH
可以参考【DNS 解析】DNS 解析过程分析这篇文章的内容,分析了 DNS Over HTTPS 的请求方式和过程。
腾讯云 DNSPOD 公共解析
腾讯云 DNSPOD 提供了个人专属配置和解析设置,利用 DoH 可以对解析来源设备进行区分,同时其有针对性的屏蔽域名,设置自定义解析等功能也是很有用的。
下图为 公共解析的控制面板图,对 IP 和授权 ID 进行了打码处理。
配置 DoH
那么如何在 Win 11 操作系统上配置 DoH 呢?有这么两套方案:1. 使用专用客户端,填入授权ID;2.使用系统 DNS配置。
使用专用客户端
在配置页面的配置方式部分,找到 Windows ,找到下载链接即可下载专用客户端,安装并启动。
在状态栏中找到图标,点击右键,选择配置,在如下弹出窗口中输入 授权 ID,重启客户端即可。
客户端进行配置简单方便,但如果存在以下一些情况,那么就会不太方便:
- 多台 Windows 电脑希望通过 DoH 进行设备区分的(客户端请求的设备名是一样的,就会导致按设备区分功能不太好用)
- 不喜欢有软件在状态栏里或者不喜欢这东西推送通知或者不喜欢它开机自启的
系统配置
Windows 的 DoH
微软已经推出了 DNS 加密功能,使用 Win 11 配置过网络的一定不会陌生,如下图所示就是在 Windows 11 操作系统配置 DNS 的界面,可以看到已经有了 “DNS 加密” 的选项,但是其默认支持的 DNS 非常少,后面将会进行阐述。
在 Windows 技术社区中由文章详细说明了这部分的配置方法,Windows Insiders gain new DNS over HTTPS controls,其有这样的表述:
To start with, we want to note that the registry key controls documented in our original DoH testing blog post are no longer applicable. As stated there, those instructions were time limited to the initial DoH test rollout. If you did ever set that key, please delete it then reboot your machine before proceeding with the rest of this blog post.
这里设计到目前通过百度以“Windows 如何配置 DoH”这样的关键词进行搜索时经常看到的一个方法:通过注册表进行配置,目前已经不再需要它,并且原文作者推荐将其删除。
自带支持的 DoH
如前所述,并不是所有的 DoH 都可以直接使用,当我们想使用自己的 DoH 的时候就不再是能简单的填入 IP,选择加密那么简单了。
通过在 PowerShell 或者 Windows 终端中执行 Get-DnsClientDohServerAddress
或 netsh dns show encryption
就可以查看目前已有的 DoH 配置。
Get-DnsClientDohServerAddress 输出:
代码语言:text复制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 在当前网络环境下并不是很方便使用,我们需要需要为其增加我们自定义的节点。
增加 DoH 配置
通过
代码语言:shell复制netsh dns add encryption server=<resolver-IP-address> dohtemplate=<resolver-DoH-template> autoupgrade=yes udpfallback=no
或
代码语言:shell复制Add-DnsClientDohServerAddress -ServerAddress '<resolver-IP-address>' -DohTemplate '<resolver-DoH-template>' -AllowFallbackToUdp $False -AutoUpgrade $True
可以添加 DoH 配置,以通过 NETSH 为例,相关说明如下图
进行配置:
代码语言:shell复制netsh dns add encryption server=1.12.34.56 dohtemplate="https://doh-{{授权ID}}-{{设备标志}}.doh.pub/dns-query" autoupgrade=no udpfallback=yes
配置之后,在通过系统 GUI 进行设置,即可实现通过 DoH 进行 DNS 解析了。