Kembali ke blog
Agustus 19, 2026Panduan

Cara Menyiapkan AdGuard Home di VPS

Instal AdGuard Home di Ubuntu, selesaikan wizard pertama, kunci UI web, aktifkan DNS-over-HTTPS dan DNS-over-TLS, arahkan perangkat ke resolver Anda, dan hindari menjalankan server DNS terbuka yang bisa disalahgunakan seluruh internet.

Cara Menyiapkan AdGuard Home di VPS

AdGuard Home adalah sinkhole DNS yang di-host sendiri dan resolver bergaya rekursif dengan antarmuka web. Ia dapat memblokir iklan, pelacak, dan domain malware untuk setiap perangkat yang memakainya sebagai DNS — ponsel, laptop, TV pintar, dan proyek VPS lain. Tidak seperti ekstensi peramban, ia tetap bekerja untuk aplikasi yang mengabaikan berkas hosts. Menjalankannya di VPS berguna ketika Anda ingin penyaringan yang sama di perjalanan, atau tidak ingin Raspberry Pi di jaringan rumah.

Default berbahaya yang tidak boleh Anda kirim adalah resolver terbuka: jika UDP/TCP 53 dapat dijangkau dari seluruh internet tanpa kontrol akses, orang asing akan memakai VPS Anda untuk amplifikasi DNS dan Anda akan mendapat keluhan penyalahgunaan. Panduan ini menginstal AdGuard Home di Ubuntu, mengikat DNS ke localhost atau antarmuka WireGuard pribadi kecuali Anda sengaja mengekspos DNS terenkripsi, menempatkan dasbor di HTTPS, dan menunjukkan bagaimana laptop serta ponsel dapat memakai DNS-over-HTTPS (DoH) atau DNS-over-TLS (DoT) tanpa membuka port 53 klasik ke dunia.

Untuk apa AdGuard Home bagus

Perbandingan biasa adalah Pi-hole. AdGuard Home adalah biner tunggal dengan UI web bawaan, frontend DNS terenkripsi opsional, dan pengaturan per klien. Anda dapat menjalankannya di Docker atau sebagai layanan systemd. Di VPS Hiddence ia berpasangan baik dengan VPN pribadi: perangkat bergabung ke WireGuard, mengirim DNS ke VPS lewat terowongan, dan tidak pernah mengekspos port 53 secara publik.

  • Pemblokiran di seluruh jaringan tanpa menginstal aplikasi di setiap perangkat
  • DoH (443) dan DoT (853) agar DNS bukan teks biasa di Wi-Fi publik
  • Log kueri dan statistik agar Anda melihat perangkat mana berbicara ke domain mana
  • Upstream kustom (Quad9, Cloudflare, atau Unbound Anda sendiri)
  • Jejak kecil — VPS 1 GB dapat menyaring rumah tangga plus beberapa klien tambahan

Persyaratan

Anda butuh domain jika ingin sertifikat tepercaya untuk DoH/DoT dan dasbor. Anda dapat menguji di HTTP dan IP server dulu, tetapi jangan biarkan begitu. Jika systemd-resolved sudah memiliki port 53 di Ubuntu, kita akan membebaskannya sebelum AdGuard Home mengikat DNS.

  • VPS Ubuntu 22.04 atau 24.04 dengan root/sudo
  • 1 GB RAM cukup untuk pemakaian pribadi
  • Domain atau subdomain (dns.example.com) dengan rekaman A ke VPS
  • Akses SSH; WireGuard opsional jika Anda ingin DNS hanya di dalam terowongan

Langkah 1: Bebaskan port 53 dan instal AdGuard Home

Ubuntu Server sering menjalankan systemd-resolved sebagai stub di 127.0.0.53:53. AdGuard Home ingin 53 di antarmuka yang Anda pilih. Penginstal dapat melakukan ini, tetapi melakukannya secara eksplisit menghindari DNS setengah rusak di VPS sendiri (server masih perlu meresolusi paket).

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

