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:
- https://dns.alidns.com/dns-query
界面配置 DNS Over HTTP/3
【配置】-【本地文件】点击配置文件详情
点击【通用】
配置 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