mirror of
https://github.com/SagerNet/sing-box.git
synced 2025-01-30 20:56:54 +00:00
documentation: Refactor DNS
This commit is contained in:
parent
1e461e78e5
commit
5979d42a09
|
@ -1,3 +1,11 @@
|
||||||
|
---
|
||||||
|
icon: material/delete-clock
|
||||||
|
---
|
||||||
|
|
||||||
|
!!! failure "Deprecated in sing-box 1.12.0"
|
||||||
|
|
||||||
|
Legacy fake-ip configuration is deprecated and will be removed in sing-box 1.14.0, check [Migration](/migration/#migrate-to-new-dns-servers).
|
||||||
|
|
||||||
### Structure
|
### Structure
|
||||||
|
|
||||||
```json
|
```json
|
||||||
|
|
|
@ -1,3 +1,11 @@
|
||||||
|
---
|
||||||
|
icon: material/delete-clock
|
||||||
|
---
|
||||||
|
|
||||||
|
!!! failure "已在 sing-box 1.12.0 废弃"
|
||||||
|
|
||||||
|
旧的 fake-ip 配置已废弃且将在 sing-box 1.14.0 中被移除,参阅 [迁移指南](/migration/#migrate-to-new-dns-servers)。
|
||||||
|
|
||||||
### 结构
|
### 结构
|
||||||
|
|
||||||
```json
|
```json
|
||||||
|
|
|
@ -49,8 +49,6 @@ Default domain strategy for resolving the domain names.
|
||||||
|
|
||||||
One of `prefer_ipv4` `prefer_ipv6` `ipv4_only` `ipv6_only`.
|
One of `prefer_ipv4` `prefer_ipv6` `ipv4_only` `ipv6_only`.
|
||||||
|
|
||||||
Take no effect if `server.strategy` is set.
|
|
||||||
|
|
||||||
#### disable_cache
|
#### disable_cache
|
||||||
|
|
||||||
Disable dns cache.
|
Disable dns cache.
|
||||||
|
|
|
@ -48,8 +48,6 @@ icon: material/new-box
|
||||||
|
|
||||||
可选值: `prefer_ipv4` `prefer_ipv6` `ipv4_only` `ipv6_only`。
|
可选值: `prefer_ipv4` `prefer_ipv6` `ipv4_only` `ipv6_only`。
|
||||||
|
|
||||||
如果设置了 `server.strategy`,则不生效。
|
|
||||||
|
|
||||||
#### disable_cache
|
#### disable_cache
|
||||||
|
|
||||||
禁用 DNS 缓存。
|
禁用 DNS 缓存。
|
||||||
|
|
|
@ -2,6 +2,10 @@
|
||||||
icon: material/new-box
|
icon: material/new-box
|
||||||
---
|
---
|
||||||
|
|
||||||
|
!!! quote "Changes in sing-box 1.12.0"
|
||||||
|
|
||||||
|
:material-plus: [strategy](#strategy)
|
||||||
|
|
||||||
!!! question "Since sing-box 1.11.0"
|
!!! question "Since sing-box 1.11.0"
|
||||||
|
|
||||||
### route
|
### route
|
||||||
|
@ -10,6 +14,7 @@ icon: material/new-box
|
||||||
{
|
{
|
||||||
"action": "route", // default
|
"action": "route", // default
|
||||||
"server": "",
|
"server": "",
|
||||||
|
"strategy": "",
|
||||||
"disable_cache": false,
|
"disable_cache": false,
|
||||||
"rewrite_ttl": 0,
|
"rewrite_ttl": 0,
|
||||||
"client_subnet": null
|
"client_subnet": null
|
||||||
|
@ -24,6 +29,12 @@ icon: material/new-box
|
||||||
|
|
||||||
Tag of target server.
|
Tag of target server.
|
||||||
|
|
||||||
|
#### strategy
|
||||||
|
|
||||||
|
Set domain strategy for this query.
|
||||||
|
|
||||||
|
One of `prefer_ipv4` `prefer_ipv6` `ipv4_only` `ipv6_only`.
|
||||||
|
|
||||||
#### disable_cache
|
#### disable_cache
|
||||||
|
|
||||||
Disable cache and save cache in this query.
|
Disable cache and save cache in this query.
|
||||||
|
|
|
@ -2,6 +2,10 @@
|
||||||
icon: material/new-box
|
icon: material/new-box
|
||||||
---
|
---
|
||||||
|
|
||||||
|
!!! quote "sing-box 1.12.0 中的更改"
|
||||||
|
|
||||||
|
:material-plus: [strategy](#strategy)
|
||||||
|
|
||||||
!!! question "自 sing-box 1.11.0 起"
|
!!! question "自 sing-box 1.11.0 起"
|
||||||
|
|
||||||
### route
|
### route
|
||||||
|
@ -10,8 +14,8 @@ icon: material/new-box
|
||||||
{
|
{
|
||||||
"action": "route", // 默认
|
"action": "route", // 默认
|
||||||
"server": "",
|
"server": "",
|
||||||
|
|
||||||
// 兼容性
|
"strategy": "",
|
||||||
"disable_cache": false,
|
"disable_cache": false,
|
||||||
"rewrite_ttl": 0,
|
"rewrite_ttl": 0,
|
||||||
"client_subnet": null
|
"client_subnet": null
|
||||||
|
@ -26,6 +30,12 @@ icon: material/new-box
|
||||||
|
|
||||||
目标 DNS 服务器的标签。
|
目标 DNS 服务器的标签。
|
||||||
|
|
||||||
|
#### strategy
|
||||||
|
|
||||||
|
为此查询设置域名策略。
|
||||||
|
|
||||||
|
可选项:`prefer_ipv4` `prefer_ipv6` `ipv4_only` `ipv6_only`。
|
||||||
|
|
||||||
#### disable_cache
|
#### disable_cache
|
||||||
|
|
||||||
在此查询中禁用缓存。
|
在此查询中禁用缓存。
|
||||||
|
|
38
docs/configuration/dns/server/dhcp.md
Normal file
38
docs/configuration/dns/server/dhcp.md
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
---
|
||||||
|
icon: material/new-box
|
||||||
|
---
|
||||||
|
|
||||||
|
!!! question "Since sing-box 1.12.0"
|
||||||
|
|
||||||
|
# DHCP
|
||||||
|
|
||||||
|
### Structure
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "dhcp",
|
||||||
|
"tag": "",
|
||||||
|
|
||||||
|
"interface": "",
|
||||||
|
|
||||||
|
// Dial Fields
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Fields
|
||||||
|
|
||||||
|
#### interface
|
||||||
|
|
||||||
|
Interface name to listen on.
|
||||||
|
|
||||||
|
Tge default interface will be used by default.
|
||||||
|
|
||||||
|
### Dial Fields
|
||||||
|
|
||||||
|
See [Dial Fields](/configuration/shared/dial/) for details.
|
33
docs/configuration/dns/server/fakeip.md
Normal file
33
docs/configuration/dns/server/fakeip.md
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
---
|
||||||
|
icon: material/new-box
|
||||||
|
---
|
||||||
|
|
||||||
|
!!! question "Since sing-box 1.12.0"
|
||||||
|
|
||||||
|
# Fake IP
|
||||||
|
|
||||||
|
### Structure
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": {
|
||||||
|
"type": "fakeip",
|
||||||
|
"tag": "",
|
||||||
|
|
||||||
|
"inet4_range": "198.18.0.0/15",
|
||||||
|
"inet6_range": "fc00::/18"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Fields
|
||||||
|
|
||||||
|
#### inet4_range
|
||||||
|
|
||||||
|
IPv4 address range for FakeIP.
|
||||||
|
|
||||||
|
#### inet6_address
|
||||||
|
|
||||||
|
IPv6 address range for FakeIP.
|
69
docs/configuration/dns/server/http3.md
Normal file
69
docs/configuration/dns/server/http3.md
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
---
|
||||||
|
icon: material/new-box
|
||||||
|
---
|
||||||
|
|
||||||
|
!!! question "Since sing-box 1.12.0"
|
||||||
|
|
||||||
|
# DNS over HTTP3 (DoH3)
|
||||||
|
|
||||||
|
### Structure
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": {
|
||||||
|
"type": "h3",
|
||||||
|
"tag": "",
|
||||||
|
|
||||||
|
"server": "",
|
||||||
|
"server_port": 443,
|
||||||
|
|
||||||
|
"path": "",
|
||||||
|
"headers": {},
|
||||||
|
|
||||||
|
"tls": {},
|
||||||
|
|
||||||
|
// Dial Fields
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
!!! info "Difference from legacy H3 server"
|
||||||
|
|
||||||
|
* The old server uses default outbound by default unless detour is specified; the new one uses dialer just like outbound, which is equivalent to using an empty direct outbound by default.
|
||||||
|
* The old server uses `address_resolver` and `address_strategy` to resolve the domain name in the server; the new one uses `domain_resolver` and `domain_strategy` in [Dial Fields](/configuration/shared/dial/) instead.
|
||||||
|
|
||||||
|
### Fields
|
||||||
|
|
||||||
|
#### server
|
||||||
|
|
||||||
|
==Required==
|
||||||
|
|
||||||
|
The address of the DNS server.
|
||||||
|
|
||||||
|
If domain name is used, `domain_resolver` must also be set to resolve IP address.
|
||||||
|
|
||||||
|
#### server_port
|
||||||
|
|
||||||
|
The port of the DNS server.
|
||||||
|
|
||||||
|
`853` will be used by default.
|
||||||
|
|
||||||
|
#### path
|
||||||
|
|
||||||
|
The path of the DNS server.
|
||||||
|
|
||||||
|
`/dns-query` will be used by default.
|
||||||
|
|
||||||
|
#### headers
|
||||||
|
|
||||||
|
Additional headers to be sent to the DNS server.
|
||||||
|
|
||||||
|
#### tls
|
||||||
|
|
||||||
|
TLS configuration, see [TLS](/configuration/shared/tls/#outbound).
|
||||||
|
|
||||||
|
### Dial Fields
|
||||||
|
|
||||||
|
See [Dial Fields](/configuration/shared/dial/) for details.
|
69
docs/configuration/dns/server/https.md
Normal file
69
docs/configuration/dns/server/https.md
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
---
|
||||||
|
icon: material/new-box
|
||||||
|
---
|
||||||
|
|
||||||
|
!!! question "Since sing-box 1.12.0"
|
||||||
|
|
||||||
|
# DNS over HTTPS (DoH)
|
||||||
|
|
||||||
|
### Structure
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": {
|
||||||
|
"type": "https",
|
||||||
|
"tag": "",
|
||||||
|
|
||||||
|
"server": "",
|
||||||
|
"server_port": 443,
|
||||||
|
|
||||||
|
"path": "",
|
||||||
|
"headers": {},
|
||||||
|
|
||||||
|
"tls": {},
|
||||||
|
|
||||||
|
// Dial Fields
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
!!! info "Difference from legacy HTTPS server"
|
||||||
|
|
||||||
|
* The old server uses default outbound by default unless detour is specified; the new one uses dialer just like outbound, which is equivalent to using an empty direct outbound by default.
|
||||||
|
* The old server uses `address_resolver` and `address_strategy` to resolve the domain name in the server; the new one uses `domain_resolver` and `domain_strategy` in [Dial Fields](/configuration/shared/dial/) instead.
|
||||||
|
|
||||||
|
### Fields
|
||||||
|
|
||||||
|
#### server
|
||||||
|
|
||||||
|
==Required==
|
||||||
|
|
||||||
|
The address of the DNS server.
|
||||||
|
|
||||||
|
If domain name is used, `domain_resolver` must also be set to resolve IP address.
|
||||||
|
|
||||||
|
#### server_port
|
||||||
|
|
||||||
|
The port of the DNS server.
|
||||||
|
|
||||||
|
`853` will be used by default.
|
||||||
|
|
||||||
|
#### path
|
||||||
|
|
||||||
|
The path of the DNS server.
|
||||||
|
|
||||||
|
`/dns-query` will be used by default.
|
||||||
|
|
||||||
|
#### headers
|
||||||
|
|
||||||
|
Additional headers to be sent to the DNS server.
|
||||||
|
|
||||||
|
#### tls
|
||||||
|
|
||||||
|
TLS configuration, see [TLS](/configuration/shared/tls/#outbound).
|
||||||
|
|
||||||
|
### Dial Fields
|
||||||
|
|
||||||
|
See [Dial Fields](/configuration/shared/dial/) for details.
|
46
docs/configuration/dns/server/index.md
Normal file
46
docs/configuration/dns/server/index.md
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
---
|
||||||
|
icon: material/alert-decagram
|
||||||
|
---
|
||||||
|
|
||||||
|
!!! quote "Changes in sing-box 1.12.0"
|
||||||
|
|
||||||
|
:material-plus: [type](#type)
|
||||||
|
|
||||||
|
# DNS Server
|
||||||
|
|
||||||
|
### Structure
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "",
|
||||||
|
"tag": ""
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### type
|
||||||
|
|
||||||
|
The type of the DNS server.
|
||||||
|
|
||||||
|
| Type | Format |
|
||||||
|
|-----------------|-----------------------------------------------------|
|
||||||
|
| empty (default) | [Legacy](/configuration/dns/server/legacy/) |
|
||||||
|
| `tcp` | [TCP](/configuration/dns/server/tcp/) |
|
||||||
|
| `udp` | [UDP](/configuration/dns/server/udp/) |
|
||||||
|
| `tls` | [TLS](/configuration/dns/server/tls/) |
|
||||||
|
| `https` | [HTTPS](/configuration/dns/server/https/) |
|
||||||
|
| `quic` | [QUIC](/configuration/dns/server/quic/) |
|
||||||
|
| `h3` | [HTTP/3](/configuration/dns/server/http3/) |
|
||||||
|
| `predefined` | [Predefined](/configuration/dns/server/predefined/) |
|
||||||
|
| `dhcp` | [DHCP](/configuration/dns/server/dhcp/) |
|
||||||
|
| `fakeip` | [Fake IP](/configuration/dns/server/fakeip/) |
|
||||||
|
|
||||||
|
|
||||||
|
#### tag
|
||||||
|
|
||||||
|
The tag of the DNS server.
|
|
@ -1,3 +1,11 @@
|
||||||
|
---
|
||||||
|
icon: material/delete-clock
|
||||||
|
---
|
||||||
|
|
||||||
|
!!! failure "Deprecated in sing-box 1.12.0"
|
||||||
|
|
||||||
|
Legacy DNS servers is deprecated and will be removed in sing-box 1.14.0, check [Migration](/migration/#migrate-to-new-dns-servers).
|
||||||
|
|
||||||
!!! quote "Changes in sing-box 1.9.0"
|
!!! quote "Changes in sing-box 1.9.0"
|
||||||
|
|
||||||
:material-plus: [client_subnet](#client_subnet)
|
:material-plus: [client_subnet](#client_subnet)
|
|
@ -1,3 +1,11 @@
|
||||||
|
---
|
||||||
|
icon: material/delete-clock
|
||||||
|
---
|
||||||
|
|
||||||
|
!!! failure "Deprecated in sing-box 1.12.0"
|
||||||
|
|
||||||
|
旧的 DNS 服务器配置已废弃且将在 sing-box 1.14.0 中被移除,参阅 [迁移指南](/migration/#migrate-to-new-dns-servers)。
|
||||||
|
|
||||||
!!! quote "sing-box 1.9.0 中的更改"
|
!!! quote "sing-box 1.9.0 中的更改"
|
||||||
|
|
||||||
:material-plus: [client_subnet](#client_subnet)
|
:material-plus: [client_subnet](#client_subnet)
|
33
docs/configuration/dns/server/local.md
Normal file
33
docs/configuration/dns/server/local.md
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
---
|
||||||
|
icon: material/new-box
|
||||||
|
---
|
||||||
|
|
||||||
|
!!! question "Since sing-box 1.12.0"
|
||||||
|
|
||||||
|
# Local
|
||||||
|
|
||||||
|
### Structure
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "local",
|
||||||
|
"tag": "",
|
||||||
|
|
||||||
|
// Dial Fields
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
!!! info "Difference from legacy local server"
|
||||||
|
|
||||||
|
* The old legacy local server only handles IP requests; the new one handles all types of requests and supports concurrent for IP requests.
|
||||||
|
* The old local server uses default outbound by default unless detour is specified; the new one uses dialer just like outbound, which is equivalent to using an empty direct outbound by default.
|
||||||
|
|
||||||
|
### Dial Fields
|
||||||
|
|
||||||
|
See [Dial Fields](/configuration/shared/dial/) for details.
|
93
docs/configuration/dns/server/predefined.md
Normal file
93
docs/configuration/dns/server/predefined.md
Normal file
|
@ -0,0 +1,93 @@
|
||||||
|
---
|
||||||
|
icon: material/new-box
|
||||||
|
---
|
||||||
|
|
||||||
|
!!! question "Since sing-box 1.12.0"
|
||||||
|
|
||||||
|
# Predefined
|
||||||
|
|
||||||
|
### Structure
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "predefined",
|
||||||
|
"tag": "",
|
||||||
|
"responses": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Fields
|
||||||
|
|
||||||
|
#### responses
|
||||||
|
|
||||||
|
==Required==
|
||||||
|
|
||||||
|
List of [Response](#response-structure).
|
||||||
|
|
||||||
|
### Response Structure
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"query": [],
|
||||||
|
"query_type": [],
|
||||||
|
"rcode": "",
|
||||||
|
"answer": [],
|
||||||
|
"ns": [],
|
||||||
|
"extra": []
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
!!! note ""
|
||||||
|
|
||||||
|
You can ignore the JSON Array [] tag when the content is only one item
|
||||||
|
|
||||||
|
### Response Fields
|
||||||
|
|
||||||
|
#### query
|
||||||
|
|
||||||
|
List of domain name to match.
|
||||||
|
|
||||||
|
#### query_type
|
||||||
|
|
||||||
|
List of query type to match.
|
||||||
|
|
||||||
|
#### rcode
|
||||||
|
|
||||||
|
The response code.
|
||||||
|
|
||||||
|
| Value | Value in the legacy rcode server | Description |
|
||||||
|
|------------|----------------------------------|-----------------|
|
||||||
|
| `NOERROR` | `success` | Ok |
|
||||||
|
| `FORMERR` | `format_error` | Bad request |
|
||||||
|
| `SERVFAIL` | `server_failure` | Server failure |
|
||||||
|
| `NXDOMAIN` | `name_error` | Not found |
|
||||||
|
| `NOTIMP` | `not_implemented` | Not implemented |
|
||||||
|
| `REFUSED` | `refused` | Refused |
|
||||||
|
|
||||||
|
`NOERROR` will be used by default.
|
||||||
|
|
||||||
|
#### answer
|
||||||
|
|
||||||
|
List of text DNS record to respond as answers.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
| Record Type | Example |
|
||||||
|
|-------------|-------------------------------|
|
||||||
|
| `A` | `localhost. IN A 127.0.0.1` |
|
||||||
|
| `AAAA` | `localhost. IN AAAA ::1` |
|
||||||
|
| `TXT` | `localhost. IN TXT \"Hello\"` |
|
||||||
|
|
||||||
|
#### ns
|
||||||
|
|
||||||
|
List of text DNS record to respond as name servers.
|
||||||
|
|
||||||
|
#### extra
|
||||||
|
|
||||||
|
List of text DNS record to respond as extra records.
|
56
docs/configuration/dns/server/quic.md
Normal file
56
docs/configuration/dns/server/quic.md
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
---
|
||||||
|
icon: material/new-box
|
||||||
|
---
|
||||||
|
|
||||||
|
!!! question "Since sing-box 1.12.0"
|
||||||
|
|
||||||
|
# DNS over QUIC (DoQ)
|
||||||
|
|
||||||
|
### Structure
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": {
|
||||||
|
"type": "quic",
|
||||||
|
"tag": "",
|
||||||
|
|
||||||
|
"server": "",
|
||||||
|
"server_port": 853,
|
||||||
|
|
||||||
|
"tls": {},
|
||||||
|
|
||||||
|
// Dial Fields
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
!!! info "Difference from legacy QUIC server"
|
||||||
|
|
||||||
|
* The old server uses default outbound by default unless detour is specified; the new one uses dialer just like outbound, which is equivalent to using an empty direct outbound by default.
|
||||||
|
* The old server uses `address_resolver` and `address_strategy` to resolve the domain name in the server; the new one uses `domain_resolver` and `domain_strategy` in [Dial Fields](/configuration/shared/dial/) instead.
|
||||||
|
|
||||||
|
### Fields
|
||||||
|
|
||||||
|
#### server
|
||||||
|
|
||||||
|
==Required==
|
||||||
|
|
||||||
|
The address of the DNS server.
|
||||||
|
|
||||||
|
If domain name is used, `domain_resolver` must also be set to resolve IP address.
|
||||||
|
|
||||||
|
#### server_port
|
||||||
|
|
||||||
|
The port of the DNS server.
|
||||||
|
|
||||||
|
`853` will be used by default.
|
||||||
|
|
||||||
|
#### tls
|
||||||
|
|
||||||
|
TLS configuration, see [TLS](/configuration/shared/tls/#outbound).
|
||||||
|
|
||||||
|
### Dial Fields
|
||||||
|
|
||||||
|
See [Dial Fields](/configuration/shared/dial/) for details.
|
50
docs/configuration/dns/server/tcp.md
Normal file
50
docs/configuration/dns/server/tcp.md
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
---
|
||||||
|
icon: material/new-box
|
||||||
|
---
|
||||||
|
|
||||||
|
!!! question "Since sing-box 1.12.0"
|
||||||
|
|
||||||
|
# TCP
|
||||||
|
|
||||||
|
### Structure
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": {
|
||||||
|
"type": "tcp",
|
||||||
|
"tag": "",
|
||||||
|
|
||||||
|
"server": "",
|
||||||
|
"server_port": 53,
|
||||||
|
|
||||||
|
// Dial Fields
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
!!! info "Difference from legacy TCP server"
|
||||||
|
|
||||||
|
* The old server uses default outbound by default unless detour is specified; the new one uses dialer just like outbound, which is equivalent to using an empty direct outbound by default.
|
||||||
|
* The old server uses `address_resolver` and `address_strategy` to resolve the domain name in the server; the new one uses `domain_resolver` and `domain_strategy` in [Dial Fields](/configuration/shared/dial/) instead.
|
||||||
|
|
||||||
|
### Fields
|
||||||
|
|
||||||
|
#### server
|
||||||
|
|
||||||
|
==Required==
|
||||||
|
|
||||||
|
The address of the DNS server.
|
||||||
|
|
||||||
|
If domain name is used, `domain_resolver` must also be set to resolve IP address.
|
||||||
|
|
||||||
|
#### server_port
|
||||||
|
|
||||||
|
The port of the DNS server.
|
||||||
|
|
||||||
|
`53` will be used by default.
|
||||||
|
|
||||||
|
### Dial Fields
|
||||||
|
|
||||||
|
See [Dial Fields](/configuration/shared/dial/) for details.
|
56
docs/configuration/dns/server/tls.md
Normal file
56
docs/configuration/dns/server/tls.md
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
---
|
||||||
|
icon: material/new-box
|
||||||
|
---
|
||||||
|
|
||||||
|
!!! question "Since sing-box 1.12.0"
|
||||||
|
|
||||||
|
# DNS over TLS (DoT)
|
||||||
|
|
||||||
|
### Structure
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": {
|
||||||
|
"type": "tls",
|
||||||
|
"tag": "",
|
||||||
|
|
||||||
|
"server": "",
|
||||||
|
"server_port": 853,
|
||||||
|
|
||||||
|
"tls": {},
|
||||||
|
|
||||||
|
// Dial Fields
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
!!! info "Difference from legacy TLS server"
|
||||||
|
|
||||||
|
* The old server uses default outbound by default unless detour is specified; the new one uses dialer just like outbound, which is equivalent to using an empty direct outbound by default.
|
||||||
|
* The old server uses `address_resolver` and `address_strategy` to resolve the domain name in the server; the new one uses `domain_resolver` and `domain_strategy` in [Dial Fields](/configuration/shared/dial/) instead.
|
||||||
|
|
||||||
|
### Fields
|
||||||
|
|
||||||
|
#### server
|
||||||
|
|
||||||
|
==Required==
|
||||||
|
|
||||||
|
The address of the DNS server.
|
||||||
|
|
||||||
|
If domain name is used, `domain_resolver` must also be set to resolve IP address.
|
||||||
|
|
||||||
|
#### server_port
|
||||||
|
|
||||||
|
The port of the DNS server.
|
||||||
|
|
||||||
|
`853` will be used by default.
|
||||||
|
|
||||||
|
#### tls
|
||||||
|
|
||||||
|
TLS configuration, see [TLS](/configuration/shared/tls/#outbound).
|
||||||
|
|
||||||
|
### Dial Fields
|
||||||
|
|
||||||
|
See [Dial Fields](/configuration/shared/dial/) for details.
|
50
docs/configuration/dns/server/udp.md
Normal file
50
docs/configuration/dns/server/udp.md
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
---
|
||||||
|
icon: material/new-box
|
||||||
|
---
|
||||||
|
|
||||||
|
!!! question "Since sing-box 1.12.0"
|
||||||
|
|
||||||
|
# TCP
|
||||||
|
|
||||||
|
### Structure
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": {
|
||||||
|
"type": "udp",
|
||||||
|
"tag": "",
|
||||||
|
|
||||||
|
"server": "",
|
||||||
|
"server_port": 53,
|
||||||
|
|
||||||
|
// Dial Fields
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
!!! info "Difference from legacy UDP server"
|
||||||
|
|
||||||
|
* The old server uses default outbound by default unless detour is specified; the new one uses dialer just like outbound, which is equivalent to using an empty direct outbound by default.
|
||||||
|
* The old server uses `address_resolver` and `address_strategy` to resolve the domain name in the server; the new one uses `domain_resolver` and `domain_strategy` in [Dial Fields](/configuration/shared/dial/) instead.
|
||||||
|
|
||||||
|
### Fields
|
||||||
|
|
||||||
|
#### server
|
||||||
|
|
||||||
|
==Required==
|
||||||
|
|
||||||
|
The address of the DNS server.
|
||||||
|
|
||||||
|
If domain name is used, `domain_resolver` must also be set to resolve IP address.
|
||||||
|
|
||||||
|
#### server_port
|
||||||
|
|
||||||
|
The port of the DNS server.
|
||||||
|
|
||||||
|
`53` will be used by default.
|
||||||
|
|
||||||
|
### Dial Fields
|
||||||
|
|
||||||
|
See [Dial Fields](/configuration/shared/dial/) for details.
|
|
@ -4,6 +4,15 @@ icon: material/delete-alert
|
||||||
|
|
||||||
# Deprecated Feature List
|
# Deprecated Feature List
|
||||||
|
|
||||||
|
## 1.12.0
|
||||||
|
|
||||||
|
#### Legacy DNS server formats
|
||||||
|
|
||||||
|
DNS servers are refactored,
|
||||||
|
check [Migration](../migration/#migrate-to-new-dns-servers).
|
||||||
|
|
||||||
|
Compatibility for old formats will be removed in sing-box 1.14.0.
|
||||||
|
|
||||||
## 1.11.0
|
## 1.11.0
|
||||||
|
|
||||||
#### Legacy special outbounds
|
#### Legacy special outbounds
|
||||||
|
|
|
@ -4,6 +4,13 @@ icon: material/delete-alert
|
||||||
|
|
||||||
# 废弃功能列表
|
# 废弃功能列表
|
||||||
|
|
||||||
|
#### 旧的 DNS 服务器格式
|
||||||
|
|
||||||
|
DNS 服务器已重构,
|
||||||
|
参阅 [迁移指南](/migration/#migrate-to-new-dns-servers).
|
||||||
|
|
||||||
|
对旧格式的兼容性将在 sing-box 1.14.0 中被移除。
|
||||||
|
|
||||||
## 1.11.0
|
## 1.11.0
|
||||||
|
|
||||||
#### 旧的特殊出站
|
#### 旧的特殊出站
|
||||||
|
|
|
@ -2,6 +2,507 @@
|
||||||
icon: material/arrange-bring-forward
|
icon: material/arrange-bring-forward
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 1.12.0
|
||||||
|
|
||||||
|
### Migrate to new DNS server formats
|
||||||
|
|
||||||
|
DNS servers are refactored.
|
||||||
|
|
||||||
|
!!! info "References"
|
||||||
|
|
||||||
|
[DNS Server](/configuration/dns/server/) /
|
||||||
|
[Legacy DNS Server](/configuration/dns/server/legacy/)
|
||||||
|
|
||||||
|
=== "Local"
|
||||||
|
|
||||||
|
=== ":material-card-remove: Deprecated"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "local"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":material-card-multiple: New"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "local"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "TCP"
|
||||||
|
|
||||||
|
=== ":material-card-remove: Deprecated"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "tcp://1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":material-card-multiple: New"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "tcp",
|
||||||
|
"server": "1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "UDP"
|
||||||
|
|
||||||
|
=== ":material-card-remove: Deprecated"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":material-card-multiple: New"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "udp",
|
||||||
|
"server": "1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "TLS"
|
||||||
|
|
||||||
|
=== ":material-card-remove: Deprecated"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "tls://1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":material-card-multiple: New"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "tls",
|
||||||
|
"server": "1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "HTTPS"
|
||||||
|
|
||||||
|
=== ":material-card-remove: Deprecated"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "https://1.1.1.1/dns-query"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":material-card-multiple: New"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "https",
|
||||||
|
"server": "1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "QUIC"
|
||||||
|
|
||||||
|
=== ":material-card-remove: Deprecated"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "quic://1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":material-card-multiple: New"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "quic",
|
||||||
|
"server": "1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "HTTP3"
|
||||||
|
|
||||||
|
=== ":material-card-remove: Deprecated"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "h3://1.1.1.1/dns-query"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":material-card-multiple: New"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "h3",
|
||||||
|
"server": "1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "DHCP"
|
||||||
|
|
||||||
|
=== ":material-card-remove: Deprecated"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "dhcp://auto"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "dhcp://en0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":material-card-multiple: New"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "dhcp",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "dhcp",
|
||||||
|
"interface": "en0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "FakeIP"
|
||||||
|
|
||||||
|
=== ":material-card-remove: Deprecated"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "1.1.1.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "fakeip",
|
||||||
|
"tag": "fakeip"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"query_type": ["A", "AAAA"],
|
||||||
|
"server": "fakeip"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"fakeip": {
|
||||||
|
"enable": true,
|
||||||
|
"inet4_range": "198.18.0.0/15",
|
||||||
|
"inet6_range": "fc00::/18"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":material-card-multiple: New"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": [
|
||||||
|
{
|
||||||
|
"type": "udp",
|
||||||
|
"server": "1.1.1.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "fakeip",
|
||||||
|
"tag": "fakeip",
|
||||||
|
"inet4_range": "198.18.0.0/15",
|
||||||
|
"inet6_range": "fc00::/18"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"query_type": ["A", "AAAA"],
|
||||||
|
"server": "fakeip"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "RCode"
|
||||||
|
|
||||||
|
=== ":material-card-remove: Deprecated"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "rcode://refused"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":material-card-multiple: New"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "predefined",
|
||||||
|
"responses": [
|
||||||
|
{
|
||||||
|
"rcode": "REFUSED"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "Servers with domain address"
|
||||||
|
|
||||||
|
=== ":material-card-remove: Deprecated"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "https://dns.google/dns-query",
|
||||||
|
"address_resolver": "google"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "google",
|
||||||
|
"address": "1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":material-card-multiple: New"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "https",
|
||||||
|
"server": "dns.google",
|
||||||
|
"domain_resolver": "google"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "udp",
|
||||||
|
"tag": "google",
|
||||||
|
"server": "1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "Servers with strategy"
|
||||||
|
|
||||||
|
=== ":material-card-remove: Deprecated"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "1.1.1.1",
|
||||||
|
"strategy": "ipv4_only"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "google",
|
||||||
|
"address": "8.8.8.8",
|
||||||
|
"strategy": "prefer_ipv6"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"domain": "google.com",
|
||||||
|
"server": "google"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":material-card-multiple: New"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "udp",
|
||||||
|
"server": "1.1.1.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "udp",
|
||||||
|
"tag": "google",
|
||||||
|
"server": "8.8.8.8"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"domain": "google.com",
|
||||||
|
"server": "google",
|
||||||
|
"strategy": "prefer_ipv6"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"strategy": "ipv4_only"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "Servers with client subnet"
|
||||||
|
|
||||||
|
=== ":material-card-remove: Deprecated"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "1.1.1.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "google",
|
||||||
|
"address": "8.8.8.8",
|
||||||
|
"client_subnet": "1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":material-card-multiple: New"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "udp",
|
||||||
|
"server": "1.1.1.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "udp",
|
||||||
|
"tag": "google",
|
||||||
|
"server": "8.8.8.8"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"domain": "google.com",
|
||||||
|
"server": "google",
|
||||||
|
"client_subnet": "1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
## 1.11.0
|
## 1.11.0
|
||||||
|
|
||||||
### Migrate legacy special outbounds to rule actions
|
### Migrate legacy special outbounds to rule actions
|
||||||
|
|
|
@ -2,6 +2,507 @@
|
||||||
icon: material/arrange-bring-forward
|
icon: material/arrange-bring-forward
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 1.12.0
|
||||||
|
|
||||||
|
### 迁移到新的 DNS 服务器格式
|
||||||
|
|
||||||
|
DNS 服务器已经重构。
|
||||||
|
|
||||||
|
!!! info "饮用"
|
||||||
|
|
||||||
|
[DNS 服务器](/configuration/dns/server/) /
|
||||||
|
[旧 DNS 服务器](/configuration/dns/server/legacy/)
|
||||||
|
|
||||||
|
=== "Local"
|
||||||
|
|
||||||
|
=== ":material-card-remove: 弃用的"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "local"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":material-card-multiple: 新的"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "local"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "TCP"
|
||||||
|
|
||||||
|
=== ":material-card-remove: 弃用的"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "tcp://1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":material-card-multiple: 新的"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "tcp",
|
||||||
|
"server": "1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "UDP"
|
||||||
|
|
||||||
|
=== ":material-card-remove: 弃用的"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":material-card-multiple: 新的"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "udp",
|
||||||
|
"server": "1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "TLS"
|
||||||
|
|
||||||
|
=== ":material-card-remove: 弃用的"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "tls://1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":material-card-multiple: 新的"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "tls",
|
||||||
|
"server": "1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "HTTPS"
|
||||||
|
|
||||||
|
=== ":material-card-remove: 弃用的"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "https://1.1.1.1/dns-query"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":material-card-multiple: 新的"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "https",
|
||||||
|
"server": "1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "QUIC"
|
||||||
|
|
||||||
|
=== ":material-card-remove: 弃用的"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "quic://1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":material-card-multiple: 新的"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "quic",
|
||||||
|
"server": "1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "HTTP3"
|
||||||
|
|
||||||
|
=== ":material-card-remove: 弃用的"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "h3://1.1.1.1/dns-query"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":material-card-multiple: 新的"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "h3",
|
||||||
|
"server": "1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "DHCP"
|
||||||
|
|
||||||
|
=== ":material-card-remove: 弃用的"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "dhcp://auto"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "dhcp://en0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":material-card-multiple: 新的"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "dhcp",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "dhcp",
|
||||||
|
"interface": "en0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "FakeIP"
|
||||||
|
|
||||||
|
=== ":material-card-remove: 弃用的"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "1.1.1.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "fakeip",
|
||||||
|
"tag": "fakeip"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"query_type": ["A", "AAAA"],
|
||||||
|
"server": "fakeip"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"fakeip": {
|
||||||
|
"enable": true,
|
||||||
|
"inet4_range": "198.18.0.0/15",
|
||||||
|
"inet6_range": "fc00::/18"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":material-card-multiple: 新的"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": [
|
||||||
|
{
|
||||||
|
"type": "udp",
|
||||||
|
"server": "1.1.1.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "fakeip",
|
||||||
|
"tag": "fakeip",
|
||||||
|
"inet4_range": "198.18.0.0/15",
|
||||||
|
"inet6_range": "fc00::/18"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"query_type": ["A", "AAAA"],
|
||||||
|
"server": "fakeip"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "RCode"
|
||||||
|
|
||||||
|
=== ":material-card-remove: 弃用的"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "rcode://refused"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":material-card-multiple: 新的"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "predefined",
|
||||||
|
"responses": [
|
||||||
|
{
|
||||||
|
"rcode": "REFUSED"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "带有域名地址的服务器"
|
||||||
|
|
||||||
|
=== ":material-card-remove: 弃用的"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "https://dns.google/dns-query",
|
||||||
|
"address_resolver": "google"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "google",
|
||||||
|
"address": "1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":material-card-multiple: 新的"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "https",
|
||||||
|
"server": "dns.google",
|
||||||
|
"domain_resolver": "google"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "udp",
|
||||||
|
"tag": "google",
|
||||||
|
"server": "1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "带有域策略的服务器"
|
||||||
|
|
||||||
|
=== ":material-card-remove: 弃用的"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "1.1.1.1",
|
||||||
|
"strategy": "ipv4_only"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "google",
|
||||||
|
"address": "8.8.8.8",
|
||||||
|
"strategy": "prefer_ipv6"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"domain": "google.com",
|
||||||
|
"server": "google"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":material-card-multiple: 新的"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "udp",
|
||||||
|
"server": "1.1.1.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "udp",
|
||||||
|
"tag": "google",
|
||||||
|
"server": "8.8.8.8"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"domain": "google.com",
|
||||||
|
"server": "google",
|
||||||
|
"strategy": "prefer_ipv6"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"strategy": "ipv4_only"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "带有客户端子网的服务器"
|
||||||
|
|
||||||
|
=== ":material-card-remove: 弃用的"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "1.1.1.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "google",
|
||||||
|
"address": "8.8.8.8",
|
||||||
|
"client_subnet": "1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":material-card-multiple: 新的"
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"type": "udp",
|
||||||
|
"server": "1.1.1.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "udp",
|
||||||
|
"tag": "google",
|
||||||
|
"server": "8.8.8.8"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"domain": "google.com",
|
||||||
|
"server": "google",
|
||||||
|
"client_subnet": "1.1.1.1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
## 1.11.0
|
## 1.11.0
|
||||||
|
|
||||||
### 迁移旧的特殊出站到规则动作
|
### 迁移旧的特殊出站到规则动作
|
||||||
|
@ -129,7 +630,7 @@ icon: material/arrange-bring-forward
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
=== ":material-card-multiple: New"
|
=== ":material-card-multiple: 新的"
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
|
|
14
mkdocs.yml
14
mkdocs.yml
|
@ -80,7 +80,19 @@ nav:
|
||||||
- configuration/log/index.md
|
- configuration/log/index.md
|
||||||
- DNS:
|
- DNS:
|
||||||
- configuration/dns/index.md
|
- configuration/dns/index.md
|
||||||
- DNS Server: configuration/dns/server.md
|
- DNS Server:
|
||||||
|
- configuration/dns/server/index.md
|
||||||
|
- Legacy: configuration/dns/server/legacy.md
|
||||||
|
- Local: configuration/dns/server/local.md
|
||||||
|
- TCP: configuration/dns/server/tcp.md
|
||||||
|
- UDP: configuration/dns/server/udp.md
|
||||||
|
- TLS: configuration/dns/server/tls.md
|
||||||
|
- QUIC: configuration/dns/server/quic.md
|
||||||
|
- HTTPS: configuration/dns/server/https.md
|
||||||
|
- HTTP3: configuration/dns/server/http3.md
|
||||||
|
- Predefined: configuration/dns/server/predefined.md
|
||||||
|
- DHCP: configuration/dns/server/dhcp.md
|
||||||
|
- FakeIP: configuration/dns/server/fakeip.md
|
||||||
- DNS Rule: configuration/dns/rule.md
|
- DNS Rule: configuration/dns/rule.md
|
||||||
- DNS Rule Action: configuration/dns/rule_action.md
|
- DNS Rule Action: configuration/dns/rule_action.md
|
||||||
- FakeIP: configuration/dns/fakeip.md
|
- FakeIP: configuration/dns/fakeip.md
|
||||||
|
|
Loading…
Reference in a new issue