All Products
Search
Document Center

HTTPDNS:Integrasikan DoH di Electron

Last Updated:Nov 10, 2025

Topik ini menjelaskan cara menggunakan DNS over HTTPS (DoH) di Electron.

1. Pengantar

Electron adalah kerangka kerja pengembangan aplikasi lintas platform berbasis Chromium dan Node.js yang memungkinkan pengembang membangun aplikasi desktop menggunakan JavaScript, HTML, dan CSS.

Secara default, Electron menggunakan Domain Name System (DNS) lokal sistem untuk melakukan resolusi nama domain. Masalah pada DNS lokal—seperti pembajakan (hijacking), penjadwalan yang tidak akurat, dan latensi resolusi tinggi—dapat menyebabkan permintaan jaringan dalam aplikasi gagal atau diarahkan ke node layanan yang salah. Anda dapat mengatasi masalah tersebut dengan menggunakan DoH di Electron.

2. Prasyarat

Sebelum mengintegrasikan DoH di Electron, pastikan Anda telah mengonfigurasi layanan DoH.

3. Metode integrasi

Situs web resmi Electron menyediakan solusi standar untuk integrasi DoH. Setelah inisialisasi aplikasi, Anda dapat mengintegrasikan DoH menggunakan <a href="https://electron.js.cn/docs/latest/api/app#appconfigurehostresolveroptions" id="371a25d48alty">app.configureHostResolver</a> untuk mengonfigurasi titik akhir DoH untuk HTTPDNS.

const { app } = require('electron')

app.whenReady().then(() => {
  app.configureHostResolver({
    secureDnsMode: 'automatic',
    secureDnsServers: [
       // Tautan layanan DoH Anda
      'https://xxx.aliyunhttpdns.com/dns-query'
    ]
  })
})
Penting
  • Permintaan jaringan dalam aplikasi Electron dapat menggunakan stack jaringan Node.js atau stack jaringan Chromium. Layanan DoH yang dikonfigurasi melalui antarmuka ini hanya berlaku untuk permintaan yang menggunakan stack jaringan Chromium, yang mencakup hal-hal berikut:

    • Proses rendering (halaman web): fetch, XMLHttpRequest, dan pemuatan sumber daya di halaman.

    • Proses utama: penggunaan modul net bawaan Electron, BrowserWindow.loadURL(), dan lainnya.

    • Skrip preload: penggunaan API browser seperti fetch dan XMLHttpRequest.

  • Kernel Chromium menggunakan nama domain probe bawaan www.gstatic.com untuk memeriksa ketersediaan DoH. Hingga proses probe selesai, ketersediaan layanan DoH dianggap belum ditentukan. Untuk memastikan layanan DoH berfungsi sebagaimana mestinya, pastikan nama domain www.gstatic.com ditambahkan ke daftar resolusi atau semua nama domain diizinkan untuk diselesaikan.

  • Ketika ketersediaan DoH belum ditentukan, mode yang berbeda yang dipilih untuk secureDnsMode memiliki perilaku yang berbeda:

    • Mode automatic: Jika ketersediaan DoH belum ditentukan atau layanan tidak tersedia, Chromium secara otomatis kembali menggunakan DNS lokal. Setelah probe berhasil, sistem secara otomatis beralih kembali ke DoH.

    • Mode secure: Mode ini memaksa penggunaan DoH dan menunggu hasil probe DoH. Jika tidak ada titik akhir DoH aktif yang tersedia, sistem tidak akan kembali ke DNS lokal. Untuk mencegah aplikasi Anda menjadi tidak tersedia dalam kasus langka ketika layanan DoH tidak tersedia, tambahkan layanan DoH lain, seperti layanan DoH publik gratis, sebagai cadangan dalam mode secure.

4. Demo

  • Hasil

    image

  • Kode demo

    const { app, BrowserWindow } = require('electron');
    
    app.whenReady().then(async () => {
      try {
        // Konfigurasikan DNS over HTTPS - failover otomatis didukung
        app.configureHostResolver({
          secureDnsMode: 'automatic', // Secara otomatis kembali ke DNS lokal jika DoH gagal
          secureDnsServers: [
             // Masukkan tautan DoH aktual Anda di sini
            'https://xxxx.aliyunhttpdns.com/dns-query'
          ]
        });
        console.log('✅ DoH berhasil dikonfigurasi: Failover otomatis diaktifkan');
      } catch (error) {
        console.error('❌ Konfigurasi DoH gagal:', error);
      }
    
      // Buat jendela
      const mainWindow = new BrowserWindow({
        width: 1000,
        height: 700
      });
    
      mainWindow.loadURL('https://www.aliyun.com');
    });
    
    app.on('window-all-closed', () => {
      if (process.platform !== 'darwin') {
        app.quit();
      }
    });

5. Ringkasan

Dengan mengikuti langkah-langkah dalam topik ini, Anda dapat mengintegrasikan fitur DoH ke dalam kerangka kerja Electron, sehingga secara signifikan meningkatkan keamanan aplikasi dan privasi pengguna. Setelah mengonfigurasi DoH, Anda dapat memverifikasi integrasinya dengan mengatur server DNS jaringan perangkat lokal ke alamat yang tidak valid, lalu memeriksa apakah permintaan jaringan masih dapat dilakukan. Jika ya, integrasi DoH berhasil.