Terug na blog
Augustus 19, 2026Gidse

Hoe om AdGuard Home op 'n VPS op te stel

Installeer AdGuard Home op Ubuntu, voltooi die eerste-loop-assistent, sluit die web-UI, aktiveer DNS-over-HTTPS en DNS-over-TLS, wys toestelle na jou resolver, en vermy om 'n oop DNS-bediener te laat loop wat die hele internet kan misbruik.

Hoe om AdGuard Home op 'n VPS op te stel

AdGuard Home is 'n selfgehoste DNS-sinkhole en rekursiewe-styl resolver met 'n webkoppelvlak. Dit kan advertensies, naspoorders en wanware-domeine blokkeer vir elke toestel wat dit as DNS gebruik — fone, skootrekenaars, slim-TV's, en ander VPS-projekte. Anders as 'n blaaieruitbreiding, werk dit selfs vir programme wat hosts-lêers ignoreer. Om dit op 'n VPS te laat loop is nuttig wanneer jy dieselfde filtering op die pad wil hê, of wanneer jy nie 'n Raspberry Pi op jou tuisnetwerk wil hê nie.

Die gevaarlike verstek wat jy nie moet verskeep nie is 'n oop resolver: as UDP/TCP 53 vanaf die hele internet bereikbaar is sonder toegangsbeheer, sal vreemdelinge jou VPS vir DNS-amplifikasie gebruik en jy sal misbruikklagtes kry. Hierdie gids installeer AdGuard Home op Ubuntu, bind DNS aan localhost of 'n private WireGuard-koppelvlak tensy jy doelbewus geënkripteerde DNS blootstel, sit die dashboard op HTTPS, en wys hoe skootrekenaars en fone DNS-over-HTTPS (DoH) of DNS-over-TLS (DoT) kan gebruik sonder om klassieke poort 53 vir die wêreld oop te maak.

Waarvoor AdGuard Home goed is

Pi-hole is die gewone vergelyking. AdGuard Home is 'n enkele binêre met 'n ingeboude web-UI, opsionele geënkripteerde DNS-frontends, en per-kliënt-instellings. Jy kan dit in Docker of as 'n systemd-diens laat loop. Op 'n Hiddence-VPS pas dit goed by 'n private VPN: toestelle sluit by WireGuard aan, stuur DNS na die VPS oor die tonnel, en stel nooit poort 53 publiek bloot nie.

  • Netwerkwye blokkering sonder om 'n program op elke toestel te installeer
  • DoH (443) en DoT (853) sodat DNS nie gewone teks op publieke Wi-Fi is nie
  • Navraaglog en statistieke sodat jy kan sien watter toestel met watter domein praat
  • Pasgemaakte upstreams (Quad9, Cloudflare, of jou eie Unbound)
  • Klein voetspoor — 'n 1 GB-VPS kan 'n huishouding plus 'n paar ekstra kliënte filter

Vereistes

Jy het 'n domein nodig as jy 'n vertroude sertifikaat vir DoH/DoT en vir die dashboard wil hê. Jy kan eers op HTTP en die bediener-IP toets, maar moenie dit so laat nie. As systemd-resolved al poort 53 op Ubuntu besit, sal ons dit vrymaak voordat AdGuard Home DNS bind.

  • Ubuntu 22.04- of 24.04-VPS met root/sudo
  • 1 GB RAM is genoeg vir persoonlike gebruik
  • 'n Domein of subdomein (dns.example.com) met 'n A-rekord na die VPS
  • SSH-toegang; opsionele WireGuard as jy DNS slegs binne 'n tonnel wil hê

Stap 1: Maak poort 53 vry en installeer AdGuard Home

Ubuntu Server laat dikwels systemd-resolved as 'n stub op 127.0.0.53:53 loop. AdGuard Home wil 53 hê op die koppelvlakke wat jy kies. Die installeerder kan dit doen, maar om dit uitdruklik te doen vermy halfgebroke DNS op die VPS self (die bediener moet steeds pakkette kan resolve).

bash
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 -- -v

