🧾 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.confvalid.
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
| Penyebab | Penjelasan | Solusi |
|---|---|---|
❌ Salah konfigurasi dhcpd.conf | Misal: range IP tidak sesuai subnet, kurung {} lupa tutup, IP router salah | Cek dan validasi file: sudo dhcpd -t -cf /etc/dhcp/dhcpd.conf |
| ❌ Interface tidak disetel | File /etc/default/isc-dhcp-server kosong | Tambahkan: INTERFACESv4="enp0s3" (ganti sesuai hasil ip a) |
| ❌ Interface tidak aktif/tidak punya IP | DHCP tidak bisa berjalan di interface yang tidak punya IP statis | Set IP statis ke interface, misalnya 192.168.10.1/24 |
| ❌ DHCP dijalankan di interface yang tidak dikenali | VirtualBox masih pakai NAT atau adapter lain | Ganti 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:
- Salin isi script ke file, misalnya:
nano cek_dhcp.sh - Simpan, lalu beri izin eksekusi:
chmod +x cek_dhcp.sh - 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