Changes in sing-box 1.14.0
Changes in sing-box 1.12.0
Changes in sing-box 1.11.0
DNS
Structure
{
"dns": {
"servers": [],
"rules": [],
"final": "",
"strategy": "",
"disable_cache": false,
"disable_expire": false,
"independent_cache": false,
"cache_capacity": 0,
"optimistic": false, // or {}
"reverse_mapping": false,
"client_subnet": "",
"fakeip": {}
}
}
Fields
| Key | Format |
|---|---|
server |
List of DNS Server |
rules |
List of DNS Rule |
fakeip |
FakeIP |
final
Default dns server tag.
The first server will be used if empty.
strategy
Default domain strategy for resolving the domain names.
One of prefer_ipv4 prefer_ipv6 ipv4_only ipv6_only.
disable_cache
Disable dns cache.
Conflict with optimistic.
disable_expire
Disable dns cache expire.
Conflict with optimistic.
independent_cache
Deprecated in sing-box 1.14.0
independent_cache is deprecated and will be removed in sing-box 1.14.0, check Migration.
Make each DNS server's cache independent for special purposes. If enabled, will slightly degrade performance.
cache_capacity
Since sing-box 1.11.0
LRU cache capacity.
Value less than 1024 will be ignored.
optimistic
Since sing-box 1.14.0
Enable optimistic DNS caching. When a cached DNS entry has expired but is still within the timeout window, the stale response is returned immediately while a background refresh is triggered.
Conflict with disable_cache and disable_expire.
Accepts a boolean or an object. When set to true, the default timeout of 3d is used.
enabled
Enable optimistic DNS caching.
timeout
The maximum time an expired cache entry can be served optimistically.
3d is used by default.
reverse_mapping
Stores a reverse mapping of IP addresses after responding to a DNS query in order to provide domain names when routing.
Since this process relies on the act of resolving domain names by an application before making a request, it can be problematic in environments such as macOS, where DNS is proxied and cached by the system.
client_subnet
Since sing-box 1.9.0
Append a edns0-subnet OPT extra record with the specified IP prefix to every query by default.
If value is an IP address instead of prefix, /32 or /128 will be appended automatically.
Can be overridden by servers.[].client_subnet or rules.[].client_subnet.