DoH(DNS over HTTPS)是一种通过HTTPS协议进行DNS解析的技术,可以提高隐私性和安全性。以下是一些常用的DoH服务器:

DNS Privacy Project

  1. Cloudflare
    • 地址: https://cloudflare-dns.com/dns-query
    • 服务端点: 1.1.1.11.0.0.1
    • 端点(IPv6): 2606:4700:4700::11112606:4700:4700::1001
  2. Google DNS
    • 地址: https://dns.google/dns-query
    • 服务端点: 8.8.8.88.8.4.4
    • 端点(IPv6): 2001:4860:4860::88882001:4860:4860::8844
  3. Quad9
    • 地址: https://dns.quad9.net/dns-query
    • 服务端点: 9.9.9.9149.112.112.112
    • 端点(IPv6): 2620:fe::fe2620:fe::9
  4. NextDNS
    • 地址: https://dns.nextdns.io
    • 用户可以根据自己账户生成个性化的DoH地址。
  5. AdGuard DNS
    • 地址: https://dns.adguard.com/dns-query
    • 服务端点: 94.140.14.1494.140.15.15
    • 端点(IPv6): 2a10:50c0::1:ff2a10:50c0::2:ff
  6. OpenDNS
    • 地址: https://doh.opendns.com/dns-query
    • 服务端点: 208.67.222.222208.67.220.220
    • 端点(IPv6): 2620:119:35::352620:119:53::53
  7. AliDNS
    • 地址: https://dns.alidns.com/dns-query
    • 服务端点: 223.5.5.5223.6.6.6
  8. DNSPod
    • 地址: https://1.12.12.12/dns-queryhttps://120.53.53.53/dns-query

使用 curl 测试 DoH 服务器时,正确的命令格式是发送带有查询参数的 GET 请求。以下是正确的示例:

使用 curl 测试 DoH 服务器

您可以使用以下命令,通过 curl 向 DoH 服务器发送 DNS 查询请求:

curl -H 'accept: application/dns-json' 'https://1.1.1.1/dns-query?name=qq.com&type=A'

解释命令

  • -H 'accept: application/dns-json':设置请求头,表示接受 JSON 格式的 DNS 响应。
  • 'https://1.1.1.1/dns-query?name=qq.com&type=A':DoH 服务器的 URL 和查询参数,其中 name=qq.com 指定了要查询的域名,type=A 指定了查询的记录类型(A记录,即IPv4地址)。

使用 cloudflared 工具来测试 DoH 服务器,您可以使用 dig 命令进行查询,指定 cloudflared 作为 DNS 代理。以下是具体的步骤:

1. 安装 cloudflared

确保您已经安装了 cloudflared 工具。如果还未安装,请根据之前提供的说明进行安装。

Downloads · Cloudflare Zero Trust docs

2. 启动 cloudflared 作为 DNS 代理

使用 cloudflared 启动一个本地的 DoH 代理。您可以通过命令行运行以下命令:

cloudflared proxy-dns --port 5053

这会启动一个本地的 DoH 代理,监听在 127.0.0.1:5053 上。

3. 使用 dig 命令测试 DoH 服务器

现在,您可以使用 dig 命令,通过 cloudflared 代理来测试您的 DoH 服务器。假设您要查询 qq.com,可以使用以下命令:

dig @127.0.0.1 -p 5053 qq.com

这样,dig 命令会将 DNS 查询请求发送到本地运行的 cloudflared 代理,后者会将请求通过配置的上游 DoH 服务器进行解析。

4. 指定特定的 DoH 服务器进行测试

如果您想要测试一个特定的 DoH 服务器,可以在启动 cloudflared 时指定该服务器。例如,假设您要测试 https://1.1.1.1/dns-query,可以这样启动 cloudflared

cloudflared proxy-dns --port 5053 --upstream https://1.1.1.1/dns-query

然后再使用 dig 命令进行测试:

dig @127.0.0.1 -p 5053 qq.com