Changes in sing-box 1.14.0
Changes in sing-box 1.13.0
Since sing-box 1.12.0
Local
Structure
{
"dns": {
"servers": [
{
"type": "local",
"tag": "",
"prefer_go": false,
"neighbor_domain": []
// Dial Fields
}
]
}
}
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.
Fields
prefer_go
Since sing-box 1.13.0
When enabled, local DNS server will resolve DNS by dialing itself whenever possible.
Specifically, it disables following behaviors which was added as features in sing-box 1.13.0:
- On Apple platforms: Attempt to resolve A/AAAA requests using
getaddrinfoin NetworkExtension. - On Linux: Resolve through
systemd-resolvd's DBus interface when available.
As a sole exception, it cannot disable the following behavior:
-
In the Android graphical client,
localwill always resolve DNS through the platform interface, as there is no other way to obtain upstream DNS servers; On devices running Android versions lower than 10, this interface can only resolve A/AAAA requests. -
On macOS,
localwill try DHCP first in Network Extension, since DHCP respects DIal Fields, it will not be disabled byprefer_go.
neighbor_domain
Since sing-box 1.14.0
A list of domain suffixes for which A/AAAA queries are answered from the neighbor resolver instead of the upstream.
Each entry must start with .. Only queries whose host part (the portion
before the suffix) contains no dots are matched; . matches any
single-label name such as nas.
Example: [".", ".lan"].
Dial Fields
See Dial Fields for details.