Langkah 2: Wizard pertama

Penginstal mencetak URL, biasanya http://YOUR_IP:3000/. Buka, buat pengguna admin dengan kata sandi panjang, dan pilih alamat dengar. Untuk VPS publik, penyiapan pertama yang aman adalah: Admin Web di 127.0.0.1:3000 (Anda akan menaruh Caddy di depan) atau di 80/443 setelah TLS; DNS mendengar di 127.0.0.1:53 plus antarmuka VPN, bukan di 0.0.0.0:53. Jika Anda benar-benar butuh DNS bergaya LAN untuk teman, utamakan DoH/DoT di 443/853 dengan autentikasi, bukan 53/udp terbuka.

Pilih server DNS upstream yang Anda percayai. Banyak orang memakai https://dns.quad9.net/dns-query atau Cloudflare. Aktifkan permintaan paralel jika ingin failover lebih cepat. Nyalakan daftar filter bawaan, lalu tambah kemudian — mengaktifkan lima puluh daftar di hari pertama membuat debug mustahil ketika sebuah situs rusak.

Jika Anda tidak bisa membuka port 3000 dari laptop, gunakan terowongan SSH: ssh -L 3000:127.0.0.1:3000 root@YOUR_VPS_IP lalu buka http://127.0.0.1:3000/

Langkah 3: Reverse proxy dan HTTPS untuk dasbor

Setelah wizard selesai, AdGuard Home biasanya memindahkan UI ke port 80. Itu bertabrakan dengan Caddy atau Nginx jika Anda juga meng-host situs. Pola yang bersih: web AdGuard Home di 127.0.0.1:8080, DNS di 127.0.0.1:53, Caddy di 443 untuk dasbor dan 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

Langkah 4: Aktifkan DNS-over-HTTPS dan DNS-over-TLS

Di pengaturan Encryption, aktifkan enkripsi, atur nama server ke dns.example.com, dan arahkan AdGuard Home ke berkas sertifikat Anda — baik yang disimpan Caddy, atau sertifikat yang diperoleh AdGuard Home sendiri jika ia mendengar di 443. DoH biasanya https://dns.example.com/dns-query. DoT adalah dns.example.com:853. Jika Caddy sudah memiliki 443, biarkan Caddy mengakhiri TLS dan reverse-proxy jalur DoH ke port DoH HTTP biasa AdGuard Home, atau biarkan AdGuard Home mendengar di 443 dan taruh dasbor di subdomain lain.

Verifikasi dengan klien sebelum Anda mengubah setiap perangkat. Di laptop dengan curl modern:

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

Langkah 5: Arahkan perangkat nyata ke resolver Anda

Windows 11 dan Android terkini dapat memakai templat DoH. iOS dapat memakai profil konfigurasi atau klien yang mendukung DoH. Firefox dan Chromium juga mengizinkan URL DoH kustom. Untuk router rumah, atur WAN DNS hanya jika router mendukung DoT/DoH; jika tidak, jalankan WireGuard dan atur DNS ke IP VPN VPS agar DNS klasik tidak pernah menyeberangi internet.

  • Android 9+: DNS Pribadi (DoT) → dns.example.com
  • Firefox: Pengaturan → Jaringan → DNS over HTTPS → URL kustom https://dns.example.com/dns-query
  • Perangkat Apple: mobileconfig bertanda tangan atau aplikasi yang mendukung DoH/DoT
  • VPS lain: atur resolv.conf atau systemd-resolved ke IP WireGuard instans AdGuard ini
  • Hindari menetapkan IP VPS ini sebagai DNS di jaringan publik acak tanpa enkripsi

Langkah 6: Firewall — tutup DNS rekursif terbuka

Bagian ini mencegah kejutan buruk. Izinkan SSH, HTTPS, dan opsional 853/tcp untuk DoT. Jangan izinkan 53/udp dari 0.0.0.0/0 kecuali Anda punya desain yang sangat spesifik, dibatasi laju, dan terautentikasi — dan bahkan kemudian, Anda mungkin tidak seharusnya.

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'

