今天我花了三个小时仔细研究了Windows的DNS加密(DoH)相关的内容,最终成功开启了国内可用的DNS加密功能,如果你还不知道什么是DoH并对原理感兴趣,可以参考这篇文章:https://zhuanlan.zhihu.com/p/365093156,话不多说,上干货。
前置条件
- Windows 11系统(build2200及以上)
- Windows 10 系统(build19628及以上),如果版本号达不到,需要加入Windows 10 预览版才行
核心目标
我需要一个一劳永逸的保障DNS安全的方案,此次Windows添加的DNS功能就是个很好的契机,所以开始之前,我设定了两个核心目标:
- 安全可靠(防DNS污染)
- 速度快且稳定(要支持EDNS,防止国内网站被解析到外面)
考虑到8.8.8.8(或1.1.1.1)的特殊情况,这次我选择了OpenDNS的公共服务(208.67.222.222;208.67.220.220),在国内能有200ms的稳定ping值(联通网络),并且路由线路比较好。
当然你也可以选择国内的一些支持DoH服务商(比如223.5.5.5),速度会更快一些。
设置步骤
设置的时候我发现Windows11 只支持少数几个DoH服务商(比如8.8.8.8等),难道就无法自定义吗?然后我进一步研究尝试出了自定义的方法(此篇文章的含金量就在这里)
1.首先我们windows键+x以管理员身份打开一个Windows终端(其实就是PowerShell)
2.然后看一下Windows默认支持的有哪些DoH服务商
(除了Quad9,其它的知名DNS服务商因为特殊原因大家都无法使用DoH,但是Quad9的DNS服务线路不佳,请求容易失败)
3.接下来我们添加OpenDNS作为加密DNS服务商模板:
netsh dns add encryption 208.67.220.220 “https://208.67.220.220/dns-query” no no
netsh dns add encryption 208.67.222.222 “https://208.67.222.222/dns-query” no no
4.我们netsh dns show encryption再确认一下:
5.接下来打开“网络和Internet设置”,选择以太网(如果电脑是用的Wifi就选Wifi),点击编辑(编辑DNS服务)
6.在这里我们手动设置DNS服务器为208.67.220.220和208.67.222.222,这里我们为了验证DoH效果,选择了“仅加密(通过HTTPS的DNS)”,你也可以选择“已加密的首选、未加密的允许”以实现DNS回滚(回滚的时候就又是访问的53端口的常规DNS了)
7.Ipconfig /flushdns 清理一下DNS缓存
8.打开浏览器看一下是否可以正常访问网站,如果一切正常,我们便用上了系统级别的DNS安全服务(以前我是在浏览器里单独设置DoH的),如果失败,则会出现无法获取DNS解析的情况(需要仔细检查一下操作步骤)。
结语
DNS服务安全至关重要,如果你对目前的上网环境不是很满意,怀疑可能有DNS污染问题,不妨按照本文的方法一试,如果有帮到你一点点,给个赞呗!如果你有更多问题,我们评论区见。