Quantumult X DNS

内容纲要

查看【Quantumult X】专题可浏览更多内容

;#// 开头的行为注释行。

本章节主要讲的是 [dns] 区块下的内容,所以示例都以 [dns] 开头表明在其之下,并不是让你每个参数字段前都加上 [dns]

DNS 查询结果仅用于分流规则或通过直接策略连接,通过服务器连接时不会使用该结果,Quantumult 永远不会知道相关域名的目的 IP。

传统 DNS 设置

[dns]
server = 119.29.29.29
server = 223.5.5.5:53

可以如上第二条那样指定端口

禁用系统 DNS

[dns]
no-system

如果你并不想使用系统 (通过 DHCP) 自动获取的 DNS 设置,可以如上设置,但需要注意应该设置至少一条自定义 DNS,如上述的 server = 119.29.29.29

禁用 IPv6

[dns]
no-ipv6

当设置 no-ipv6 时,Quantumult X Tunnel 的 DNS 模块将直接让 AAAA 查询失败,但仍然允许从 IPv6的 DNS 服务器查询 A 记录。

加密 DNS 设置

DNS over HTTPS

[dns]
;doh-server = https://exmaple1.com/dns-query, https://exmaple2.com/dns-query
doh-server = https://dns.alidns.com/dns-query

当设置 doh-server (DNS over HTTPS) 或 doq-server (DNS over QUIC)时,system 和所有其他未加密的常规 (没有特定的域与之绑定) 服务器将被忽略。

多个 (并发查询) doh-server 应配置在一行中,URLs 应以逗号分开。

如果 iOS 版本小于 iOS 13.0,最大的 doh-server 数量将被限制为 1;如果 iOS 版本小于iOS 15.0,最大的 doh-server 数量将被限制为 2。

当使用的 doh-server 不是基于 HTTP/2 时,DoH 将被暂时禁用,普通的服务器将被使用,直到下次启动 VPN 连接。

HTTP/3 的 DoH

[dns]
prefer-doh3

prefer-doh3 被设置时,DoH 将尝试通过 HTTP/3 的查询,如果失败,查询连接将退回到 HTTP/2。

由于 HTTP/2 和 HTTP/3 连接都支持复用,当改变该设置时它可能不会立即生效,但可以通过重新连接Quantumult X 隧道或手动改变当前网络环境,让它立即生效。

自定义 DoH 的 User Agent

DoH 的 User Agent 需要在 [general] 设置:Quantumult X General

DNS over QUIC

[dns]
;doq-server = quic://dns1.example.com, quic://dns2.example.com
doq-server = quic://dns.adguard.com

当设置 doh-server (DNS over HTTPS) 或 doq-server (DNS over QUIC)时,system 和所有其他未加密的常规 (没有特定的域与之绑定) 服务器将被忽略。

多个(并发查询) doq-server 应配置在一行中,URLs 应以逗号分隔。

DoQ 的默认端口是 853,如果双方同意使用其他端口,如 456,你可以设置为 quic://dns.example.com:456

指定 DNS 查询指定域名

[dns]
; 使用系统 DNS 解析 example.com
server = /example.com/system

; 使用 119.29.29.29 查询 qq.com 及其子域名
server = /qq.com/119.29.29.29
server = /*.qq.com/119.29.29.29:53

; 使用 [2001:4860:4860::8888] 的 53 端口解析 example.com
server = /example.com/[2001:4860:4860::8888]:53

可以如上指定 DNS 查询特定域名,如需要指定端口号,可以在 DNS 后面加上英文冒号及端口号。

本地 DNS 映射

[dns]
; 指定域名到特定 IP 地址
;address = /example5.com/192.168.16.18
;address = /example6.com/[2001:8d3:8d3:8d3:8d3:8d3:8d3:8d3]

; 别名
alias = /example7.com/another-example.com

这里不允许直接为某个域设置 127.0.0.1

如果想让某个域 (例如 example.com) 为 127.0.0.1,只需在 [filter_local] 部分添加 host, example.com, reject,REJECT 操作将向查询返回具有 127.0.0.1 的 DNS 响应。

在指定 SSID 下生效或失效

在 SSID 为 SSID1 时不使用 8.8.8.8:

[dns]
server = 8.8.8.8, excluded_ssids=SSID1

在 SSID 为 SSID2 时使用 8.8.4.4:

[dns]
server = 8.8.4.4:53, included_ssids=SSID2

规避指定结果

[dns]
circumvent-ipv4-answer = 127.0.0.1, 0.0.0.0
circumvent-ipv6-answer = ::

用于指定 DNS 服务器返回的 A 及 AAAA 记录中哪些属于无效结果

可使用通配符 ?*

注意:

  1. 当并发向多个上游 DNS 进行查询时,如响应最快的上游 DNS 抢答的结果命中了该条目,则 Quantumult X Tunnel DNS 模块会等待其他 DNS 服务器的响应结果(如抢答的结果中至少有一个不属于该条目,则不会等待其他 DNS 的响应,此时有效结果采用不属于该条目的所有记录);
  2. 如所有上游 DNS 返回的所有结果均命中该条目,则判定为 DNS 查询失败;
  3. 如配置的上游 DNS 包含有去广告功能的 DNS 服务器,请勿使用该参数;