Shadowrocket 配置 DNS Over HTTP/3

Shadowrocket DNS Over HTTP/3

加密 DNS 区分为 DNS over TLS (DoT)、DNS over HTTPS (HTTP/2)、DNS over QUIC (DoQ) 、DNS over HTTPS (HTTP/3)。

Shadowrocket 对以上所有类型加密 DNS 都有支持,下面通过对比采用最优的加密 DNS。

速度对比

协议 速度(排序) 端口 优点 缺点
传统 DNS 1(最快) UDP 53 快速,低延迟 无加密,易受攻击
DNS over QUIC (DoQ) 2 QUIC (UDP) 853 加密,QUIC 快,无 HTTP 开销 新技术,支持有限、853 端口易被识别
DNS over HTTPS (HTTP/3) 3 QUIC (UDP) 443 加密,QUIC 性能好,端口通用 有 HTTP 开销
DNS over TLS (DoT) 4 TCP 853 加密,安全 TCP 慢于 QUIC、853 端口易被识别
DNS over HTTPS (HTTP/2) 5(最慢) TCP 443 加密,使用现有 HTTPS 基础设施 HTTP 和 TCP 开销大,速度慢

虽然理论上 DNS over QUIC (DoQ) 速度是传统无加密 DNS 之外最快的加密DNS,但是由于其使用了 853 端口,容易被识别(无法知道内容,但是可以知道是 DNS 查询行为),因此更推荐使用 DNS over HTTPS (HTTP/3)

国内支持的 DNS Over HTTP/3

目前只有阿里的公共的 DNS 支持 DNS Over HTTP/3:

界面配置 DNS Over HTTP/3

  1. 【配置】-【本地文件】点击配置文件详情

    【配置】-【本地文件】点击配置文件详情

  2. 点击【通用】

    点击【通用】

  3. 配置 DNS 覆写

    配置DNS覆写

    • h3://dns.alidns.com/dns-query
    • tls://doh.pub

    备用 DNS 可以配置 DoH

    • https://doh.pub/dns-query
    • https://dns.alidns.com/dns-query

使用订阅配置规则的方式

dns-server = h3://dns.alidns.com/dns-query, tls://doh.pub
fallback-dns-server = https://doh.pub/dns-query, https://dns.alidns.com/dns-query

直接可用的在线配置规则:

附 DNS 订阅配置详细说明

# DNS 覆写。使用普通 DNS 或加密 DNS(如 DoH、DoQ、DoT 等)覆盖默认的系统 DNS。填 system 表示使用系统 DNS。

# 普通 DNS 示例:
# dns-server = 223.5.5.5,119.29.29.29

# 加密 DNS 示例:
# 1、DNS-over-HTTPS(DoH)
# dns-server = https://dns.alidns.com/dns-query
# 2、DNS-over-HTTP/3(DoH3)
# dns-server = h3://dns.alidns.com/dns-query
# 3、DNS-over-QUIC(DoQ)
# dns-server = quic://223.5.5.5
# 4、DNS-over-TLS(DoT)
# dns-server = tls://223.5.5.5

# 通过代理转发 DNS 查询请求(dns over proxy)。示例:
# dns-server = https://dns.google/dns-query#proxy=server1
# dns-server = https://dns.google/dns-query#ecs=120.76.0.0/14|2620:149:af0::10/56&ecs-override=true
# dns-server = https://dns.google/dns-query#proxy=name&ecs=1.1.0.0/14|2620:149:af0::10/56&ecs-override=true
# 参数说明:
# 1、proxy=name。指定代理服务器,名称需要 URL 编码。
# 2、ecs=子网范围。ecs 参数用于设置 EDNS Client Subnet (ECS),向 DNS 服务器传递客户端的子网信息。ECS 允许 DNS 服务器根据指定的子网范围(而非实际客户端 IP)来返回最优结果。
# 3、ecs-override=true。ecs 参数的强制覆盖。即使客户端的实际 IP 提供了不同的地理位置,查询会强制使用 ecs 指定的子网范围。

# 多个 DNS
dns-server = https://doh.pub/dns-query,https://dns.alidns.com/dns-query,223.5.5.5,119.29.29.29

Mac OS X 代理节点