<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/adguard-home-and-unbound-gave-me-the-dns-independence-i-didn-t-know-i-needed-dqhaje9tj" -->

---
title: AdGuard Home and Unbound gave me the DNS independence I...
description: A personal account of evolving a home DNS setup from Pi-hole to AdGuard Home (AGH) with Quad9 DoH, then experimenting with Technitium for recursive resolution,...
canonical: https://daily.dev/posts/adguard-home-and-unbound-gave-me-the-dns-independence-i-didn-t-know-i-needed-dqhaje9tj
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: AdGuard Home and Unbound gave me the DNS independence I didn't know I needed | daily.dev
og:description: A personal account of evolving a home DNS setup from Pi-hole to AdGuard Home (AGH) with Quad9 DoH, then experimenting with Technitium for recursive resolution,...
og:url: https://daily.dev/posts/adguard-home-and-unbound-gave-me-the-dns-independence-i-didn-t-know-i-needed-dqhaje9tj
og:image: https://api.daily.dev/og/posts/DqHAJE9Tj.png
og:image:alt: AdGuard Home and Unbound gave me the DNS independence I didn't know I needed
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# AdGuard Home and Unbound gave me the DNS independence I didn't know I needed

**[XDA Developers](https://daily.dev/sources/xda-developers)** · 5 min read · 1 upvotes · 0 comments

## Summary

A personal account of evolving a home DNS setup from Pi-hole to AdGuard Home (AGH) with Quad9 DoH, then experimenting with Technitium for recursive resolution, and finally pairing AGH with Unbound to achieve full DNS independence. The author walks through the technical hurdles encountered — including UFW firewall rules blocking Docker subnet traffic on port 5335 — and honestly reports that Unbound's latency (196ms after a week of cache warm-up) never matched Quad9's 177ms. The conclusion is a conscious trade-off: slightly worse performance in exchange for a fully self-contained resolver chain that doesn't depend on Cloudflare, Quad9, or Google.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.xda-developers.com/adguard-home-unbound-gave-dns-independence-didnt-know-needed>

## Questions this post answers

### Why is AdGuard Home unable to reach Unbound running on port 5335 in Docker even though standalone Unbound works fine?

The traffic was silently timing out because the UFW firewall only had port 53 explicitly allowed, so nothing else could get through, including the connection from the AGH container to the Docker bridge gateway. The fix was adding a scoped firewall rule for the Docker subnet instead of leaving the rule open to 'Anywhere', which restored the connection between AGH and Unbound on port 5335.

_Anyone debugging Docker networking quirks around DNS containers can find similar fixes surfacing on daily.dev._

### How much slower is a self-hosted Unbound resolver compared to Quad9 DNS?

After a full week of cache warmup, Unbound's upstream response time settled at 196ms, still behind Quad9's original 177ms response time, and Quad9's processing time of 60ms beat Unbound's roughly 135-147ms processing time. The latency penalty was consistent even after switching entirely off Quad9 and letting Unbound's cache build up over time.

_Weighing DNS latency against control helps self-hosters on daily.dev decide if Unbound is worth the trade-off._

## Similar posts on daily.dev

- [I ditched Pi-hole for AdGuard \+ Unbound on my OPNsense router, and my network runs cleaner than ever](https://daily.dev/posts/i-ditched-pi-hole-for-adguard-unbound-on-my-opnsense-router-and-my-network-runs-cleaner-than-ever-c5ln79ec3) · XDA Developers · 0 upvotes · 0 comments
- [My DNS stack kept growing until I found the tool that finally made it stop](https://daily.dev/posts/my-dns-stack-kept-growing-until-i-found-the-tool-that-finally-made-it-stop-tjuujee18) · XDA Developers · 1 upvotes · 0 comments
- [I replaced Pi-hole with Unbound for a week, and the privacy upgrade wasn't the only win](https://daily.dev/posts/i-replaced-pi-hole-with-unbound-for-a-week-and-the-privacy-upgrade-wasn-t-the-only-win-b7wdkpftp) · XDA Developers · 0 upvotes · 0 comments
- [How I Fixed the Biggest Annoyance of My Homelab](https://daily.dev/posts/how-i-fixed-the-biggest-annoyance-of-my-homelab-kmgwv3nk2) · It's Foss · 1 upvotes · 1 comments

---

Tags: [#self-hosting](https://daily.dev/tags/self-hosting), [#dns](https://daily.dev/tags/dns)

[View this post on daily.dev](https://daily.dev/posts/adguard-home-and-unbound-gave-me-the-dns-independence-i-didn-t-know-i-needed-dqhaje9tj)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"AdGuard Home and Unbound gave me the DNS independence I didn't know I needed","url":"https://daily.dev/posts/adguard-home-and-unbound-gave-me-the-dns-independence-i-didn-t-know-i-needed-dqhaje9tj","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/adguard-home-and-unbound-gave-me-the-dns-independence-i-didn-t-know-i-needed-dqhaje9tj"},"datePublished":"2026-07-14T17:34:31.041Z","dateModified":"2026-09-14T07:49:08.258Z","description":"A personal account of evolving a home DNS setup from Pi-hole to AdGuard Home (AGH) with Quad9 DoH, then experimenting with Technitium for recursive resolution,...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/abf81aa3de9fcd7a564279b48cc564f1?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/abf81aa3de9fcd7a564279b48cc564f1?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"XDA Developers","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"XDA Developers","logo":"https://media.daily.dev/image/upload/s--kCg6yyAP--/f_auto,q_auto/v1774964407/logos/xda-developers?_a=BAMAMiWQ0","url":"https://daily.dev/sources/xda-developers"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/adguard-home-and-unbound-gave-me-the-dns-independence-i-didn-t-know-i-needed-dqhaje9tj","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"self-hosting,dns","timeRequired":"PT5M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"XDA Developers","item":"https://daily.dev/sources/xda-developers"},{"@type":"ListItem","position":3,"name":"AdGuard Home and Unbound gave me the DNS independence I didn't know I needed"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/adguard-home-and-unbound-gave-me-the-dns-independence-i-didn-t-know-i-needed-dqhaje9tj#faq","mainEntity":[{"@type":"Question","name":"Why is AdGuard Home unable to reach Unbound running on port 5335 in Docker even though standalone Unbound works fine?","acceptedAnswer":{"@type":"Answer","text":"The traffic was silently timing out because the UFW firewall only had port 53 explicitly allowed, so nothing else could get through, including the connection from the AGH container to the Docker bridge gateway. The fix was adding a scoped firewall rule for the Docker subnet instead of leaving the rule open to 'Anywhere', which restored the connection between AGH and Unbound on port 5335. Anyone debugging Docker networking quirks around DNS containers can find similar fixes surfacing on daily.dev."}},{"@type":"Question","name":"How much slower is a self-hosted Unbound resolver compared to Quad9 DNS?","acceptedAnswer":{"@type":"Answer","text":"After a full week of cache warmup, Unbound's upstream response time settled at 196ms, still behind Quad9's original 177ms response time, and Quad9's processing time of 60ms beat Unbound's roughly 135-147ms processing time. The latency penalty was consistent even after switching entirely off Quad9 and letting Unbound's cache build up over time. Weighing DNS latency against control helps self-hosters on daily.dev decide if Unbound is worth the trade-off."}}]}
```

