文章目录[隐藏]
通过“DNS over HTTPS”可以将DNS解析的请求转换成加密协议进行传输,从而避免域名劫持。
要支持“DNS over HTTPS” ,需要两部分操作:
1、支持“DNS over HTTPS” 的客户端,例如浏览器、DNSCrypt ,目前最新版的Firefox、Chrome(以及各种基于Chromium内核的浏览器)的都支持“DNS over HTTPS”。
2、支持“DNS over HTTPS” 的DNS服务器提供商(DoH provider),例如Cloudflare、Google。
因此在实际操作时候,包括两部分:
1、配置客户端,启用“DNS over HTTPS” ,这里主要说明Firefox、Chrome的配置方法
2、将操作系统DNS解析服务修改为 DoH provider提供的DNS服务
Chrome(Chromium)从78.0开始支持“DNS over HTTPS”,Firefox 从62.0 开始支持“DNS over HTTPS”。建议将Firefox或Chrome升级到最新版本。
一、Firefox配置方法
1、界面配置方法
菜单项->选项->常规(或者在地址栏直接输入 about:preferences )->网络设置,选择“设置”
选中“使用SOCKS v5 时代理DNS查询”
选中“启用基于HTTPS的DNS”
选用提供商:Cloudflare,也可以自定义。
对国内,由于使用google、cloudflare的DNS不稳定,推荐可以使用国内的服务商的服务,例如GeekDNS的:https://i.233py.com/dns-query,dns.sb:https://doh.dns.sb/dns-query

2、about:config 配置方法
对手机版的Firefox,不提供菜单配置项,可以通过 about:config 配置。
在浏览器栏上输入about:config,打开设置页面。
在搜索框,输入network.trr.mode,将 network.trr.mode ,修改为 2
network.security.esni.enabled ,修改为 true
还有一些关于DoH的设置选项,配置项说明可以参考:https://wiki.mozilla.org/Trusted_Recursive_Resolver
3、重启浏览器
对Firefox,由于可以通过 network.trr.uri 直接设置 DoH server,因此不需要操作系统修改DNS就可以。
Firefox还有一个比较重要的选项 network.proxy.socks_remote_dns,可以设置为true,启用远程DNS,这在使用Proxy时候比较有用,也是上面界面配置“使用socks v5 时代理DNS查询”设定的值。
二、Chrome配置方法
Chrome以及各种各种基于Chromium内核的浏览器,包括Edge (Chromium版)、Brave、Vivaldi 、各种国产浏览器,都可以采用类似方法。
1、在地址栏输入:chrome://flags/#dns-over-https
将“Secure DNS lookups“的值设置为“Enabled“
2、重启浏览器
3、设置操作系统DNS。也可以直接修改路由器的缺省DNS
对Chrome,需要修改操作系统DNS ,使用支持“DNS over HTTPS” 的DNS服务器提供商(DoH provider),例如CloudFlare、Google。
Cloudflare的DNS:1.1.1.1,1.0.0.1
Google 的DNS:8.8.8.8
Cloudflare和Google的DNS是好,只不过在国内访问太慢了,国内有几个提供DOT的DNS服务可以试试。
GeekDNS:https://www.nextrt.com/s/dns ,国内DOT服务为:https://i.233py.com/dns-query
dns.sb:https://dns.sb
三、测试DNS over HTTPS
DNS over HTTPS section 应该显示 “Yes.”

访问 https://www.cloudflare.com/ssl/encrypted-sni/ ,检测看是否使用Secure DNS。如果Secure DNS显示绿色的话则开启成功。
