Prerequisites
The problem
AdGuard Home currently provides a single DNS server configuration within an instance. When a separate DNS service with different listening and upstream DNS settings is needed, users have to run another DNS service/AdGuard Home instance or maintain additional DNS routing logic.
This makes it difficult to provide two independent DNS service endpoints while keeping them under the same AdGuard Home instance and management interface.
Proposed solution
Add an optional Secondary DNS Server to an AdGuard Home instance.
The Primary DNS Server and Secondary DNS Server would have independent:
- Listening addresses/ports
- Upstream DNS configurations
- Runtime lifecycle
Both DNS servers would continue to share the same AdGuard Home instance and its existing DNS filtering functionality.
For example:
Primary DNS Server:
:8080 → Upstream A
Secondary DNS Server:
:8081 → Upstream B
The Secondary DNS Server would be disabled by default, so existing AdGuard Home behavior would remain unchanged unless the feature is explicitly enabled.
Alternatives considered and additional information
Running two separate AdGuard Home instances is one possible workaround, but this requires maintaining separate configurations and management interfaces.
Using upstream DNS rules or client-specific routing is another possible approach, but it requires maintaining additional DNS routing rules and does not provide two independent DNS service endpoints.
The proposed Secondary DNS Server provides a simple separation at the DNS listener level: external systems can decide which DNS service to use by selecting the corresponding listener.
I have already implemented a working version of this feature, including both backend and frontend changes. The backend implementation currently modifies 7 Go files, with the remaining changes primarily related to frontend integration.
I would like to confirm whether this feature and architecture would be considered suitable for inclusion in AdGuard Home before submitting a full pull request.
Related to #7826.
Prerequisites
I have checked the Wiki and Discussions and found no answer
I have searched other issues and found no duplicates
I want to request a feature or enhancement and not ask a question
The problem
AdGuard Home currently provides a single DNS server configuration within an instance. When a separate DNS service with different listening and upstream DNS settings is needed, users have to run another DNS service/AdGuard Home instance or maintain additional DNS routing logic.
This makes it difficult to provide two independent DNS service endpoints while keeping them under the same AdGuard Home instance and management interface.
Proposed solution
Add an optional Secondary DNS Server to an AdGuard Home instance.
The Primary DNS Server and Secondary DNS Server would have independent:
Both DNS servers would continue to share the same AdGuard Home instance and its existing DNS filtering functionality.
For example:
Primary DNS Server:
:8080 → Upstream A
Secondary DNS Server:
:8081 → Upstream B
The Secondary DNS Server would be disabled by default, so existing AdGuard Home behavior would remain unchanged unless the feature is explicitly enabled.
Alternatives considered and additional information
Running two separate AdGuard Home instances is one possible workaround, but this requires maintaining separate configurations and management interfaces.
Using upstream DNS rules or client-specific routing is another possible approach, but it requires maintaining additional DNS routing rules and does not provide two independent DNS service endpoints.
The proposed Secondary DNS Server provides a simple separation at the DNS listener level: external systems can decide which DNS service to use by selecting the corresponding listener.
I have already implemented a working version of this feature, including both backend and frontend changes. The backend implementation currently modifies 7 Go files, with the remaining changes primarily related to frontend integration.
I would like to confirm whether this feature and architecture would be considered suitable for inclusion in AdGuard Home before submitting a full pull request.
Related to #7826.