ScriptsApr 15, 2026·3 min read

AdGuard Home — Self-Hosted Network DNS Filter with DoH/DoT

AdGuard Home is a single-binary Go DNS server that blocks ads and trackers network-wide with encrypted upstreams, parental controls, and a slick admin UI out of the box.

TL;DR
AdGuard Home blocks ads and trackers at the DNS level for every device on your network.
§01

What it is

AdGuard Home is a single-binary Go DNS server that blocks ads and trackers across your entire network. It supports encrypted DNS upstreams (DNS-over-HTTPS, DNS-over-TLS), parental controls, and ships with a web-based admin UI for configuration and statistics.

It is designed for home network administrators and privacy-conscious users who want ad blocking without installing browser extensions on every device. Any device that uses your network DNS gets protection automatically.

§02

How it saves time or tokens

Instead of configuring ad blockers per device and per browser, AdGuard Home provides a single deployment point. One DNS server protects phones, tablets, smart TVs, and IoT devices. The filter lists update automatically, and the dashboard shows query statistics without manual log parsing.

§03

How to use

  1. Download the AdGuard Home binary or use the official Docker image.
  2. Run the initial setup wizard at http://your-server:3000.
  3. Configure your router or devices to use the AdGuard Home IP as the DNS server.
  4. Add filter lists and configure upstream DNS providers.
# Install AdGuard Home via Docker
docker run -d --name adguardhome \
  -p 53:53/tcp -p 53:53/udp \
  -p 3000:3000/tcp \
  -v adguard-work:/opt/adguardhome/work \
  -v adguard-conf:/opt/adguardhome/conf \
  adguard/adguardhome
§04

Example

Once running, the admin panel at port 3000 shows a dashboard with total queries, blocked queries percentage, and top queried domains. You can add custom filtering rules using AdBlock-style syntax or hosts-file format.

# Example AdGuard Home upstream DNS config
upstream_dns:
  - https://dns.cloudflare.com/dns-query
  - tls://dns.google
§05

Related on TokRepo

§06

Common pitfalls

  • Running DNS on port 53 requires root or elevated privileges. Docker simplifies this.
  • Aggressive filter lists can break legitimate services. Start with default lists and add gradually.
  • If your router does not support custom DNS settings, configure individual devices instead.

Frequently Asked Questions

How does AdGuard Home differ from Pi-hole?+

Both are DNS-based ad blockers. AdGuard Home includes built-in DNS-over-HTTPS and DNS-over-TLS support, a more modern web UI, and parental controls. Pi-hole relies on dnsmasq and requires separate setup for encrypted DNS.

Can AdGuard Home block ads on mobile devices?+

Yes. Any device using your network DNS will have ads blocked at the DNS level. For mobile devices outside your network, you can configure AdGuard Home as a public DNS server with authentication or use a VPN back to your home network.

Does AdGuard Home support encrypted DNS?+

Yes. AdGuard Home supports DNS-over-HTTPS (DoH), DNS-over-TLS (DoT), DNS-over-QUIC (DoQ), and DNSCrypt for both upstream queries and client connections.

How much resources does AdGuard Home need?+

AdGuard Home is a single Go binary with minimal resource requirements. It runs comfortably on a Raspberry Pi or any low-power device with 128MB RAM and minimal CPU.

Can I use AdGuard Home alongside a VPN?+

Yes. You can configure your VPN server to push AdGuard Home as the DNS server for connected clients. This provides ad blocking for remote devices tunneling through your network.

Citations (3)

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets