红尘踏破逍遥境
回首何处是人间

今天我花了三个小时仔细研究了Windows的DNS加密(DoH)相关的内容,最终成功开启了国内可用的DNS加密功能,如果你还不知道什么是DoH并对原理感兴趣,可以参考这篇文章:https://zhuanlan.zhihu.com/p/365093156,话不多说,上干货。

前置条件

  1. Windows 11系统(build2200及以上)

  2. 或者Windows 10 系统(build19628及以上),如果版本号达不到,需要加入Windows 10 预览版才行

核心目标

我需要一个一劳永逸的保障DNS安全的方案,此次Windows添加的DNS功能就是个很好的契机,所以开始之前,我设定了两个核心目标:

  1. 安全可靠(防DNS污染)
  2. 速度快且稳定(要支持EDNS,防止国内网站被解析到外面)

考虑到8.8.8.8(或1.1.1.1)的特殊情况,这次我选择了OpenDNS的公共服务(208.67.222.222208.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
  1. 我们netsh dns show encryption再确认一下:

  2. 接下来打开"网络和Internet设置",选择以太网(如果电脑是用的Wifi就选Wifi),点击编辑(编辑DNS服务)

  3. 在这里我们手动设置DNS服务器为208.67.220.220208.67.222.222,这里我们为了验证DoH效果,选择了"仅加密(通过HTTPS的DNS)",你也可以选择"已加密的首选、未加密的允许"以实现DNS回滚(回滚的时候就又是访问的53端口的常规DNS了)

  4. Ipconfig /flushdns 清理一下DNS缓存
  5. 打开浏览器看一下是否可以正常访问网站,如果一切正常,我们便用上了系统级别的DNS安全服务(以前我是在浏览器里单独设置DoH的),如果失败,则会出现无法获取DNS解析的情况(需要仔细检查一下操作步骤)。

结语

DNS服务安全至关重要,如果你对目前的上网环境不是很满意,怀疑可能有DNS污染问题,不妨按照本文的方法一试,如果有帮到你一点点,给个赞呗!如果你有更多问题,我们评论区见。

one response