1. 前言
本文面向需要集成或评估阿里云 HTTPDNS 的 DoH(DNS over HTTPS)能力的开发者,帮助你快速定位到正确的文档,通过本文您将了解到:
了解 DoH 与 HTTPDNS 的关系与适用场景
DoH 接入的主要步骤
2. DoH 与 HTTPDNS 对比说明
DoH(DNS over HTTPS)是指 DNS 查询和响应通过 HTTPS 传输,利用 HTTPS 对 DNS 数据进行加密,可以有效防止数据被窃听或篡改。HTTPDNS 与 DoH 都是通过 HTTP/HTTPS 通道绕过操作系统的 Local DNS 解析路径,从而降低域名劫持与污染风险。HTTPDNS 产品除支持自身私有协议外,也支持 DoH 协议接入,但这两种协议有各自的适用场景:
HTTPDNS 协议(私有协议)
优点:报文更轻量,便于扩展,流程可控,支持HTTP请求、身份鉴权、业务调度和批量解析加速等特性
不足:有一定的适配成本,可能会改变原来网络库的使用方式和网络库行为
DoH 协议( RFC8484 标准协议)
优点:格式固定,部分网络库提供原生支持,适配成本低,网络库行为与Local DNS保持一致
不足:无鉴权机制,不可扩展,网络库DoH请求发起和结果缓存策略无法干预和优化
在客户端网络库封闭、通过 SDK 改造接入成本较高的场景下,如果底层框架(如基于 Chromium 内核的 CEF、Electron、Qt WebEngine 等)已开放 DoH 配置接口,则应优先选择 DoH 方式接入。
DoH 协议不支持传递业务参数,因此不支持自定义解析
3. DoH接入步骤
在网络库中接入 HTTPDNS DoH 分为以下几步:
应用到网络库或框架:
接入成功验证:通过将手机 WIFI 网络的 DNS 服务器设置为一个无效地址,观察业务请求是否依然能够正常发起,以此判断 DoH 是否接入成功。
当然,您也可以通过访问 DoH 直接获取IP,不适配任何网络库,可以参考DoH接口说明。本章主要介绍「配置DoH服务」、「DoH接口说明」和 「网络库接入DoH」。