Tinggalkan Pi-hole, Coba AdBlocker Jaringan Rumah dengan ESP32 yang Irit dan Efisien

Tinggalkan Pi-hole, Coba AdBlocker Jaringan Rumah dengan ESP32 yang Irit dan Efisien

By Reggi, 24 May 2026

Ketika seseorang membahas pemblokiran iklan di forum jaringan rumah, jawaban umum yang sering muncul adalah Pi-hole. Pi-hole merupakan DNS sinkhole yang sudah teruji dan terdokumentasi dengan baik, serta memiliki reputasi solid. Namun, menjalankan Pi-hole di Raspberry Pi (4 atau 5) atau mini PC seringkali terasa berlebihan untuk sebagian besar pengaturan rumah. Ini seperti menembak lalat dengan meriam, mampu tetapi terlalu besar.

Jika Anda ingin memblokir iklan dan pelacak di setiap perangkat di jaringan rumah Anda dengan solusi yang lebih murah, ramping, dan hemat daya, ada pilihan lain. Anda bisa melakukan Building a Home Network AdBlocker with ESP32. Perangkat ini muat di telapak tangan dan lebih efisien.

Apa Itu ESP32_AdBlocker?

ESP32_AdBlocker adalah proyek yang dikembangkan oleh s60sc. Proyek ini mengubah mikrokontroler ESP32 menjadi DNS sinkhole fungsional tanpa memerlukan sistem Linux lengkap. Cara kerjanya mirip Pi-hole. ESP32_AdBlocker memproses kueri DNS dari router dan perangkat Anda. Kemudian, perangkat ini akan memeriksa kueri tersebut terhadap daftar blokir. Jika ada iklan atau pelacak, kueri akan ditandai dengan alamat IP 0.0.0.0. Kueri lainnya akan diteruskan ke server DNS eksternal pilihan Anda, seperti Google, Cloudflare, Quad9, atau NextDNS.

Solusi ini mendukung format file daftar blokir hosts dan AdBlock-style. Daftar agregasi seperti yang dikelola Steven Black adalah titik awal yang bagus. Antarmuka webnya memungkinkan Anda menambahkan satu URL daftar blokir dan memperbarui pada waktu yang ditentukan. Lebih dari itu, antarmuka web ini juga memungkinkan Anda memantau permintaan yang diblokir dan diizinkan, menambahkan domain kustom secara langsung, dan mengatur sebagian besar pengaturan tanpa perlu terminal.

Mengapa ESP32-S3 Pilihan yang Tepat?

Untuk proyek ini, ESP32 dengan PSRAM yang memadai sangat direkomendasikan. Papan ESP32 standar mungkin memotong daftar blokir dan menjalankan pencarian sekitar 100 mikrosekon. Namun, ESP32-S3-N16R8 adalah pilihan yang lebih baik. Dengan 8MB PSRAM, papan ini dapat memuat daftar blokir agregasi yang lebih besar. Waktu pencarian juga lebih cepat, di bawah 50 mikrosekon. Ini membuat perbedaan signifikan saat setiap kueri DNS melewati papan ini.

Papan ESP32-S3 mudah didapatkan di berbagai marketplace dengan harga di bawah $8. Selain mikrokontroler, Anda juga membutuhkan kabel USB-C yang mendukung transfer data, bukan hanya pengisian daya. Pengisi daya 5V biasa, seperti pengisi daya ponsel, sudah cukup untuk menyalakan papan ESP32 ini.

Berikut perbandingan singkat ESP32 untuk proyek ini:

FiturESP32 Standar (dengan 4MB PSRAM)ESP32-S3-N16R8 (dengan 8MB PSRAM)
Ukuran BlocklistMungkin terpotongMendukung blocklist agregasi besar
Waktu PencarianSekitar 100 mikrosekonKurang dari 50 mikrosekon
Penyimpanan FlashDefault 1.5MB filesystem16MB Flash (memungkinkan 12.5MB FATFS)
KetersediaanUmumMudah ditemukan, harga sekitar $8

Menyiapkan ESP32_AdBlocker

Proyek ESP32_AdBlocker adalah sebuah sketch Arduino. Anda perlu mengunduh file-file GitHub ke folder sketch Arduino IDE Anda, lalu hapus -master dari nama folder aplikasi. Pastikan Anda menggunakan core Arduino ESP32 minimal v3.1.1 dengan PSRAM diaktifkan.

Anda juga perlu memperhatikan skema partisi. Skema partisi default hanya memberikan 1.5MB penyimpanan filesystem. Ini cukup untuk daftar blokir dasar, tetapi terlalu kecil untuk daftar agregasi besar. Papan N16R8 menawarkan flash 16MB. Ini memungkinkan Anda beralih ke skema partisi 16M Flash (2MB APP/12.5MB FATFS) untuk membuka 12.5MB penyimpanan untuk daftar blokir Anda. Untuk melakukan perubahan ini, Anda perlu memodifikasi boards.txt.

Jika Anda berencana untuk beralih ke FFat, berikut adalah opsi menu Tool di Arduino IDE yang berfungsi:

USB CDC on Boot: Enabled
Erase All Flash Before Sketch Upload: Enabled (first flash only)
Flash Mode: DIO 80MHz
Partition Scheme: 16M Flash (2MB APP/12.5MB FATFS)

Setelah semua diatur, pastikan Anda memilih papan ESP32 yang benar di menu Tools > Board dan telah menginstal file-nya dari Board Manager. Flash firmware ke ESP32-S3 Anda. Periksa Serial Monitor. Ini akan menunjukkan URL (misalnya, http://192.168.4.1) yang bisa Anda buka di browser ponsel, tablet, atau PC untuk memasukkan kredensial Wi-Fi. Dengan begitu, ESP32 Anda akan terhubung ke jaringan.

Pada instalasi pertama setelah menyala, aplikasi akan memulai dalam mode Wi-Fi AP. Sambungkan ke SSID: ESP32_AdBlocker. Setelah itu, Anda bisa mengakses http://192.168.4.1 melalui browser untuk memasukkan detail router dan kata sandi Anda. File konfigurasi dan halaman web aplikasi secara otomatis akan diunduh dari GitHub ke folder SDCARD/html ketika koneksi internet tersedia.

Memilih dan Mengelola Blocklist

Dengan penyimpanan FFat 12.5MB yang tersedia, Anda dapat memuat daftar blokir konsolidasi besar yang melebihi batas skema partisi default. Proyek ini hanya menerima satu URL untuk daftar blokir. Jadi, jika Anda ingin menggabungkan beberapa sumber, gabungkan secara offline terlebih dahulu, lalu hapus duplikatnya. Anda bisa meng-host daftar blokir gabungan tersebut secara daring atau mengunggahnya langsung ke perangkat melalui opsi file upload di antarmuka web.

Sebagai alternatif, Anda dapat membiarkan URL daftar blokir default dan mengelola file custom_domains.txt terpisah secara offline untuk domain kustom Anda. Sekali lagi, Anda bisa mengunggah file ini langsung ke perangkat dari antarmuka web. Menambahkan file kustom langsung ke perangkat ESP32 berarti file tersebut tidak akan pernah menyentuh server pihak ketiga karena tersimpan di perangkat. Satu-satunya kekurangan adalah Anda perlu memperbarui secara berkala.

Setelah ESP32 dinyalakan pertama kali, Anda perlu menunggu proses pengunduhan daftar blokir awal selesai. Ini memerlukan beberapa menit, tergantung pada ukuran daftar blokir Anda. Pengunduhan selanjutnya akan jauh lebih cepat karena hanya memproses pembaruan. ESP32_AdBlocker akan mengunduh file yang dipilih setiap hari pada waktu yang ditentukan untuk menjaga daftar blokir tetap update. Anda juga dapat menambahkan atau menghapus situs secara individual ke daftar blokir kustom lokal melalui antarmuka web.

Fitur Antarmuka Web

Antarmuka web ESP32_AdBlocker menyediakan berbagai fitur untuk memantau dan mengelola DNS sinkhole Anda:

  • Allowed: Menampilkan jumlah permintaan domain yang diizinkan sejak perangkat di-restart.
  • Blocked: Menampilkan jumlah permintaan domain yang diblokir sejak perangkat di-restart.
  • Blocklist URL: URL daftar blokir yang sedang digunakan. Setelah memasukkan URL baru, tekan tombol Download. Jika dibiarkan kosong, perangkat akan memuat ulang daftar blokir saat ini.
  • Domain to Block: Masukkan URL domain tambahan yang ingin diblokir, lalu tekan tombol Add.
  • Domain to Unblock: Masukkan URL domain yang ada di daftar blokir dan ingin dihapus, lalu tekan tombol Remove.
  • Domain to Check: Masukkan URL domain untuk memeriksa apakah ada di daftar blokir, lalu tekan tombol Check.
  • Stop Download: Tombol ini untuk menghentikan proses pengunduhan daftar blokir yang sedang berjalan.
  • Clear Custom: Menghapus entri kustom yang ditambahkan atau dihapus secara manual oleh pengguna.

Selain itu, Anda bisa menemukan lebih banyak detail konfigurasi melalui tab Configure. Di sana, Anda dapat mengatur IP statis, alamat IP router, serta pengaturan jaringan dan webserver lainnya. Tab Settings berisi pengaturan lingkungan yang memengaruhi operasi daftar blokir. Pada tab Network, Anda bisa memilih antarmuka jaringan yang diinginkan, seperti Wi-Fi, Ethernet, atau Ethernet dengan Access Point (AP), dan mendefinisikan pin SPI untuk controller Ethernet eksternal. Semua perubahan ini bisa Anda simpan dengan menekan tombol Save. Log aplikasi dapat dipantau di tab Log. Tombol Extra Logging akan menampilkan log tambahan untuk setiap koneksi yang diblokir atau diterima.

Integrasi ke Jaringan Rumah Anda

Agar ESP32_AdBlocker menjadi server DNS pilihan Anda, masukkan alamat IPv4-nya sebagai alamat IP server DNS di router atau perangkat Anda. ESP32_AdBlocker tidak memiliki alamat IPv6. Oleh karena itu, nonaktifkan DNS IPv6 pada perangkat atau router Anda untuk memaksanya menggunakan DNS IPv4.

Contoh untuk adaptor jaringan PC Windows: untuk menggunakan AdBlocker sebagai Server DNS dengan alamat IP 192.168.1.10, pada command prompt Windows, masukkan:

bash
netsh interface ipv4 set dnsservers "Ethernet" static 192.168.1.10 primary

Untuk kembali ke Server DNS biasa, misalnya Google, masukkan:

bash
netsh interface ipv4 set dnsservers "Ethernet" static 8.8.8.8 primary

Pastikan Secure DNS (DoH) dinonaktifkan di browser seperti Chrome, Edge, dan Firefox, karena fitur ini dapat dengan mudah melewati DNS sinkhole kecil Anda. Solusinya adalah menonaktifkan Secure DNS di browser Anda atau menggunakan firewall di router Anda untuk memfilter semua lalu lintas DNS dari setiap browser.

Pertimbangan Penting Sebelum Menggunakan

Meskipun AdBlocker berbasis ESP32 terdengar bagus secara teori, ada beberapa kelemahan praktis. Pertama, ini bukan pengalaman plug-and-play. Anda perlu sedikit pengetahuan teknis untuk menyiapkannya. Kedua, papan ESP32 hanya menangani satu file daftar blokir pada satu waktu. Meskipun Anda dapat mengunggah file konsolidasi, penyimpanan flash ESP32 membatasi ukuran file berdasarkan ruang yang tersedia. Seperti Pi-hole, Anda juga perlu menunggu pengunduhan daftar blokir awal selesai setelah ESP32 boot pertama kali.

Jika Anda membutuhkan pemblokiran iklan dan pelacak per perangkat melalui dashboard yang lebih canggih, Pi-hole masih bisa dipertimbangkan. Pi-hole memungkinkan Anda menulis aturan berbasis regex, conditional forwarding, dan log terperinci yang dapat diaudit. Selain itu, Anda dapat menjalankan Pi-hole di mesin Linux yang sama saat menjalankan layanan lain.

Kesimpulan

Bagi Anda yang mencari perangkat keras khusus yang murah, hemat daya, boot cepat, dan tidak akan mengalami masalah korupsi kartu microSD, ESP32-S3 seharga $8 adalah pilihan menarik. Anda dapat mencolokkannya langsung ke port USB router Anda, yang biasanya menyediakan daya 5V, lalu mengatur alamat IP ESP32 sebagai DNS router Anda. Setelah itu, router dan DNS sinkhole akan bekerja sama secara otomatis, dan Anda tidak perlu memikirkannya lagi.

Meskipun membuat AdBlocker berbasis ESP32 ini membutuhkan penanganan skema partisi, perubahan driver filesystem, dan beberapa hal yang tidak secara langsung didokumentasikan proyek, setelah berjalan, perangkat ini berfungsi dengan baik. Anda tidak perlu terus-menerus memeriksa dashboard, memperbarui OS, atau berurusan dengan terminal. ESP32 adalah papan pengembangan fantastis yang menggabungkan spesifikasi solid dengan harga terjangkau. Meskipun lebih murah dari Arduino dan Raspberry Pi Pico, ESP32 mengungguli sebagian besar pesaingnya, dan dilengkapi dengan fungsionalitas Wi-Fi serta Bluetooth.

Referensi


🔥 Sedang Ramai Dibaca