January 12, 2026

Error saat Konfigurasi DHCP Server (Error 1)

🧾 Ringkasan Error yang Anda Tampilkan:

Job for isc-dhcp-server.service failed because the control process exited with error code.
See "systemctl status isc-dhcp-server.service" and "journalctl -xeu isc-dhcp-server.service" for details.

dhcpd[636]: exiting.
isc-dhcp-server[636]: exiting.
systemd[1]: isc-dhcp-server.service: Control process exited, code=exited, status=1/FAILURE
systemd[1]: isc-dhcp-server.service: Failed with result 'exit-code'.
systemd[1]: Failed to start isc-dhcp-server.service - LSB: DHCP server.

🔍 PENJELASAN TIAP ERROR DAN CARA MENGATASINYA


❗ 1. Job for isc-dhcp-server.service failed because the control process exited with error code

📌 Arti:
Systemd mencoba menjalankan DHCP server (isc-dhcp-server), tetapi proses utama keluar dengan status gagal (exit code ≠ 0)

✅ Solusi:
Periksa lebih lanjut detail error menggunakan:

journalctl -xeu isc-dhcp-server.service

atau

sudo dhcpd -d

Untuk melihat penyebab spesifik seperti error konfigurasi.


❗ 2. dhcpd[636]: exiting.

📌 Arti:
Proses dhcpd (daemon DHCP server) berhenti secara tidak normal. Biasanya ini karena:

  • Kesalahan konfigurasi (/etc/dhcp/dhcpd.conf)
  • Interface tidak ditemukan/aktif
  • Tidak ada IP statis di interface DHCP

✅ Solusi:

  • Pastikan dhcpd.conf valid.
    Gunakan: sudo dhcpd -t -cf /etc/dhcp/dhcpd.conf
  • Pastikan interface sudah ditentukan dan aktif (lihat poin berikutnya).

❗ 3. isc-dhcp-server.service: Control process exited, code=exited, status=1/FAILURE

📌 Arti:
Service gagal dijalankan, keluar dengan kode 1 yang berarti general failure, bukan success (kode 0).

✅ Solusi:
Artinya perlu dilihat kesalahan di:

  • File konfigurasi DHCP
  • Interface jaringan
  • Status IP pada interface

❗ 4. Failed to start isc-dhcp-server.service - LSB: DHCP server.

📌 Arti:
Unit service gagal dijalankan oleh systemd.

✅ Solusi:
Ini adalah ringkasan error, penyebab detailnya ada di atas.


🛠 RANGKUMAN PENYEBAB UMUM DAN SOLUSINYA

PenyebabPenjelasanSolusi
❌ Salah konfigurasi dhcpd.confMisal: range IP tidak sesuai subnet, kurung {} lupa tutup, IP router salahCek dan validasi file: sudo dhcpd -t -cf /etc/dhcp/dhcpd.conf
❌ Interface tidak disetelFile /etc/default/isc-dhcp-server kosongTambahkan: INTERFACESv4="enp0s3" (ganti sesuai hasil ip a)
❌ Interface tidak aktif/tidak punya IPDHCP tidak bisa berjalan di interface yang tidak punya IP statisSet IP statis ke interface, misalnya 192.168.10.1/24
❌ DHCP dijalankan di interface yang tidak dikenaliVirtualBox masih pakai NAT atau adapter lainGanti ke Bridged Adapter atau Host-only, dan gunakan Intel PRO/1000 MT Desktop (82540EM)

✅ CONTOH LENGKAP KONFIGURASI

🔸 File /etc/dhcp/dhcpd.conf

subnet 192.168.10.0 netmask 255.255.255.0 {
  range 192.168.10.10 192.168.10.100;
  option routers 192.168.10.1;
  option domain-name-servers 8.8.8.8;
}

🔸 File /etc/default/isc-dhcp-server

INTERFACESv4="enp0s3"

(Lihat interface aktif dengan ip a)


🧪 DIAGNOSA MENDALAM (opsional)

1. Validasi konfigurasi sebelum menjalankan:

sudo dhcpd -t

Jika muncul error, perbaiki dhcpd.conf.


2. Jalankan manual dengan debug:

sudo dhcpd -d

Lihat apakah muncul error seperti:

  • No subnet declaration
  • No interface specified
  • Can’t find enp0s3

Membuat script Bash Otomatis

Berikut adalah script Bash sederhana untuk membantu mengecek konfigurasi dan kondisi sistem sebelum menjalankan DHCP server di Debian 12. Script ini bisa Anda jalankan langsung di terminal untuk mendeteksi penyebab umum kegagalan DHCP server.


✅ Script: cek_dhcp.sh

#!/bin/bash

echo "==== CEK KONDISI DHCP SERVER ===="

# 1. Cek apakah isc-dhcp-server terinstall
echo -n "[1] Mengecek apakah isc-dhcp-server terinstall... "
if dpkg -s isc-dhcp-server &> /dev/null; then
  echo "✅ TERINSTALL"
else
  echo "❌ BELUM TERINSTALL"
  echo "   ➤ Jalankan: sudo apt update && sudo apt install isc-dhcp-server"
  exit 1
fi

# 2. Cek interface aktif dan IP-nya
echo "[2] Interface aktif dan IP:"
ip -br a | grep UP

# 3. Cek isi /etc/default/isc-dhcp-server
echo "[3] Mengecek interface DHCP yang digunakan..."
IFACE=$(grep -E '^INTERFACESv4=' /etc/default/isc-dhcp-server | cut -d'"' -f2)
if [[ -z "$IFACE" ]]; then
  echo "❌ INTERFACESv4 belum diset di /etc/default/isc-dhcp-server"
  echo "   ➤ Tambahkan: INTERFACESv4=\"enp0s3\" (atau nama interface Anda)"
else
  echo "✅ INTERFACE DHCP: $IFACE"
fi

# 4. Cek apakah interface punya IP
echo "[4] Mengecek apakah $IFACE memiliki IP statis..."
IPADDR=$(ip -4 addr show "$IFACE" 2>/dev/null | grep inet | awk '{print $2}')
if [[ -z "$IPADDR" ]]; then
  echo "❌ Interface $IFACE belum memiliki IP!"
  echo "   ➤ Tambahkan IP statis pada interface tersebut."
else
  echo "✅ IP ADDRESS: $IPADDR"
fi

# 5. Validasi konfigurasi dhcpd.conf
echo -n "[5] Mengecek konfigurasi /etc/dhcp/dhcpd.conf... "
dhcpd -t -cf /etc/dhcp/dhcpd.conf &> /dev/null
if [[ $? -eq 0 ]]; then
  echo "✅ VALID"
else
  echo "❌ ERROR"
  echo "   ➤ Cek detail dengan: sudo dhcpd -t -cf /etc/dhcp/dhcpd.conf"
fi

# 6. Cek status layanan DHCP server
echo "[6] Status layanan isc-dhcp-server:"
sudo systemctl status isc-dhcp-server --no-pager | grep -E "Loaded|Active|error|failed"

echo "==== SELESAI ===="

🧾 Cara Menggunakan Script Ini:

  1. Salin isi script ke file, misalnya: nano cek_dhcp.sh
  2. Simpan, lalu beri izin eksekusi: chmod +x cek_dhcp.sh
  3. Jalankan script: ./cek_dhcp.sh

💡 Manfaat Script Ini:

  • Mengecek apakah DHCP server sudah terinstal
  • Mengetahui interface mana yang digunakan
  • Mengetahui apakah interface punya IP
  • Memvalidasi file konfigurasi DHCP
  • Menampilkan status layanan DHCP