Tilbake til blogg
August 19, 2026Guider

Slik setter du opp AdGuard Home på en VPS

Installer AdGuard Home på Ubuntu, fullfør førstegangveiviseren, lås webgrensesnittet, aktiver DNS-over-HTTPS og DNS-over-TLS, pek enheter mot din resolver, og unngå å kjøre en åpen DNS-server som hele internett kan misbruke.

Slik setter du opp AdGuard Home på en VPS

AdGuard Home er en selvhostet DNS-sinkhole og rekursiv-stil resolver med et webgrensesnitt. Den kan blokkere reklame, sporere og skadelige domener for hver enhet som bruker den som DNS — telefoner, laptoper, smart-TV-er og andre VPS-prosjekter. I motsetning til et nettlesertillegg fungerer den også for apper som ignorerer hosts-filer. Å kjøre den på en VPS er nyttig når du vil ha samme filtrering på farten, eller når du ikke vil ha en Raspberry Pi på hjemmenettet.

Den farlige standarden du ikke må sende ut er en åpen resolver: hvis UDP/TCP 53 er tilgjengelig fra hele internett uten tilgangskontroll, vil fremmede bruke VPS-en din til DNS-forsterkning og du får misbruksklager. Denne veilederen installerer AdGuard Home på Ubuntu, binder DNS til localhost eller et privat WireGuard-grensesnitt med mindre du bevisst eksponerer kryptert DNS, legger dashbordet bak HTTPS, og viser hvordan laptoper og telefoner kan bruke DNS-over-HTTPS (DoH) eller DNS-over-TLS (DoT) uten å åpne klassisk port 53 mot verden.

Hva AdGuard Home er godt for

Pi-hole er den vanlige sammenligningen. AdGuard Home er én binær med innebygd webgrensesnitt, valgfrie krypterte DNS-fronter og innstillinger per klient. Du kan kjøre den i Docker eller som en systemd-tjeneste. På en Hiddence-VPS passer den godt med et privat VPN: enheter kobler til WireGuard, sender DNS til VPS-en over tunnelen, og eksponerer aldri port 53 offentlig.

  • Nettverksomfattende blokkering uten å installere en app på hver enhet
  • DoH (443) og DoT (853) slik at DNS ikke er klartekst på offentlig Wi-Fi
  • Forespørselslogg og statistikk slik at du ser hvilken enhet som snakker med hvilket domene
  • Egne upstreams (Quad9, Cloudflare eller din egen Unbound)
  • Lite fotavtrykk — en 1 GB-VPS kan filtrere en husstand pluss noen ekstra klienter

Krav

Du trenger et domene hvis du vil ha et betrodd sertifikat for DoH/DoT og for dashbordet. Du kan teste på HTTP og server-IP først, men ikke la det stå slik. Hvis systemd-resolved allerede eier port 53 på Ubuntu, frigjør vi den før AdGuard Home binder DNS.

  • Ubuntu 22.04- eller 24.04-VPS med root/sudo
  • 1 GB RAM er nok til personlig bruk
  • Et domene eller underdomene (dns.example.com) med en A-post til VPS-en
  • SSH-tilgang; valgfritt WireGuard hvis du vil ha DNS bare inne i en tunnel

Steg 1: Frigjør port 53 og installer AdGuard Home

Ubuntu Server kjører ofte systemd-resolved som en stub på 127.0.0.53:53. AdGuard Home vil ha 53 på grensesnittene du velger. Installeren kan gjøre dette, men å gjøre det eksplisitt unngår en halvødelagt DNS på selve VPS-en (serveren må fortsatt kunne slå opp pakker).

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

Steg 2: Førstegangveiviseren

Installeren skriver ut en URL, vanligvis http://YOUR_IP:3000/. Åpne den, opprett en administratorbruker med et langt passord, og velg lytteadresser. For en offentlig VPS er et trygt førsteoppsett: Admin Web på 127.0.0.1:3000 (du setter Caddy foran) eller på 80/443 etter TLS; DNS-lytting på 127.0.0.1:53 pluss et VPN-grensesnitt, ikke på 0.0.0.0:53. Hvis du virkelig trenger LAN-lignende DNS for venner, foretrekk DoH/DoT på 443/853 med autentisering, ikke åpen 53/udp.

Velg upstream-DNS-servere du stoler på. Mange bruker https://dns.quad9.net/dns-query eller Cloudflare. Aktiver parallelle forespørsler hvis du vil ha raskere failover. Slå på standardfilterlistene, og legg til flere senere — å aktivere femti lister dag én gjør feilsøking umulig når et nettsted knekker.

Hvis du ikke kan åpne port 3000 fra laptopen, bruk en SSH-tunnel: ssh -L 3000:127.0.0.1:3000 root@YOUR_VPS_IP og åpne http://127.0.0.1:3000/

Steg 3: Reversproxy og HTTPS for dashbordet

Når veiviseren er ferdig, flytter AdGuard Home vanligvis grensesnittet til port 80. Det kolliderer med Caddy eller Nginx hvis du også hoster nettsteder. Et rent mønster er: AdGuard Home-web på 127.0.0.1:8080, DNS på 127.0.0.1:53, Caddy på 443 for både dashbordet og 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

Steg 4: Aktiver DNS-over-HTTPS og DNS-over-TLS

