diff --git a/docs/configuration/dns/server/local.md b/docs/configuration/dns/server/local.md index 361c6c5b..9556cb1d 100644 --- a/docs/configuration/dns/server/local.md +++ b/docs/configuration/dns/server/local.md @@ -43,16 +43,18 @@ When enabled, `local` DNS server will resolve DNS by dialing itself whenever pos Specifically, it disables following behaviors which was added as features in sing-box 1.13.0: -* On Apple platforms: Use `libresolv` for resolution, as it is the only one that works properly with NetworkExtension - that overrides DNS servers (DHCP is also possible but is not considered). -* On Linux: Resolve through `systemd-resolvd`'s DBus interface when available. +1. On Apple platforms: Attempt to resolve A/AAAA requests using `getaddrinfo` in NetworkExtension. +2. 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, the `local` DNS server will always resolve DNS through the platform interface, -as there is no other way to obtain upstream DNS servers. +1. In the Android graphical client, +`local` will 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 devices running Android versions lower than 10, this interface can only resolve IP queries. +2. On macOS, `local` will try DHCP first in Network Extension, since DHCP respects DIal Fields, +it will not be disabled by `prefer_go`. ### Dial Fields