Skip to content

Changes in sing-box 1.14.0

independent_cache
optimistic

Changes in sing-box 1.12.0

servers

Changes in sing-box 1.11.0

cache_capacity

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": true,
  "timeout": "3d"
}
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.