Stap 2: Eerste-loop-assistent

Die installeerder druk 'n URL, gewoonlik http://YOUR_IP:3000/. Maak dit oop, skep 'n admin-gebruiker met 'n lang wagwoord, en kies luisteradresse. Vir 'n publieke VPS is 'n veilige eerste opstelling: Admin Web op 127.0.0.1:3000 (jy sit Caddy voor) of op 80/443 na TLS; DNS-luister op 127.0.0.1:53 plus 'n VPN-koppelvlak, nie op 0.0.0.0:53 nie. As jy werklik LAN-styl DNS vir vriende nodig het, verkies DoH/DoT op 443/853 met verifikasie, nie oop 53/udp nie.

Kies upstream-DNS-bedieners wat jy vertrou. Baie mense gebruik https://dns.quad9.net/dns-query of Cloudflare. Aktiveer parallelle navrae as jy vinniger oorname wil hê. Skakel die verstekfilterlyste aan, en voeg later meer by — vyftig lyste op dag een maak foutopsporing onmoontlik wanneer 'n werf breek.

As jy poort 3000 nie vanaf jou skootrekenaar kan oopmaak nie, gebruik 'n SSH-tonnel: ssh -L 3000:127.0.0.1:3000 root@YOUR_VPS_IP en blaai http://127.0.0.1:3000/

Stap 3: Reverse proxy en HTTPS vir die dashboard

Sodra die assistent klaar is, skuif AdGuard Home die UI tipies na poort 80. Dit bots met Caddy of Nginx as jy ook werwe host. 'n Skoon patroon is: AdGuard Home-web op 127.0.0.1:8080, DNS op 127.0.0.1:53, Caddy op 443 vir beide die dashboard en DoH.

bash
# 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.com

Stap 4: Aktiveer DNS-over-HTTPS en DNS-over-TLS

In Enkripsie-instellings, aktiveer enkripsie, stel die bedienernaam na dns.example.com, en wys AdGuard Home na jou sertifikaatlêers — òf dié wat Caddy stoor, òf sertifikate wat AdGuard Home self verkry as dit op 443 luister. DoH is gewoonlik https://dns.example.com/dns-query. DoT is dns.example.com:853. As Caddy al 443 besit, laat Caddy TLS beëindig en reverse-proxy die DoH-pad na AdGuard Home se gewone HTTP DoH-poort, of laat AdGuard Home op 443 luister en sit die dashboard op 'n ander subdomein.

Verifieer met 'n kliënt voordat jy elke toestel verander. Op 'n skootrekenaar met 'n moderne curl:

bash
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.com

Stap 5: Wys regte toestelle na jou resolver

Windows 11 en onlangse Android-boue kan 'n DoH-sjabloon gebruik. iOS kan 'n konfigurasieprofiel of 'n kliënt wat DoH ondersteun gebruik. Firefox en Chromium laat ook 'n pasgemaakte DoH-URL toe. Vir 'n tuisroeteerder, stel WAN-DNS slegs as die roeteerder DoT/DoH ondersteun; anders laat WireGuard loop en stel DNS na die VPS VPN-IP sodat klassieke DNS nooit die internet kruis nie.

  • Android 9+: Private DNS (DoT) → dns.example.com
  • Firefox: Instellings → Netwerk → DNS oor HTTPS → pasgemaakte URL https://dns.example.com/dns-query
  • Apple-toestelle: 'n getekende mobileconfig of 'n program wat DoH/DoT ondersteun
  • Ander VPS: stel resolv.conf of systemd-resolved na die WireGuard-IP van hierdie AdGuard-instansie
  • Vermy om hierdie VPS-IP as DNS op ewekansige publieke netwerke sonder enkripsie te stel

Stap 6: Firewall — sluit oop rekursiewe DNS

Hierdie is die afdeling wat 'n nare verrassing voorkom. Laat SSH, HTTPS, en opsioneel 853/tcp vir DoT toe. Moenie 53/udp vanaf 0.0.0.0/0 toelaat nie tensy jy 'n baie spesifieke, tempo-beperkte, geverifieerde ontwerp het — en selfs dan, behoort jy waarskynlik nie.