I Encryption-innstillingene, aktiver kryptering, sett servernavnet til dns.example.com, og pek AdGuard Home mot sertifikatfilene dine — enten de Caddy lagrer, eller sertifikater AdGuard Home henter selv hvis den lytter på 443. DoH er vanligvis https://dns.example.com/dns-query. DoT er dns.example.com:853. Hvis Caddy allerede eier 443, la Caddy avslutte TLS og reversprox DoH-stien til AdGuard Homes vanlige HTTP DoH-port, eller la AdGuard Home lytte på 443 og legg dashbordet på et annet underdomene.

Verifiser med en klient før du bytter hver enhet. På en laptop med en 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

Steg 5: Pek ekte enheter mot din resolver

Windows 11 og nyere Android-bygninger kan bruke en DoH-mal. iOS kan bruke en konfigurasjonsprofil eller en klient som støtter DoH. Firefox og Chromium tillater også en egendefinert DoH-URL. For en hjemmeruter, sett WAN DNS bare hvis ruteren støtter DoT/DoH; kjør ellers WireGuard og sett DNS til VPS-ens VPN-IP slik at klassisk DNS aldri krysser internett.

  • Android 9+: Private DNS (DoT) → dns.example.com
  • Firefox: Innstillinger → Nettverk → DNS over HTTPS → egendefinert URL https://dns.example.com/dns-query
  • Apple-enheter: en signert mobileconfig eller en app som støtter DoH/DoT
  • Andre VPS: sett resolv.conf eller systemd-resolved til WireGuard-IP-en for denne AdGuard-instansen
  • Unngå å sette denne VPS-IP-en som DNS på tilfeldige offentlige nett uten kryptering

Steg 6: Brannmur — steng åpen rekursiv DNS

Dette er avsnittet som forhindrer en stygg overraskelse. Tillat SSH, HTTPS og valgfritt 853/tcp for DoT. Ikke tillat 53/udp fra 0.0.0.0/0 med mindre du har et svært spesifikt, hastighetsbegrenset, autentisert design — og selv da bør du sannsynligvis ikke.

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'

Filtre, tillatelseslister og klienter

Start med AdGuards standard-DNS-filter og én skadevareliste. Når et nettsted oppfører seg rart, sjekk forespørselsloggen, og legg deretter til en spesifikk tillatelsesregel i stedet for å slå av all blokkering. Bruk klientnavn (etter IP eller etter ClientID i DoH-URL-en) slik at du kan bruke strengere lister på en smart-TV og løsere lister på en jobb-laptop. Aktiver trygt søk bare hvis du faktisk vil ha det — det overrasker folk som ikke ba om omskrevne Google-resultater.

  • Forespørselslogg: finn det blokkerte domenet, hvitelist deretter hvis det er en falsk positiv
  • Klientinnstillinger: ulike blokkeringslister per enhet
  • Ikke-tillatte klienter: blokker områder du ikke eier
  • Hastighetsbegrensning: slå på hvis du noensinne eksponerer mer enn en håndfull brukere

Feilsøking

Hvis VPS-en selv ikke kan kjøre apt update, har du ødelagt lokal DNS mens du frigjorde port 53 — legg en statisk resolver i resolved.conf som vist over. Hvis enheter 'har internett' men reklame fortsatt lastes, omgår de DNS-en din (hardkodede resolvere, DoH i nettleseren, eller en app som bruker sin egen DNS). Hvis dashbordet er tomt, ser du på feil instans eller treffer fortsatt port 3000 etter at veiviseren flyttet grensesnittet.

  • apt feiler: sjekk /etc/resolv.conf og systemd-resolved
  • Port 53 i bruk: ss -tulpn, deaktiver stub-lytter
  • DoH-sertifikatfeil: vertsnavnet må matche sertifikatets SAN
  • Reklame synlig fortsatt: nettleserens DoH til en annen leverandør overstyrer OS-et
  • Høy RAM: forespørselslogg + for mange filterlister — trim lister og kort logglagring

Sikkerhetssjekkliste

Webgrensesnittet er et adminpanel. Unikt passord, kun HTTPS, og ikke publiser URL-en. Hold AdGuard Home oppdatert; både installasjonsskriptet og grensesnittet viser en oppdateringssti. Begrens 443 hvis bare enhetene dine skal bruke DoH — HTTP basic auth på DoH-stien eller kun WireGuard-tilgang er mye tryggere enn en kjent åpen resolver.

  • Ingen offentlig 53/udp
  • HTTPS på dashbordet
  • Sterkt administratorpassord, lagret i en passordbehandler
  • Foretrekk WireGuard + intern DNS for familieenheter
  • Sikkerhetskopier AdGuardHome.yaml fra serveren

Tips

  • Sikkerhetskopier /opt/AdGuardHome/AdGuardHome.yaml før hver oppgradering
  • Bruk et dedikert underdomene; ikke del det med et urelatert CMS
  • Hvis du allerede kjører Caddy, la Caddy eie 443 og hold AdGuard Home på localhost
  • Dokumenter DoH-URL-en for enhetene dine — du kommer til å glemme den
  • Kombiner med SSH-herdings- og brannmurveilederne slik at VPS-en ikke bare er 'DNS-sikker'

AdGuard Home på en VPS er greit: frigjør port 53 lokalt, kjør installeren, fullfør veiviseren med et sterkt administratorpassord, legg grensesnittet bak HTTPS, aktiver DoH/DoT, og hold klassisk DNS unna det offentlige internett. Pek enheter mot endepunktet ditt med kryptering eller mot en VPN-IP, start med et lite sett filtre, og bruk forespørselsloggen når noe knekker. Det er en privat resolver du faktisk kontrollerer — ikke en offentlig åpen DNS som får VPS-en din listet i misbruksdatabaser.