From b9730a1ea8a3dfe346ccf735d97ce196bb426926 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A3=8E=E6=89=87=E6=BB=91=E7=BF=94=E7=BF=BC?= Date: Mon, 1 Dec 2025 04:34:11 +0000 Subject: [PATCH] Clear duplicates --- docs/config/dns.md | 49 ++++++++++++------------------------------ docs/config/routing.md | 12 +++++------ 2 files changed, 19 insertions(+), 42 deletions(-) diff --git a/docs/config/dns.md b/docs/config/dns.md index e5b7789d..3a714478 100644 --- a/docs/config/dns.md +++ b/docs/config/dns.md @@ -91,13 +91,7 @@ Xray 内置的 DNS 模块,主要有三大用途: - 当地址中同时设置了多个 IP 和域名,则只会返回第一个域名,其余 IP 和域名均被忽略。 - 当地址中的第一个值为井号后加数字(如 `#3`)时,如果在使用 DNS 出站,核心会返回空的响应以及该数字编号对应的 rcode 以拒绝请求,如果请求来自内部查询则会单纯视为失败。 -域名的格式有以下几种形式: - -- 纯字符串:当此字符串完整匹配目标域名时,该规则生效。例如 "xray.com" 匹配 "xray.com",但不匹配 "www.xray.com"。 -- 正则表达式:由 `"regexp:"` 开始,余下部分是一个正则表达式。当此正则表达式匹配目标域名时,该规则生效。例如 "regexp:\\\\.goo.\*\\\\.com\$" 匹配 "www.google.com"、"fonts.googleapis.com",但不匹配 "google.com"。 -- 子域名 (推荐):由 `"domain:"` 开始,余下部分是一个域名。当此域名是目标域名或其子域名时,该规则生效。例如 "domain:xray.com" 匹配 "www.xray.com" 与 "xray.com",但不匹配 "wxray.com"。 -- 子串:由 `"keyword:"` 开始,余下部分是一个字符串。当此字符串匹配目标域名中任意部分,该规则生效。比如 "keyword:sina.com" 可以匹配 "sina.com"、"sina.com.cn" 和 "www.sina.com",但不匹配 "sina.cn"。 -- 预定义域名列表:由 `"geosite:"` 开头,余下部分是一个名称,如 `geosite:google` 或者 `geosite:cn`。名称及域名列表参考 [预定义域名列表](./routing.md#预定义域名列表)。 +其匹配格式(`domian:` `full:` 等等)同常用的 [路由系统](./routing.html#ruleobject) 中的 domain. 不同的是无前缀时此处默认使用 `full:` 前缀(类似常见的 hosts 文件写法) > `servers`: \[string | [DnsServerObject](#dnsserverobject) \] @@ -231,25 +225,20 @@ EDNS Client Subnet 扩展中使用的 IP 地址。 ```json { - "tag": "dns-tag", "address": "1.2.3.4", "port": 5353, "domains": ["domain:xray.com"], "expectedIPs": ["geoip:cn"], "unexpectedIPs": ["geoip:cloudflare"], "skipFallback": false, + "finalQuery": false, + "tag": "dns-tag", "clientIP": "1.2.3.4", "queryStrategy": "UseIPv4", - "timeoutMs": 4000, - "disableCache": false, - "finalQuery": false + "disableCache": false } ``` -> `tag`: string - -该 DNS 服务器的 tag, 若设置,将使用该 tag 作为 inbound tag 发起请求(非 local 模式),覆盖全局 tag 选项。 - > `address`: address 一个 DNS 服务器列表,支持的类型有两种:DNS 地址(字符串形式)和 DnsServerObject 。 @@ -306,32 +295,22 @@ DNS 服务器端口,如 `53`。此项缺省时默认为 `53`。当使用 DOH `true`,在进行 DNS fallback 查询时将跳过此服务器, 默认为 `false`,即不跳过。 -> `clientIP`: [string] - -EDNS Client Subnet 扩展中使用的 IP 地址。 - -需要是一个有效的 IPv4 或者 IPv6. 实际发送时会自动抹掉最后几位,IPv4 和 IPv6 分别以 /24 和 /96 的子网发送。 - -> `queryStrategy`: "UseIP" | "UseIPv4" | "UseIPv6" | "UseSystem" - -限制此服务器的能力,以及由 Xray 自身发起的 IP 查询命中此服务器时查询类型的默认值。 - -默认值 `UseIP` 允许查询 A + AAAA。由 Xray 自身发起的查询未指定 IP 类型时,同时向上游 DNS 服务器查询 A 和 AAAA 记录。`UseIPv4` 只查询且只允许查询 A 记录;`UseIPv6` 只查询且只允许查询 AAAA 记录。 - -`UseSystem` 自适应操作系统网络环境。查询前分别检查是否有 IPv4 和 IPv6 的默认网关,以此限制服务器的能力并设置查询类型的默认值。在图形环境操作系统上实时检查,在命令行环境只检查一次。 - > `timeoutMs`: number DNS 服务器超时时间,默认 4000 ms. 它不会对 `localhost` DNS (系统 DNS) 生效,它总是跟随 golang 的 DNS 超时行为(cgo 与 pure go 可能略有不同)。 -> `disableCache`: true | false - -`true` 禁用 DNS 缓存,默认为 `false`,即不禁用。 - -它不会对 `localhost` DNS (系统 DNS) 生效,它总是跟随 golang 的 DNS 缓存行为(cgo 与 pure go 可能略有不同)。 - > `finalQuery`: true | false 如果设置为真,该 DNS 服务器的请求会是最终尝试,不会触发 fallback 行为。 + +### 以下配置项若未指定,将继承自全局配置,也可以在这里覆盖全局配置 + +> `tag`: string + +> `clientIP`: [string] + +> `queryStrategy`: "UseIP" | "UseIPv4" | "UseIPv6" | "UseSystem" + +> `disableCache`: true | false diff --git a/docs/config/routing.md b/docs/config/routing.md index 743369a6..9425b8db 100644 --- a/docs/config/routing.md +++ b/docs/config/routing.md @@ -79,14 +79,12 @@ 当多个属性同时指定时,这些属性需要**同时**满足,才可以使当前规则生效。 ::: -> `domain`: \[string\] - -一个数组,数组每一项是一个域名的匹配。有以下几种形式: - -- 纯字符串:当此字符串匹配目标域名中任意部分,该规则生效。比如 "sina.com" 可以匹配 "sina.com"、"sina.com.cn" 和 "www.sina.com",但不匹配 "sina.cn"。 -- 正则表达式:由 `"regexp:"` 开始,余下部分是一个正则表达式。当此正则表达式匹配目标域名时,该规则生效。例如 `"regexp:\\\\.goo.\*\\\\.com\$"` 匹配 "www.google.com" 或 "fonts.googleapis.com",但不匹配 "google.com"。(注意,在 json 中,经常在正则表达式中使用的反斜杠会被用作转义,当正则表达式中的反斜杠 `\` 应改为 `\\`) -- 子域名(推荐):由 `"domain:"` 开始,余下部分是一个域名。当此域名是目标域名或其子域名时,该规则生效。例如 "domain:xray.com" 匹配 "www.xray.com"、"xray.com",但不匹配 "wxray.com"。 +- 纯字符串:同下面的子串,但可以省略前面的 `"keyword:"` 开头。 +- 正则表达式:由 `"regexp:"` 开始,余下部分是一个正则表达式。当此正则表达式匹配目标域名时,该规则生效。例如 "regexp:\\\\.goo.\*\\\\.com\$" 匹配 "www.google.com"、"fonts.googleapis.com",但不匹配 "google.com"。大小写敏感。 +- 子域名 (推荐):由 `"domain:"` 开始,余下部分是一个域名。当此域名是目标域名或其子域名时,该规则生效。例如 "domain:xray.com" 匹配 "www.xray.com" 与 "xray.com",但不匹配 "wxray.com"。 +- 子串:由 `"keyword:"` 开始,余下部分是一个字符串。当此字符串匹配目标域名中任意部分,该规则生效。例如 "keyword:sina.com" 可以匹配 "sina.com"、"sina.com.cn" 和 "www.sina.com",但不匹配 "sina.cn"。 - 完整匹配:由 `"full:"` 开始,余下部分是一个域名。当此域名完整匹配目标域名时,该规则生效。例如 "full:xray.com" 匹配 "xray.com" 但不匹配 "www.xray.com"。 +- 无点域名:由 `"dotless:"` 开头,余下部分是一个不能含有 `.` 的字符串。当域名不含 `.` 且此字符串匹配目标域名中任意部分,该规则生效。例如 "dotless:pc-" 可以匹配 "pc-alice"、"mypc-alice",适用于内网 NetBIOS 域等。大小写敏感。 - 预定义域名列表:由 `"geosite:"` 开头,余下部分是一个名称,如 `geosite:google` 或者 `geosite:cn`。名称及域名列表参考 [预定义域名列表](#预定义域名列表)。 - 从文件中加载域名:形如 `"ext:file:tag"`,必须以 `ext:`(小写)开头,后面跟文件名和标签,文件存放在 [资源目录](./features/env.md#资源文件路径) 中,文件格式与 `geosite.dat` 相同,标签必须在文件中存在。