Com configurar AdGuard Home en un VPS
Instal·leu AdGuard Home a l'Ubuntu, completeu l'assistent del primer arrencada, protegiu la interfície web, activeu DNS-over-HTTPS i DNS-over-TLS, apunteu els dispositius al vostre resolver i eviteu executar un servidor DNS obert que tota internet pugui abusar.

AdGuard Home és un sinkhole DNS autoallotjat i un resolver d'estil recursiu amb una interfície web. Pot bloquejar anuncis, rastrejadors i dominis de programari maliciós per a cada dispositiu que l'utilitzi com a DNS — telèfons, portàtils, televisors intel·ligents i altres projectes VPS. A diferència d'una extensió del navegador, funciona fins i tot per a aplicacions que ignoren els fitxers hosts. Executar-lo en un VPS és útil quan voleu el mateix filtratge de viatge, o quan no voleu un Raspberry Pi a la xarxa de casa.
El valor per defecte perillós que no heu d'enviar és un resolver obert: si UDP/TCP 53 és accessible des de tota internet sense control d'accés, desconeguts faran servir el vostre VPS per a amplificació DNS i rebreu queixes d'abús. Aquesta guia instal·la AdGuard Home a l'Ubuntu, enllaça el DNS a localhost o a una interfície WireGuard privada tret que exposeu deliberadament DNS xifrat, posa el tauler a HTTPS i mostra com els portàtils i els telèfons poden fer servir DNS-over-HTTPS (DoH) o DNS-over-TLS (DoT) sense obrir el port clàssic 53 al món.
Per a què serveix AdGuard Home
Pi-hole és la comparació habitual. AdGuard Home és un binari únic amb una interfície web integrada, frontends DNS xifrats opcionals i paràmetres per client. El podeu executar a Docker o com a servei systemd. En un VPS Hiddence combina bé amb una VPN privada: els dispositius s'uneixen a WireGuard, envien DNS al VPS pel túnel i mai no exposen el port 53 públicament.
- Bloqueig a tota la xarxa sense instal·lar una aplicació a cada dispositiu
- DoH (443) i DoT (853) perquè el DNS no sigui text pla a la Wi-Fi pública
- Registre de consultes i estadístiques per veure quin dispositiu parla amb quin domini
- Upstreams personalitzats (Quad9, Cloudflare o el vostre propi Unbound)
- Petita empremta — un VPS d'1 GB pot filtrar una llar més uns quants clients extra
Requisits
Necessiteu un domini si voleu un certificat de confiança per a DoH/DoT i per al tauler. Podeu provar primer a HTTP i a la IP del servidor, però no ho deixeu així. Si systemd-resolved ja té el port 53 a l'Ubuntu, l'alliberarem abans que AdGuard Home enllaci el DNS.
- VPS Ubuntu 22.04 o 24.04 amb root/sudo
- 1 GB de RAM n'hi ha prou per a ús personal
- Un domini o subdomini (dns.example.com) amb un registre A cap al VPS
- Accés SSH; WireGuard opcional si voleu DNS només dins d'un túnel
Pas 1: Allibereu el port 53 i instal·leu AdGuard Home
Ubuntu Server sovint executa systemd-resolved com a stub a 127.0.0.53:53. AdGuard Home vol el 53 a les interfícies que trieu. L'instal·lador ho pot fer, però fer-ho explícitament evita un DNS a mig trencar al mateix VPS (el servidor encara ha de poder resoldre paquets).
ssh root@YOUR_VPS_IP
apt update && apt -y upgrade
apt -y install curl ca-certificates
# See who owns port 53:
ss -tulpn | grep ':53'
# Typical Ubuntu fix: stop stub listener, point the OS at a temporary resolver
mkdir -p /etc/systemd/resolved.conf.d
cat >/etc/systemd/resolved.conf.d/adguardhome.conf <<'EOF'
[Resolve]
DNS=1.1.1.1
DNSStubListener=no
EOF
ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
systemctl restart systemd-resolved
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -vPas 2: Assistent del primer arrencada
L'instal·lador imprimeix un URL, normalment http://YOUR_IP:3000/. Obriu-lo, creeu un usuari administrador amb una contrasenya llarga i trieu les adreces d'escolta. Per a un VPS públic, una primera configuració segura és: Admin Web a 127.0.0.1:3000 (hi posareu Caddy al davant) o a 80/443 després de TLS; escolta DNS a 127.0.0.1:53 més una interfície VPN, no a 0.0.0.0:53. Si realment necessiteu DNS d'estil LAN per a amics, preferiu DoH/DoT a 443/853 amb autenticació, no 53/udp obert.
Trieu servidors DNS upstream en què confieu. Moltes persones fan servir https://dns.quad9.net/dns-query o Cloudflare. Activeu les sol·licituds en paral·lel si voleu una commutació per error més ràpida. Activeu les llistes de filtres per defecte i n'afegiu més després — habilitar cinquanta llistes el primer dia fa impossible depurar quan un lloc es trenca.
Pas 3: Servidor intermediari invers i HTTPS per al tauler
Un cop l'assistent acaba, AdGuard Home sol moure la interfície al port 80. Això xoca amb Caddy o Nginx si també allotgeu llocs. Un patró net és: web d'AdGuard Home a 127.0.0.1:8080, DNS a 127.0.0.1:53, Caddy al 443 tant per al tauler com per a DoH.
# In AdGuard Home settings, bind the web UI to 127.0.0.1:8080
# Example Caddyfile:
dns.example.com {
reverse_proxy 127.0.0.1:8080
}
# After Caddy is up:
curl -I https://dns.example.comPas 4: Activeu DNS-over-HTTPS i DNS-over-TLS
A la configuració de xifratge, activeu el xifratge, establiu el nom del servidor a dns.example.com i apunteu AdGuard Home als vostres fitxers de certificat — o bé els que desa Caddy, o certificats que AdGuard Home obté ell mateix si escolta al 443. DoH sol ser https://dns.example.com/dns-query. DoT és dns.example.com:853. Si Caddy ja té el 443, deixeu que Caddy termini TLS i faci reverse-proxy del camí DoH al port DoH HTTP pla d'AdGuard Home, o deixeu que AdGuard Home escolti al 443 i poseu el tauler en un altre subdomini.
Verifiqueu amb un client abans de canviar cada dispositiu. En un portàtil amb un curl modern:
curl -H 'accept: application/dns-json' 'https://dns.example.com/dns-query?name=example.com&type=A'
# DoT test (kdig from knot-dnsutils, if installed):
# kdig @dns.example.com +tls-ca +tls-host=dns.example.com example.comPas 5: Apunteu dispositius reals al vostre resolver
Windows 11 i les compilacions recents d'Android poden fer servir una plantilla DoH. iOS pot fer servir un perfil de configuració o un client que admeti DoH. Firefox i Chromium també permeten un URL DoH personalitzat. Per a un encaminador de casa, establiu el DNS WAN només si l'encaminador admet DoT/DoH; en cas contrari executeu WireGuard i establiu el DNS a la IP VPN del VPS perquè el DNS clàssic no creui mai internet.
- Android 9+: DNS privat (DoT) → dns.example.com
- Firefox: Configuració → Xarxa → DNS over HTTPS → URL personalitzat https://dns.example.com/dns-query
- Dispositius Apple: un mobileconfig signat o una aplicació que admeti DoH/DoT
- Altres VPS: configureu resolv.conf o systemd-resolved a la IP WireGuard d'aquesta instància d'AdGuard
- Eviteu establir aquesta IP del VPS com a DNS a xarxes públiques aleatòries sense xifratge
Pas 6: Tallafoc — tanqueu el DNS recursiu obert
Aquesta és la secció que evita una sorpresa desagradable. Permeteu SSH, HTTPS i opcionalment 853/tcp per a DoT. No permeteu 53/udp des de 0.0.0.0/0 tret que tingueu un disseny molt específic, amb límit de velocitat i autenticat — i fins i tot llavors, probablement no ho hauríeu de fer.
ufw allow OpenSSH
ufw allow 443/tcp comment 'dashboard + DoH'
ufw allow 853/tcp comment 'DoT'
# If DNS is only on WireGuard (example iface wg0, 10.8.0.1):
# ufw allow in on wg0 to any port 53 proto udp
ufw enable
ufw status verbose
# Confirm 53 is not public:
ss -tulpn | grep ':53'Filtres, llistes blanques i clients
Comenceu amb el filtre DNS per defecte d'AdGuard i una llista de programari maliciós. Quan un lloc es comporta malament, consulteu el registre de consultes i després afegiu una regla específica de llista blanca en lloc de desactivar tot el bloqueig. Utilitzeu noms de client (per IP o per ClientID a l'URL DoH) per poder aplicar llistes més estrictes a un televisor intel·ligent i llistes més laxes a un portàtil de feina. Activeu la cerca segura només si realment la voleu — sorprèn a qui no ha demanat resultats de Google reescrits.
- Registre de consultes: trobeu el domini bloquejat i poseu-lo a la llista blanca si és un fals positiu
- Paràmetres de client: llistes de bloqueig diferents per dispositiu
- Clients no permesos: bloquegueu intervals que no poseu
- Limitació de velocitat: activeu-la si mai exposeu més d'un grapat d'usuaris
Resolució de problemes
Si el mateix VPS no pot fer apt update, heu trencat el DNS local en alliberar el port 53 — poseu un resolver estàtic a resolved.conf com es mostra més amunt. Si els dispositius 'tenen internet' però els anuncis encara es carreguen, estan evitant el vostre DNS (resolvers incrustats, DoH al navegador o una aplicació que fa servir el seu propi DNS). Si el tauler és buit, esteu mirant la instància incorrecta o encara apunteu al port 3000 després que l'assistent hagi mogut la interfície.
- apt falla: comproveu /etc/resolv.conf i systemd-resolved
- Port 53 en ús: ss -tulpn, desactiveu l'oient stub
- Errors de certificat DoH: el nom d'amfitrió ha de coincidir amb el SAN del certificat
- Anuncis encara visibles: el DoH del navegador cap a un altre proveïdor substitueix el sistema operatiu
- RAM alta: registre de consultes + massa llistes de filtres — retalleu llistes i escurceu la retenció de registres
Llista de comprovació de seguretat
La interfície web és un panell d'administració. Contrasenya única, només HTTPS, i no publiqueu l'URL. Mantingueu AdGuard Home actualitzat; tant l'script d'instal·lació com la interfície exposen un camí d'actualització. Restringiu el 443 si només els vostres dispositius han de fer servir DoH — autenticació HTTP bàsica al camí DoH o accés només per WireGuard és molt més segur que un resolver obert famós.
- Sense 53/udp públic
- HTTPS al tauler
- Contrasenya d'administrador forta, desada en un gestor de contrasenyes
- Preferiu WireGuard + DNS intern per als dispositius familiars
- Feu còpia de AdGuardHome.yaml fora del servidor
Consells
- Feu còpia de /opt/AdGuardHome/AdGuardHome.yaml abans de cada actualització
- Utilitzeu un subdomini dedicat; no el compartiu amb un CMS no relacionat
- Si ja executeu Caddy, deixeu que Caddy tingui el 443 i mantingueu AdGuard Home a localhost
- Documenteu l'URL DoH per als vostres dispositius — l'oblidareu
- Combineu-ho amb les guies d'enduriment SSH i de tallafoc perquè el VPS no sigui només 'segur pel DNS'
AdGuard Home en un VPS és senzill: allibereu el port 53 localment, executeu l'instal·lador, acabeu l'assistent amb una contrasenya d'administrador forta, poseu la interfície a HTTPS, activeu DoH/DoT i manteniu el DNS clàssic fora d'internet pública. Apunteu els dispositius al vostre extrem xifrat o a una IP VPN, comenceu amb un conjunt petit de filtres i utilitzeu el registre de consultes quan alguna cosa es trenqui. Això és un resolver privat que realment controleu — no un DNS obert públic que farà llistar el vostre VPS a bases de dades d'abús.