LinuxCommandLibrary

adguardhome

Run AdGuard Home DNS server

TLDR

Run AdGuard Home

$ AdGuardHome
copy

Specify a configuration file
$ AdGuardHome --config [path/to/AdGuardHome.yaml]
copy

Store the data in a specific work directory
$ AdGuardHome --work-dir [path/to/directory]
copy

Install or uninstall AdGuard Home as a service
$ AdGuardHome --service [install|uninstall]
copy

Start the AdGuard Home service
$ AdGuardHome --service start
copy

Reload the configuration for the AdGuard Home service
$ AdGuardHome --service reload
copy

Stop or restart the AdGuard Home service
$ AdGuardHome --service [stop|restart]
copy

SYNOPSIS

AdGuardHome [global-flags] <run|migrate> [command-flags]

PARAMETERS

-h, --help
    Show context-sensitive help

-c, --config <path>
    Path to YAML config file (default: AdGuardHome.yaml)

-s, --service
    Run as daemon/service (background mode)

--pidfile <path>
    PID file location (default: /var/run/AdGuardHome.pid)

--no-check-updates
    Skip automatic update checks on startup

-v, --version
    Display AdGuardHome version

DESCRIPTION

AdGuardHome is an open-source, network-level DNS resolver that blocks ads, trackers, malware, and phishing domains across all connected devices. Deployed on Linux via the AdGuardHome binary, it serves as a drop-in replacement for traditional DNS services.

Launch it with AdGuardHome -s run to daemonize and auto-generate AdGuardHome.yaml if missing. Configure via YAML file or intuitive web UI at http://<IP>:3000 (default credentials: admin/admin).

Features include DoH/DoT support, parental controls, query logging, statistics dashboard, custom rules, and DHCP integration. It's lightweight (<50MB RAM), supports millions of queries daily, and integrates with popular filter lists like OISD or StevenBlack. Ideal for routers, Raspberry Pi, or servers. CLI flags override select config options, but most tuning happens in UI/config.

CAVEATS

Requires root/capabilities for UDP/TCP port 53; conflicts with systemd-resolved, dnsmasq, or bind9—disable them first. Config binds to 0.0.0.0:53 by default; adjust firewall. Not for high-load production without tuning.

WEB UI

Access at http://IP:3000 post-startup for setup, stats, filters, and logs. Changes sync to YAML.

CONFIG STRUCTURE

YAML keys: dns (listen/upstreams), filters (blocklists), querylog, statistics. See AdGuardHome.yaml comments.

HISTORY

Launched in 2020 by AdGuard team as fully open-source (GPL-3.0). Evolved from internal tools; v0.107+ added subcommands/CLI polish. Active development with 20k+ GitHub stars; used in millions of home setups.

SEE ALSO

unbound(8), dnsmasq(8), systemd-resolve(8)

Copied to clipboard