Filter, daftar izinkan, dan klien

Mulai dengan filter DNS bawaan AdGuard dan satu daftar malware. Ketika situs berperilaku aneh, periksa log kueri, lalu tambahkan aturan izinkan yang spesifik daripada mematikan semua pemblokiran. Gunakan nama klien (berdasarkan IP atau ClientID di URL DoH) agar Anda dapat menerapkan daftar lebih ketat ke TV pintar dan lebih longgar ke laptop kerja. Aktifkan pencarian aman hanya jika Anda benar-benar menginginkannya — itu mengejutkan orang yang tidak minta hasil Google ditulis ulang.

  • Log kueri: temukan domain yang diblokir, lalu whitelist jika itu positif palsu
  • Pengaturan klien: daftar blok berbeda per perangkat
  • Klien yang tidak diizinkan: blokir rentang yang tidak Anda miliki
  • Pembatasan laju: nyalakan jika Anda pernah mengekspos lebih dari segelintir pengguna

Pemecahan masalah

Jika VPS sendiri tidak bisa apt update, Anda merusak DNS lokal saat membebaskan port 53 — taruh resolver statis di resolved.conf seperti di atas. Jika perangkat 'punya internet' tetapi iklan masih dimuat, mereka melewati DNS Anda (resolver hardcode, DoH di peramban, atau aplikasi yang memakai DNS sendiri). Jika dasbor kosong, Anda melihat instans yang salah atau masih mengenai port 3000 setelah wizard memindahkan UI.

  • apt gagal: periksa /etc/resolv.conf dan systemd-resolved
  • Port 53 terpakai: ss -tulpn, nonaktifkan stub listener
  • Kesalahan sertifikat DoH: nama host harus cocok dengan SAN sertifikat
  • Iklan masih terlihat: DoH peramban ke penyedia lain menimpa OS
  • RAM tinggi: log kueri + terlalu banyak daftar filter — potong daftar dan persingkat retensi log

Daftar periksa keamanan

UI web adalah panel admin. Kata sandi unik, hanya HTTPS, dan jangan terbitkan URL. Jaga AdGuard Home tetap diperbarui; skrip instal dan UI keduanya menampilkan jalur pembaruan. Batasi 443 jika hanya perangkat Anda yang boleh memakai DoH — HTTP basic auth di jalur DoH atau akses hanya WireGuard jauh lebih aman daripada resolver terbuka yang terkenal.

  • Tidak ada 53/udp publik
  • HTTPS di dasbor
  • Kata sandi admin kuat, disimpan di pengelola kata sandi
  • Utamakan WireGuard + DNS internal untuk perangkat keluarga
  • Cadangkan AdGuardHome.yaml ke luar server

Tips

  • Cadangkan /opt/AdGuardHome/AdGuardHome.yaml sebelum setiap peningkatan
  • Gunakan subdomain khusus; jangan berbagi dengan CMS yang tidak terkait
  • Jika Anda sudah menjalankan Caddy, biarkan Caddy memiliki 443 dan biarkan AdGuard Home di localhost
  • Dokumentasikan URL DoH untuk perangkat Anda — Anda akan lupa
  • Pasangkan dengan panduan pengerasan SSH dan firewall agar VPS tidak hanya 'aman DNS'

AdGuard Home di VPS itu lugas: bebaskan port 53 secara lokal, jalankan penginstal, selesaikan wizard dengan kata sandi admin yang kuat, taruh UI di HTTPS, aktifkan DoH/DoT, dan jaga DNS klasik tetap di luar internet publik. Arahkan perangkat ke titik akhir terenkripsi atau IP VPN, mulai dengan set filter kecil, dan pakai log kueri ketika sesuatu rusak. Itulah resolver pribadi yang benar-benar Anda kendalikan — bukan DNS terbuka publik yang akan memasukkan VPS Anda ke basis data penyalahgunaan.