documentation: Fix missing update for ip_version and query_type
This commit is contained in:
@@ -12,7 +12,9 @@ icon: material/alert-decagram
|
|||||||
:material-plus: [response_answer](#response_answer)
|
:material-plus: [response_answer](#response_answer)
|
||||||
:material-plus: [response_ns](#response_ns)
|
:material-plus: [response_ns](#response_ns)
|
||||||
:material-plus: [response_extra](#response_extra)
|
:material-plus: [response_extra](#response_extra)
|
||||||
:material-plus: [package_name_regex](#package_name_regex)
|
:material-plus: [package_name_regex](#package_name_regex)
|
||||||
|
:material-alert: [ip_version](#ip_version)
|
||||||
|
:material-alert: [query_type](#query_type)
|
||||||
|
|
||||||
!!! quote "Changes in sing-box 1.13.0"
|
!!! quote "Changes in sing-box 1.13.0"
|
||||||
|
|
||||||
@@ -243,12 +245,46 @@ Tags of [Inbound](/configuration/inbound/).
|
|||||||
|
|
||||||
#### ip_version
|
#### ip_version
|
||||||
|
|
||||||
|
!!! quote "Changes in sing-box 1.14.0"
|
||||||
|
|
||||||
|
This field now also applies when a DNS rule is matched from an internal
|
||||||
|
domain resolution that does not target a specific DNS server, such as a
|
||||||
|
[`resolve`](../../route/rule_action/#resolve) route rule action without a
|
||||||
|
`server` set. In earlier versions, only DNS queries received from a
|
||||||
|
client evaluated this field. See
|
||||||
|
[Migration](/migration/#ip_version-and-query_type-behavior-changes-in-dns-rules)
|
||||||
|
for the full list.
|
||||||
|
|
||||||
|
Setting this field makes the DNS rule incompatible in the same DNS
|
||||||
|
configuration with Legacy Address Filter Fields in DNS rules, the Legacy
|
||||||
|
`strategy` DNS rule action option, and the Legacy
|
||||||
|
`rule_set_ip_cidr_accept_empty` DNS rule item. To combine with
|
||||||
|
address-based filtering, use the [`evaluate`](../rule_action/#evaluate)
|
||||||
|
action and [`match_response`](#match_response).
|
||||||
|
|
||||||
4 (A DNS query) or 6 (AAAA DNS query).
|
4 (A DNS query) or 6 (AAAA DNS query).
|
||||||
|
|
||||||
Not limited if empty.
|
Not limited if empty.
|
||||||
|
|
||||||
#### query_type
|
#### query_type
|
||||||
|
|
||||||
|
!!! quote "Changes in sing-box 1.14.0"
|
||||||
|
|
||||||
|
This field now also applies when a DNS rule is matched from an internal
|
||||||
|
domain resolution that does not target a specific DNS server, such as a
|
||||||
|
[`resolve`](../../route/rule_action/#resolve) route rule action without a
|
||||||
|
`server` set. In earlier versions, only DNS queries received from a
|
||||||
|
client evaluated this field. See
|
||||||
|
[Migration](/migration/#ip_version-and-query_type-behavior-changes-in-dns-rules)
|
||||||
|
for the full list.
|
||||||
|
|
||||||
|
Setting this field makes the DNS rule incompatible in the same DNS
|
||||||
|
configuration with Legacy Address Filter Fields in DNS rules, the Legacy
|
||||||
|
`strategy` DNS rule action option, and the Legacy
|
||||||
|
`rule_set_ip_cidr_accept_empty` DNS rule item. To combine with
|
||||||
|
address-based filtering, use the [`evaluate`](../rule_action/#evaluate)
|
||||||
|
action and [`match_response`](#match_response).
|
||||||
|
|
||||||
DNS query type. Values can be integers or type name strings.
|
DNS query type. Values can be integers or type name strings.
|
||||||
|
|
||||||
#### network
|
#### network
|
||||||
|
|||||||
@@ -12,7 +12,9 @@ icon: material/alert-decagram
|
|||||||
:material-plus: [response_answer](#response_answer)
|
:material-plus: [response_answer](#response_answer)
|
||||||
:material-plus: [response_ns](#response_ns)
|
:material-plus: [response_ns](#response_ns)
|
||||||
:material-plus: [response_extra](#response_extra)
|
:material-plus: [response_extra](#response_extra)
|
||||||
:material-plus: [package_name_regex](#package_name_regex)
|
:material-plus: [package_name_regex](#package_name_regex)
|
||||||
|
:material-alert: [ip_version](#ip_version)
|
||||||
|
:material-alert: [query_type](#query_type)
|
||||||
|
|
||||||
!!! quote "sing-box 1.13.0 中的更改"
|
!!! quote "sing-box 1.13.0 中的更改"
|
||||||
|
|
||||||
@@ -243,12 +245,38 @@ icon: material/alert-decagram
|
|||||||
|
|
||||||
#### ip_version
|
#### ip_version
|
||||||
|
|
||||||
|
!!! quote "sing-box 1.14.0 中的更改"
|
||||||
|
|
||||||
|
此字段现在也会在 DNS 规则被未指定具体 DNS 服务器的内部域名解析匹配时生效,
|
||||||
|
例如未设置 `server` 的 [`resolve`](../../route/rule_action/#resolve) 路由规则动作。
|
||||||
|
此前只有来自客户端的 DNS 查询才会评估此字段。完整列表参阅
|
||||||
|
[迁移指南](/zh/migration/#dns-规则中的-ip_version-和-query_type-行为更改)。
|
||||||
|
|
||||||
|
在 DNS 规则中设置此字段后,该 DNS 规则在同一 DNS 配置中不能与
|
||||||
|
旧版地址筛选字段 (DNS 规则)、旧版 DNS 规则动作 `strategy` 选项,
|
||||||
|
或旧版 `rule_set_ip_cidr_accept_empty` DNS 规则项共存。如需与
|
||||||
|
基于地址的筛选组合,请使用 [`evaluate`](../rule_action/#evaluate) 动作和
|
||||||
|
[`match_response`](#match_response)。
|
||||||
|
|
||||||
4 (A DNS 查询) 或 6 (AAAA DNS 查询)。
|
4 (A DNS 查询) 或 6 (AAAA DNS 查询)。
|
||||||
|
|
||||||
默认不限制。
|
默认不限制。
|
||||||
|
|
||||||
#### query_type
|
#### query_type
|
||||||
|
|
||||||
|
!!! quote "sing-box 1.14.0 中的更改"
|
||||||
|
|
||||||
|
此字段现在也会在 DNS 规则被未指定具体 DNS 服务器的内部域名解析匹配时生效,
|
||||||
|
例如未设置 `server` 的 [`resolve`](../../route/rule_action/#resolve) 路由规则动作。
|
||||||
|
此前只有来自客户端的 DNS 查询才会评估此字段。完整列表参阅
|
||||||
|
[迁移指南](/zh/migration/#dns-规则中的-ip_version-和-query_type-行为更改)。
|
||||||
|
|
||||||
|
在 DNS 规则中设置此字段后,该 DNS 规则在同一 DNS 配置中不能与
|
||||||
|
旧版地址筛选字段 (DNS 规则)、旧版 DNS 规则动作 `strategy` 选项,
|
||||||
|
或旧版 `rule_set_ip_cidr_accept_empty` DNS 规则项共存。如需与
|
||||||
|
基于地址的筛选组合,请使用 [`evaluate`](../rule_action/#evaluate) 动作和
|
||||||
|
[`match_response`](#match_response)。
|
||||||
|
|
||||||
DNS 查询类型。值可以为整数或者类型名称字符串。
|
DNS 查询类型。值可以为整数或者类型名称字符串。
|
||||||
|
|
||||||
#### network
|
#### network
|
||||||
|
|||||||
@@ -4,7 +4,8 @@ icon: material/new-box
|
|||||||
|
|
||||||
!!! quote "Changes in sing-box 1.14.0"
|
!!! quote "Changes in sing-box 1.14.0"
|
||||||
|
|
||||||
:material-plus: [package_name_regex](#package_name_regex)
|
:material-plus: [package_name_regex](#package_name_regex)
|
||||||
|
:material-alert: [query_type](#query_type)
|
||||||
|
|
||||||
!!! quote "Changes in sing-box 1.13.0"
|
!!! quote "Changes in sing-box 1.13.0"
|
||||||
|
|
||||||
@@ -132,6 +133,20 @@ icon: material/new-box
|
|||||||
|
|
||||||
#### query_type
|
#### query_type
|
||||||
|
|
||||||
|
!!! quote "Changes in sing-box 1.14.0"
|
||||||
|
|
||||||
|
When a DNS rule references this rule-set, this field now also applies
|
||||||
|
when the DNS rule is matched from an internal domain resolution that
|
||||||
|
does not target a specific DNS server. In earlier versions, only DNS
|
||||||
|
queries received from a client evaluated this field. See
|
||||||
|
[Migration](/migration/#ip_version-and-query_type-behavior-changes-in-dns-rules)
|
||||||
|
for the full list.
|
||||||
|
|
||||||
|
When a DNS rule references a rule-set containing this field, the DNS
|
||||||
|
rule is incompatible in the same DNS configuration with Legacy Address
|
||||||
|
Filter Fields in DNS rules, the Legacy `strategy` DNS rule action
|
||||||
|
option, and the Legacy `rule_set_ip_cidr_accept_empty` DNS rule item.
|
||||||
|
|
||||||
DNS query type. Values can be integers or type name strings.
|
DNS query type. Values can be integers or type name strings.
|
||||||
|
|
||||||
#### network
|
#### network
|
||||||
|
|||||||
@@ -4,7 +4,8 @@ icon: material/new-box
|
|||||||
|
|
||||||
!!! quote "sing-box 1.14.0 中的更改"
|
!!! quote "sing-box 1.14.0 中的更改"
|
||||||
|
|
||||||
:material-plus: [package_name_regex](#package_name_regex)
|
:material-plus: [package_name_regex](#package_name_regex)
|
||||||
|
:material-alert: [query_type](#query_type)
|
||||||
|
|
||||||
!!! quote "sing-box 1.13.0 中的更改"
|
!!! quote "sing-box 1.13.0 中的更改"
|
||||||
|
|
||||||
@@ -132,6 +133,17 @@ icon: material/new-box
|
|||||||
|
|
||||||
#### query_type
|
#### query_type
|
||||||
|
|
||||||
|
!!! quote "sing-box 1.14.0 中的更改"
|
||||||
|
|
||||||
|
当 DNS 规则引用此规则集时,此字段现在也会在 DNS 规则被未指定具体
|
||||||
|
DNS 服务器的内部域名解析匹配时生效。此前只有来自客户端的 DNS 查询
|
||||||
|
才会评估此字段。完整列表参阅
|
||||||
|
[迁移指南](/zh/migration/#dns-规则中的-ip_version-和-query_type-行为更改)。
|
||||||
|
|
||||||
|
当 DNS 规则引用了包含此字段的规则集时,该 DNS 规则在同一 DNS 配置中
|
||||||
|
不能与旧版地址筛选字段 (DNS 规则)、旧版 DNS 规则动作 `strategy` 选项,
|
||||||
|
或旧版 `rule_set_ip_cidr_accept_empty` DNS 规则项共存。
|
||||||
|
|
||||||
DNS 查询类型。值可以为整数或者类型名称字符串。
|
DNS 查询类型。值可以为整数或者类型名称字符串。
|
||||||
|
|
||||||
#### network
|
#### network
|
||||||
|
|||||||
@@ -137,6 +137,56 @@ to fetch a DNS response, then match against it explicitly with `match_response`.
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### ip_version and query_type behavior changes in DNS rules
|
||||||
|
|
||||||
|
In sing-box 1.14.0, the behavior of
|
||||||
|
[`ip_version`](/configuration/dns/rule/#ip_version) and
|
||||||
|
[`query_type`](/configuration/dns/rule/#query_type) in DNS rules, together with
|
||||||
|
[`query_type`](/configuration/rule-set/headless-rule/#query_type) in referenced
|
||||||
|
rule-sets, changes in two ways.
|
||||||
|
|
||||||
|
First, these fields now take effect on every DNS rule evaluation. In earlier
|
||||||
|
versions they were evaluated only for DNS queries received from a client
|
||||||
|
(for example, from a DNS inbound or intercepted by `tun`), and were silently
|
||||||
|
ignored when a DNS rule was matched from an internal domain resolution that
|
||||||
|
did not target a specific DNS server. Such internal resolutions include:
|
||||||
|
|
||||||
|
- The [`resolve`](/configuration/route/rule_action/#resolve) route rule
|
||||||
|
action without a `server` set.
|
||||||
|
- ICMP traffic routed to a domain destination through a `direct` outbound.
|
||||||
|
- A [WireGuard](/configuration/endpoint/wireguard/) or
|
||||||
|
[Tailscale](/configuration/endpoint/tailscale/) endpoint used as an
|
||||||
|
outbound, when resolving its own destination address.
|
||||||
|
- A [SOCKS4](/configuration/outbound/socks/) outbound, which must resolve
|
||||||
|
the destination locally because the protocol has no in-protocol domain
|
||||||
|
support.
|
||||||
|
- The [DERP](/configuration/service/derp/) `bootstrap-dns` endpoint and the
|
||||||
|
[`resolved`](/configuration/service/resolved/) service (when resolving a
|
||||||
|
hostname or an SRV target).
|
||||||
|
|
||||||
|
Resolutions that target a specific DNS server — via
|
||||||
|
[`domain_resolver`](/configuration/shared/dial/#domain_resolver) on a dial
|
||||||
|
field, [`default_domain_resolver`](/configuration/route/#default_domain_resolver)
|
||||||
|
in route options, or an explicit `server` on a DNS rule action or the
|
||||||
|
`resolve` route rule action — do not go through DNS rule matching and are
|
||||||
|
unaffected.
|
||||||
|
|
||||||
|
Second, setting `ip_version` or `query_type` in a DNS rule, or referencing a
|
||||||
|
rule-set containing `query_type`, is no longer compatible in the same DNS
|
||||||
|
configuration with Legacy Address Filter Fields in DNS rules, the Legacy
|
||||||
|
`strategy` DNS rule action option, or the Legacy `rule_set_ip_cidr_accept_empty`
|
||||||
|
DNS rule item. Such a configuration will be rejected at startup. To combine
|
||||||
|
these fields with address-based filtering, migrate to response matching via
|
||||||
|
the [`evaluate`](/configuration/dns/rule_action/#evaluate) action and
|
||||||
|
[`match_response`](/configuration/dns/rule/#match_response), see
|
||||||
|
[Migrate address filter fields to response matching](#migrate-address-filter-fields-to-response-matching).
|
||||||
|
|
||||||
|
!!! info "References"
|
||||||
|
|
||||||
|
[DNS Rule](/configuration/dns/rule/) /
|
||||||
|
[Headless Rule](/configuration/rule-set/headless-rule/) /
|
||||||
|
[Route Rule Action](/configuration/route/rule_action/#resolve)
|
||||||
|
|
||||||
## 1.12.0
|
## 1.12.0
|
||||||
|
|
||||||
### Migrate to new DNS server formats
|
### Migrate to new DNS server formats
|
||||||
|
|||||||
@@ -137,6 +137,47 @@ sing-box 1.14.0 新增字段参阅 [ACME](/zh/configuration/shared/certificate-p
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### DNS 规则中的 ip_version 和 query_type 行为更改
|
||||||
|
|
||||||
|
在 sing-box 1.14.0 中,DNS 规则中的
|
||||||
|
[`ip_version`](/zh/configuration/dns/rule/#ip_version) 和
|
||||||
|
[`query_type`](/zh/configuration/dns/rule/#query_type),以及被引用规则集中的
|
||||||
|
[`query_type`](/zh/configuration/rule-set/headless-rule/#query_type),
|
||||||
|
行为有两项更改。
|
||||||
|
|
||||||
|
其一,这些字段现在对每一次 DNS 规则评估都会生效。此前它们仅对来自客户端的 DNS 查询
|
||||||
|
(例如来自 DNS 入站或被 `tun` 截获的查询)生效,当 DNS 规则被未指定具体 DNS 服务器的
|
||||||
|
内部域名解析匹配时,会被静默忽略。此类内部解析包括:
|
||||||
|
|
||||||
|
- 未设置 `server` 的 [`resolve`](/zh/configuration/route/rule_action/#resolve) 路由规则动作。
|
||||||
|
- 通过 `direct` 出站路由到域名目标的 ICMP 流量。
|
||||||
|
- 作为出站使用的 [WireGuard](/zh/configuration/endpoint/wireguard/) 或
|
||||||
|
[Tailscale](/zh/configuration/endpoint/tailscale/) 端点在解析自身目标地址时。
|
||||||
|
- [SOCKS4](/zh/configuration/outbound/socks/) 出站,因为协议本身不支持域名,
|
||||||
|
必须在本地解析目标。
|
||||||
|
- [DERP](/zh/configuration/service/derp/) 的 `bootstrap-dns` 端点,以及
|
||||||
|
[`resolved`](/zh/configuration/service/resolved/) 服务在解析主机名或 SRV 目标时。
|
||||||
|
|
||||||
|
通过拨号字段中的
|
||||||
|
[`domain_resolver`](/zh/configuration/shared/dial/#domain_resolver)、
|
||||||
|
路由选项中的 [`default_domain_resolver`](/zh/configuration/route/#default_domain_resolver),
|
||||||
|
或 DNS 规则动作与 `resolve` 路由规则动作上显式的 `server` 指定具体 DNS 服务器的
|
||||||
|
解析,不会经过 DNS 规则匹配,不受此次更改影响。
|
||||||
|
|
||||||
|
其二,设置了 `ip_version` 或 `query_type` 的 DNS 规则,或引用了包含 `query_type` 的
|
||||||
|
规则集的 DNS 规则,在同一 DNS 配置中不再能与旧版地址筛选字段 (DNS 规则)、旧版
|
||||||
|
DNS 规则动作 `strategy` 选项,或旧版 `rule_set_ip_cidr_accept_empty` DNS 规则项共存。
|
||||||
|
此类配置将在启动时被拒绝。如需将这些字段与基于地址的筛选组合,请通过
|
||||||
|
[`evaluate`](/zh/configuration/dns/rule_action/#evaluate) 动作和
|
||||||
|
[`match_response`](/zh/configuration/dns/rule/#match_response) 迁移到响应匹配,
|
||||||
|
参阅 [迁移地址筛选字段到响应匹配](#迁移地址筛选字段到响应匹配)。
|
||||||
|
|
||||||
|
!!! info "参考"
|
||||||
|
|
||||||
|
[DNS 规则](/zh/configuration/dns/rule/) /
|
||||||
|
[Headless 规则](/zh/configuration/rule-set/headless-rule/) /
|
||||||
|
[路由规则动作](/zh/configuration/route/rule_action/#resolve)
|
||||||
|
|
||||||
## 1.12.0
|
## 1.12.0
|
||||||
|
|
||||||
### 迁移到新的 DNS 服务器格式
|
### 迁移到新的 DNS 服务器格式
|
||||||
|
|||||||
Reference in New Issue
Block a user