Cloudflare 在以下地址提供 DNS over HTTPS 解析器:
https://cloudflare-dns.com/dns-queryCloudflare 的 DNS over HTTPS (DoH) 端点为 DNS 线路格式 (wireformat) 支持 POST 和 GET,为 JSON 格式支持 GET。
使用 POST 发起请求时,DNS 查询作为 HTTP 请求的消息体包含在内,且 MIME 类型 (application/dns-message) 在 Content-Type 请求标头中发送。Cloudflare 将使用客户端发送的 HTTP 请求消息体,因此消息体不应进行编码。
使用 GET 发起请求时,DNS 查询将被编码到 URL 中。
如果您使用 JSON 格式,请设置 application/dns-json,如果您使用 DNS 线路格式,请使用 application/dns-message。
有关 cURL 示例,请参阅 DNS 线路格式 和 JSON。
每个 DNS 查询都精确映射到一个 HTTP 请求。要并发发送多个查询,请使用 HTTP/2 或 HTTP/3,它们支持在单个连接上多路复用多个请求。
HTTP/2 是推荐与 DoH 配合使用的最低 HTTP 版本。这并不是 1.1.1.1 特有的,而是 DoH 根据 RFC 8484 ↗ 的运行方式。
请求示例:
curl --http2 --header "accept: application/dns-json" "https://one.one.one.one/dns-query?name=cloudflare.com" --next --http2 --header "accept: application/dns-json" "https://one.one.one.one/dns-query?name=example.com"向此 API 发送请求不需要身份验证。
Cloudflare 的 DNS over HTTPS 解析器支持 TLS 1.2 和 TLS 1.3。
| HTTP 状态码 | 含义 |
|---|---|
400 |
未指定 DNS 查询,或查询过小。 |
413 |
DNS 查询大于允许的最大 DNS 消息大小。 |
415 |
不支持的媒体类型 (Content Type)。 |
504 |
解析器在等待查询响应时超时。 |