Skip to content

wireguard: check FQDN updates of peers on error - #3486

Closed
qjebbs wants to merge 40 commits into
SagerNet:dev-nextfrom
qjebbs:wireguard_update_dns
Closed

wireguard: check FQDN updates of peers on error#3486
qjebbs wants to merge 40 commits into
SagerNet:dev-nextfrom
qjebbs:wireguard_update_dns

Conversation

@qjebbs

@qjebbs qjebbs commented Oct 20, 2025

Copy link
Copy Markdown

When the WireGuard works with DDNS, IP changes will cause the node to lose connection, which can be restored only by restarting sing-box.

This PR adds logic for updating DNS in the event of a connection error, and also throttling to ensure that resolution and updates are not triggered too often.

Zephyruso and others added 30 commits October 16, 2025 22:30
We mistakenly believed that `libresolv`'s `search` function worked correctly in NetworkExtension, but it seems only `getaddrinfo` does.

This commit changes the behavior of the `local` DNS server in NetworkExtension to prefer DHCP, falling back to `getaddrinfo` if DHCP servers are unavailable.

It's worth noting that `prefer_go` does not disable DHCP since it respects Dial Fields, but `getaddrinfo` does the opposite. The new behavior only applies to NetworkExtension, not to all scenarios (primarily command-line binaries) as it did previously.

In addition, this commit also improves the DHCP DNS server to use the same robust query logic as `local`.
We do not have the `com.apple.developer.networking.multicast` entitlement and are unable to obtain it for non-technical reasons.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants