VPS Murah Nevacloud

Yuk, Pasang AdGuard Home di VPS: Blokir Iklan Se-Jaringan Lewat DNS Sendiri

Halo Sobat Online! Iklan dan pelacak hari ini tidak cuma muncul di browser. Aplikasi HP, Smart TV, sampai game di tablet juga diam-diam menghubungi server iklan. Kalau ingin memutus semuanya sekaligus, cara paling rapi adalah menaruh AdGuard Home di VPS lalu menjadikannya DNS server pribadi. Sekali pasang, seluruh perangkat di jaringan ikut terfilter — tanpa aplikasi tambahan.

Analogi gampangnya: DNS itu buku telepon internet. Saat kita membuka sebuah alamat, perangkat bertanya “nomor IP-nya berapa?” ke buku telepon itu. AdGuard Home menyisipkan diri sebagai operator buku telepon versi kita sendiri — ia sengaja tidak memberi nomor untuk domain iklan dan pelacak, jadi permintaannya berhenti di situ, bukan sekadar disembunyikan tampilannya.

Kenapa AdGuard Home di VPS Layak Dicoba?

  • Blokir di level DNS, bukan per aplikasi. Iklan tidak sempat termuat karena perangkat tidak pernah tahu alamat IP server iklannya — cara yang sama dipakai AdGuard DNS publik, bedanya kita punya kendali penuh.
  • Satu titik kontrol untuk semua perangkat. HP, laptop, TV, dan perangkat tamu memakai daftar filter yang sama. Tidak perlu install ekstensi satu per satu.
  • VPS selalu menyala dan IP-nya tetap. Alamat DNS yang berubah-ubah bikin repot; IP statis membuatnya jadi resolver yang stabil.
  • Gratis dan open-source. Bebas dipakai di server pribadi maupun bisnis kecil.
  • Tetap terpakai saat di luar rumah — asal diakses lewat VPN, bukan lewat port DNS terbuka. Ini poin yang kita bahas di langkah keamanan.

Yang Perlu Disiapkan

  1. VPS Linux — Ubuntu 22.04/24.04 atau Debian 12. Untuk pemakaian rumah, 1 vCPU dan 1 GB RAM sudah cukup — AdGuard Home hanya proxy DNS yang ringan.
  2. Docker yang sudah terpasang — cek dengan docker --version dan docker compose version.
  3. Akses root atau sudo ke VPS tersebut.

Opsional tapi disarankan: satu subdomain (misalnya dns.domainku.com) untuk panel admin ber-HTTPS.

Langkah 1: Bebaskan Port 53 dari systemd-resolved

Layanan DNS berjalan di port 53 (UDP dan TCP). Di Ubuntu, ada daemon systemd-resolved yang mendengarkan di 127.0.0.53:53, sehingga container AdGuard Home akan gagal bind dengan pesan address already in use. Cek dulu siapa yang memakai port itu:


sudo ss -tulpn | grep ':53 '

Kalau yang muncul adalah systemd-resolve, matikan hanya stub listener-nya — systemd-resolved sendiri tetap jalan. Buat file konfigurasi tambahan (bukan file utama, supaya tidak tertimpa saat paket diperbarui):


sudo mkdir -p /etc/systemd/resolved.conf.d
sudo nano /etc/systemd/resolved.conf.d/adguardhome.conf

Isinya:


[Resolve]
DNS=127.0.0.1
DNSStubListener=no

Lalu arahkan ulang resolv.conf dan restart layanannya:


sudo mv /etc/resolv.conf /etc/resolv.conf.backup
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
sudo systemctl reload-or-restart systemd-resolved

Baris DNS=127.0.0.1 penting: tanpa itu, resolv.conf akan menunjuk ke 127.0.0.53, alamat stub yang sudah kita matikan.

Langkah 2: Siapkan Folder dan File docker-compose.yml

Dokumentasi resmi AdGuard Home memakai dua direktori untuk penyimpanan permanen: satu untuk konfigurasi, satu untuk statistik dan query log.


sudo mkdir -p /opt/adguardhome/work /opt/adguardhome/conf
cd /opt/adguardhome
sudo nano docker-compose.yml

Isi file compose-nya:


services:
  adguardhome:
    image: adguard/adguardhome:v0.107.79
    container_name: adguardhome
    restart: unless-stopped
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "3000:3000/tcp"
    volumes:
      - ./work:/opt/adguardhome/work
      - ./conf:/opt/adguardhome/conf

Bedah singkat supaya tidak sekadar copy-paste:

  • 53:53/tcp dan 53:53/udp — wajib; ini pintu layanan DNS-nya (UDP untuk query normal, TCP untuk jawaban besar dan fallback).
  • 3000:3000/tcp — panel admin sekaligus tempat wizard setup pertama muncul.
  • Dua volume — work menyimpan statistik dan query log, conf menyimpan AdGuardHome.yaml. Tanpa keduanya, setelan dan riwayat query bisa hilang saat container dibuat ulang.
  • Tag versi dipin ke rilis stabil terbaru saat artikel ini ditulis, v0.107.79. Kalau muncul versi lebih baru, tinggal ganti tag-nya — untuk instalasi Docker, update otomatis memang dimatikan oleh AdGuard.

Langkah 3: Jalankan dan Ikuti Wizard Setup


cd /opt/adguardhome
sudo docker compose up -d
sudo docker compose logs -f

Buka browser ke http://IP-VPS:3000, lalu ikuti wizard-nya:

  1. Interface panel admin — pilih All interfaces, dan set port panel tetap 3000 (bukan 80). Alasannya praktis: kalau port 80 sudah dipakai Nginx atau Caddy untuk aplikasi lain di VPS yang sama, panel malah tidak bisa dibuka.
  2. Interface DNS — pilih All interfaces dengan port 53.
  3. Buat user admin — simpan username dan password-nya, itu satu-satunya kunci masuk panel.

Kalau memakai UFW, buka port yang diperlukan saja:


sudo ufw allow 53/tcp
sudo ufw allow 53/udp
sudo ufw allow 3000/tcp

Menurut dokumentasi resminya, tiga port inti AdGuard Home adalah 3000/TCP untuk instalasi awal, 80/TCP untuk web interface, dan 53/UDP untuk server DNS.

Langkah 4: Pasang Bloklist dan Uji Hasilnya

Masuk Filters → DNS blocklists → Add blocklist → Add a custom list, lalu tempel URL AdGuard DNS filter:


https://adguardteam.github.io/HostlistsRegistry/assets/filter_1.txt

Daftar ini gabungan beberapa filter (base filter, social media, tracking protection, mobile ads, EasyList/EasyPrivacy) yang disusun khusus agar cocok untuk pemblokiran di level DNS. Setelah ditambahkan, klik Check untuk melihat berapa banyak aturan yang termuat.

Cara tercepat membuktikan AdGuard Home bekerja adalah bertanya langsung ke VPS, seperti contoh di wiki resmi instalasi VPS AdGuard:


host doubleclick.net 127.0.0.1

Kalau benar, jawabannya bukan angka IP, melainkan NXDOMAIN — domain iklan itu resmi “tidak ada” menurut buku telepon versi kita. Buka juga Dashboard dan Query log: di situ terlihat persentase query yang diblokir dan domain apa saja yang paling sering ditolak.

Langkah 5: Arahkan Perangkat ke DNS VPS

Ada tiga pilihan:

  1. Per perangkat — ubah DNS di Android, iOS, Windows, atau macOS ke IP VPS. Paling cepat untuk uji coba dan tidak berisiko memutus internet satu rumah.
  2. Lewat router (DHCP) — set DNS di pengaturan router, semua perangkat yang tersambung ikut terfilter. Ini yang paling praktis sehari-hari.
  3. Lewat VPN — pasang WireGuard atau Tailscale di VPS. Perangkat tetap terlindungi walau sedang di luar rumah, dan port DNS tidak perlu dibuka ke publik.

Satu peringatan yang jangan diabaikan: jangan membuka port 53 ke internet publik. AdGuard Home di IP publik dengan port 53 terbuka adalah open resolver — bisa dibajak untuk serangan DDoS amplifikasi DNS dan VPS Sobat Online yang menanggung akibatnya. Kalau memang harus publik, aktifkan Access settings (allowlist ClientID atau IP), batasi dns.bind_hosts, dan pakai ratelimit bawaan (default 20) — semuanya rekomendasi dari halaman “Setting up AdGuard Home securely”.

Langkah 6: Amankan Panel Admin dan Rutin Update

  • Jangan biarkan panel admin terbuka sebagai HTTP polos di IP publik. Taruh di belakang reverse proxy ber-HTTPS seperti Caddy atau Nginx, atau lewat Cloudflare Tunnel — polanya sama seperti artikel sebelumnya. Kalau panel hanya dipakai sendiri, dns.bind_hosts ke loopback plus akses VPN sudah cukup.
  • Perbarui manual secara berkala, karena auto-update dimatikan untuk instalasi Docker:

cd /opt/adguardhome
sudo docker compose pull
sudo docker compose up -d

Dokumentasi AdGuard juga mengingatkan agar direktori kerja dimiliki root:root dan tidak bisa ditulis pihak lain — cek dengan ls -d -l /opt/adguardhome.

Troubleshooting Singkat

  • address already in use saat start → masih ada stub listener systemd-resolved atau dnsmasq. Cek lagi dengan sudo ss -tulpn | grep ':53 '.
  • Perangkat tidak bisa internet setelah ganti DNS → pastikan port 53/UDP benar-benar terbuka (di firewall dan di security group penyedia VPS), lalu cek container hidup dengan sudo docker compose ps.
  • Panel :3000 tidak terbuka → port 3000 belum dipublish, atau wizard masih menunggu; lihat sudo docker compose logs -f.
  • Ingin melihat IP asli klien, bukan 172.x → tambahkan network_mode: host di compose; dokumentasi AdGuard mencatat opsi ini hanya jalan di Linux.

Kesimpulan

Satu VPS kecil, satu container, dan satu kali ubah setelan DNS — setelah itu iklan dan pelacak berhenti sebelum sampai ke perangkat Sobat Online. Yang paling menyenangkan biasanya justru momen membuka Query log pertama kali dan menyadari betapa banyak domain pelacak yang selama ini ikut berdesakan tanpa kita sadari.

Saran saya: mulai dari satu perangkat dulu, biasakan membaca query log-nya, baru kemudian pindahkan DNS di router supaya seluruh rumah ikut bersih. Selamat mencoba, Sobat Online — jaringan yang lebih tenang sudah menunggu di ujung sana!

Baca juga

Nevacloud VPS Indonesia

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *