mirror of
https://github.com/SagerNet/sing-box.git
synced 2026-04-11 17:47:20 +10:00
documentation: Fix missing update for ip_version and query_type
This commit is contained in:
@@ -13,6 +13,8 @@ icon: material/alert-decagram
|
||||
:material-plus: [response_ns](#response_ns)
|
||||
:material-plus: [response_extra](#response_extra)
|
||||
: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"
|
||||
|
||||
@@ -243,12 +245,46 @@ Tags of [Inbound](/configuration/inbound/).
|
||||
|
||||
#### 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).
|
||||
|
||||
Not limited if empty.
|
||||
|
||||
#### 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.
|
||||
|
||||
#### network
|
||||
|
||||
@@ -13,6 +13,8 @@ icon: material/alert-decagram
|
||||
:material-plus: [response_ns](#response_ns)
|
||||
:material-plus: [response_extra](#response_extra)
|
||||
: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 中的更改"
|
||||
|
||||
@@ -243,12 +245,38 @@ icon: material/alert-decagram
|
||||
|
||||
#### 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 查询)。
|
||||
|
||||
默认不限制。
|
||||
|
||||
#### 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 查询类型。值可以为整数或者类型名称字符串。
|
||||
|
||||
#### network
|
||||
|
||||
@@ -5,6 +5,7 @@ icon: material/new-box
|
||||
!!! quote "Changes in sing-box 1.14.0"
|
||||
|
||||
:material-plus: [package_name_regex](#package_name_regex)
|
||||
:material-alert: [query_type](#query_type)
|
||||
|
||||
!!! quote "Changes in sing-box 1.13.0"
|
||||
|
||||
@@ -132,6 +133,20 @@ icon: material/new-box
|
||||
|
||||
#### 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.
|
||||
|
||||
#### network
|
||||
|
||||
@@ -5,6 +5,7 @@ icon: material/new-box
|
||||
!!! quote "sing-box 1.14.0 中的更改"
|
||||
|
||||
:material-plus: [package_name_regex](#package_name_regex)
|
||||
:material-alert: [query_type](#query_type)
|
||||
|
||||
!!! quote "sing-box 1.13.0 中的更改"
|
||||
|
||||
@@ -132,6 +133,17 @@ icon: material/new-box
|
||||
|
||||
#### 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 查询类型。值可以为整数或者类型名称字符串。
|
||||
|
||||
#### 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
|
||||
|
||||
### 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
|
||||
|
||||
### 迁移到新的 DNS 服务器格式
|
||||
|
||||
Reference in New Issue
Block a user