Clear duplicates

This commit is contained in:
风扇滑翔翼
2025-12-01 04:56:10 +00:00
committed by GitHub
parent f8289b618d
commit b9730a1ea8
2 changed files with 19 additions and 42 deletions
+14 -35
View File
@@ -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
+5 -7
View File
@@ -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` 相同,标签必须在文件中存在。