bash
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'

Filters, toelatingslyste en kliënte

Begin met AdGuard se verstek-DNS-filter en een wanware-lys. Wanneer 'n werf verkeerd gedra, kyk die navraaglog, en voeg dan 'n spesifieke toelatingslysreël by eerder as om alle blokkering te deaktiveer. Gebruik kliëntname (volgens IP of volgens ClientID in die DoH-URL) sodat jy strenger lyste op 'n slim-TV en losser lyste op 'n werkskootrekenaar kan toepas. Aktiveer veilige soektog slegs as jy dit werklik wil hê — dit verras mense wat nie om herskrewe Google-resultate gevra het nie.

  • Navraaglog: vind die geblokkeerde domein, en witlys dit as dit 'n vals positief is
  • Kliëntinstellings: verskillende bloklyste per toestel
  • Nie-toegelate kliënte: blokkeer reekse wat jy nie besit nie
  • Tempolimit: skakel aan as jy ooit meer as 'n handjievol gebruikers blootstel

Foutopsporing

As die VPS self nie apt update kan doen nie, het jy plaaslike DNS gebreek terwyl jy poort 53 vrygemaak het — sit 'n statiese resolver in resolved.conf soos hierbo gewys. As toestelle 'internet het' maar advertensies steeds laai, omseil hulle jou DNS (hardgekodeerde resolvers, DoH in die blaaier, of 'n program wat sy eie DNS gebruik). As die dashboard leeg is, kyk jy na die verkeerde instansie of tref jy steeds poort 3000 nadat die assistent die UI geskuif het.

  • apt misluk: kyk /etc/resolv.conf en systemd-resolved
  • Poort 53 in gebruik: ss -tulpn, deaktiveer stub-luisteraar
  • DoH-sertifikaatfoute: gasheernaam moet by die sertifikaat-SAN pas
  • Advertensies steeds sigbaar: blaaier-DoH na 'n ander verskaffer oorskryf die bedryfstelsel
  • Hoë RAM: navraaglog + te veel filterlyste — snoei lyste en verkort logretensie

Sekuriteitskontrolelys

Die web-UI is 'n adminpaneel. Unieke wagwoord, slegs HTTPS, en moenie die URL publiseer nie. Hou AdGuard Home opgedateer; die installasieskrip en die UI bied albei 'n opdateringspad. Beperk 443 as slegs jou toestelle DoH moet gebruik — HTTP basic auth op die DoH-pad of slegs-WireGuard-toegang is baie veiliger as 'n beroemde oop resolver.

  • Geen publieke 53/udp nie
  • HTTPS op die dashboard
  • Sterk admin-wagwoord, gestoor in 'n wagwoordbestuurder
  • Verkies WireGuard + interne DNS vir familietoestelle
  • Rugsteun AdGuardHome.yaml van die bediener af

Wenke

  • Rugsteun /opt/AdGuardHome/AdGuardHome.yaml voor elke opgradering
  • Gebruik 'n toegewyde subdomein; moenie dit met 'n onverwante CMS deel nie
  • As jy al Caddy laat loop, laat Caddy 443 besit en hou AdGuard Home op localhost
  • Dokumenteer die DoH-URL vir jou toestelle — jy sal dit vergeet
  • Koppel dit met die SSH-verharding- en firewall-gidse sodat die VPS nie net 'DNS-veilig' is nie

AdGuard Home op 'n VPS is eenvoudig: maak poort 53 plaaslik vry, laat die installeerder loop, voltooi die assistent met 'n sterk admin-wagwoord, sit die UI op HTTPS, aktiveer DoH/DoT, en hou klassieke DNS van die publieke internet af. Wys toestelle na jou geënkripteerde eindpunt of na 'n VPN-IP, begin met 'n klein stel filters, en gebruik die navraaglog wanneer iets breek. Dit is 'n private resolver wat jy werklik beheer — nie 'n publieke oop DNS wat jou VPS in misbruikdatabasisse sal lys nie.