Panduan lengkap mengatur alamat IP (statis & DHCP) dan mengelola repository paket pada Debian 12 (Bookworm) Server — fondasi wajib sebelum membangun layanan apapun.
Sebelum mengonfigurasi, penting memahami konsep dasar alamat IP di jaringan Linux.
Setiap alamat IP terdiri dari dua bagian: alamat jaringan (network) dan alamat host. Subnet mask menentukan batas antara keduanya.
| CIDR | Subnet Mask | Jumlah Host | Kegunaan |
|---|---|---|---|
| /24 | 255.255.255.0 | 254 | Jaringan kecil (LAN) |
| /25 | 255.255.255.128 | 126 | Subnet terpisah |
| /26 | 255.255.255.192 | 62 | VLAN kecil |
| /16 | 255.255.0.0 | 65.534 | Jaringan besar |
Alamat IP ditetapkan manual dan tidak berubah. Wajib untuk server.
Alamat IP diberikan otomatis oleh DHCP server. Cocok untuk client.
Server memerlukan IP statis agar selalu bisa dijangkau. Berikut dua metode yang bisa digunakan di Debian 12.
Cari tahu nama interface jaringan yang akan dikonfigurasi.
ip link show # Contoh output: 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 ... 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ... 3: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...
eth0 (prediktable),
ens18 (systemd predictable naming), atau enp0s3.
Ganti eth0 di contoh berikut dengan nama interface Anda.
Buka file konfigurasi dengan editor teks.
nano /etc/network/interfaces
Ganti seluruh isi file dengan konfigurasi berikut.
# Loopback interface (wajib ada) source /etc/network/interfaces.d/* auto lo iface lo inet loopback # === Interface Utama: IP Statis === auto eth0 iface eth0 inet static address 192.168.1.100/24 gateway 192.168.1.1 dns-nameservers 8.8.8.8 1.1.1.1 # Penjelasan: # address → IP address yang ditetapkan (dengan CIDR) # gateway → IP router yang menjadi jalur ke internet # dns-nameservers → DNS server untuk resolusi nama domain
Restart layanan jaringan untuk menerapkan perubahan.
# Metode 1: Restart service networking systemctl restart networking # Metode 2: Jika metode 1 gagal, restart ifupdown ifdown eth0 && ifup eth0 # Metode 3: Cara paling aman (jika akses remote) nano /etc/network/interfaces # edit dulu systemctl restart networking # Atau reboot server jika ragu: reboot
systemctl restart networking && sleep 5 && echo OK
untuk memastikan koneksi masih hidup, atau gunakan reboot dengan watchdog.
Tambahkan beberapa IP address pada satu interface fisik.
# IP utama auto eth0 iface eth0 inet static address 192.168.1.100/24 gateway 192.168.1.1 dns-nameservers 8.8.8.8 # IP alias (IP tambahan pada interface yang sama) auto eth0:0 iface eth0:0 inet static address 192.168.1.101/24 auto eth0:1 iface eth0:1 inet static address 10.0.0.100/24
Metode modern menggunakan file konfigurasi terpisah per-interface. Cocok untuk server yang sudah sepenuhnya menggunakan systemd.
systemctl enable --now systemd-networkd systemctl disable networking # nonaktifkan ifupdown
nano /etc/systemd/network/10-static.network # Isi file: [Match] Name=eth0 [Network] Address=192.168.1.100/24 Gateway=192.168.1.1 DNS=8.8.8.8 1.1.1.1
systemctl restart systemd-networkd networkctl status eth0
Jika server Anda berada di jaringan dengan DHCP server (router/modem), Anda bisa menggunakan DHCP client. Namun tidak direkomendasikan untuk server produksi.
source /etc/network/interfaces.d/* auto lo iface lo inet loopback # === Interface dengan DHCP === auto eth0 iface eth0 inet dhcp
# Cek apakah isc-dhcp-client terpasang dpkg -l | grep dhcp-client # Jika belum, install: apt update apt install isc-dhcp-client -y # Terapkan systemctl restart networking
Jika Anda tetap ingin menggunakan DHCP tapi perlu IP tetap, gunakan fitur DHCP Reservation (atau static lease) di router/modem. Caranya: masuk ke halaman admin router, cari menu DHCP, lalu mapping MAC address server ke IP tertentu. Hasilnya sama seperti IP statis tapi dikelola dari router.
ip link show eth0 | grep ether # Output: link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff # Catat MAC address tersebut ke router DHCP reservation
Tanpa DNS yang benar, server tidak bisa menyelesaikan nama domain (google.com, dll) menjadi IP address.
apt update apt install systemd-resolved -y systemctl enable --now systemd-resolved
nano /etc/systemd/resolved.conf # Cari dan ubah baris berikut (hapus tanda # di depan): [Resolve] DNS=8.8.8.8 1.1.1.1 FallbackDNS=8.8.4.4 Domains=~.
Agar aplikasi menggunakan systemd-resolved.
# Backup resolv.conf asli mv /etc/resolv.conf /etc/resolv.conf.backup # Buat symlink ke systemd-resolved ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf # Restart systemctl restart systemd-resolved
Repository adalah sumber paket perangkat lunak. Konfigurasi yang benar memastikan Anda bisa menginstal, memperbarui, dan mengamankan software di server.
Repository Debian adalah server mirror yang menyimpan ribuan paket .deb.
Ketika Anda menjalankan apt install nginx, sistem mengunduh paket dari repository
yang terdaftar di sources.list.
# Lihat isi sources.list cat /etc/apt/sources.list # Lihat file tambahan di sources.list.d/ ls -la /etc/apt/sources.list.d/ # Cek daftar repository yang aktif apt-cache policy
Ganti isi /etc/apt/sources.list dengan mirror terdekat.
nano /etc/apt/sources.list # === Repository Debian 12 (Bookworm) — Mirror Indonesia === # KLAB (KLab University - FAST di Indonesia) deb http://kartolo.sby.datautama.net.id/debian/ bookworm main contrib non-free non-free-firmware deb-src http://kartolo.sby.datautama.net.id/debian/ bookworm main contrib non-free non-free-firmware # === Repository Security Updates === deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware # === Repository Updates (backports) === deb http://kartolo.sby.datautama.net.id/debian/ bookworm-updates main contrib non-free non-free-firmware
deb [URL] [distribusi] [komponen1] [komponen2] ...deb = paket biner, deb-src = paket sumber (opsional, untuk kompilasi sendiri).
Gunakan mirror terdekat untuk kecepatan unduh optimal:
| Mirror | Lokasi |
|---|---|
| Datautama (Surabaya) | Jawa Timur |
| UGM (Yogyakarta) | DIY |
| Kambing (UI) | Depok |
| CBN (Jakarta) | DKI Jakarta |
| OpenSUSE (ID) | Multi |
Selalu jalankan setelah mengubah repository.
# Perbarui daftar paket dari repository apt update # Upgrade semua paket ke versi terbaru apt upgrade -y # Full upgrade (termasuk perubahan dependensi) apt full-upgrade -y # Bersihkan paket yang tidak diperlukan apt autoremove -y apt clean
Banyak software populer menyediakan repository sendiri (Docker, Nginx, PostgreSQL, dll).
# 1. Install dependensi apt install ca-certificates curl gnupg -y # 2. Tambah GPG key (penting! untuk verifikasi paket) install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | \ gpg --dearmor -o /etc/apt/keyrings/docker.gpg chmod a+r /etc/apt/keyrings/docker.gpg # 3. Tambah repository (format baru DEB822) echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ tee /etc/apt/sources.list.d/docker.list > /dev/null # 4. Update dan install apt update apt install docker-ce docker-ce-cli -y
# 1. Tambah GPG key Nginx curl -fsSL https://nginx.org/keys/nginx_signing.key | \ gpg --dearmor -o /usr/share/keyrings/nginx-archive-keyring.gpg # 2. Tambah repository echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] https://nginx.org/packages/debian bookworm nginx" | \ tee /etc/apt/sources.list.d/nginx.list # 3. Update dan install apt update apt install nginx -y
apt akan menolak
repository tersebut dengan error no public key found.
Jika repository tidak lagi dibutuhkan atau menyebabkan error.
# Hapus file repository dari sources.list.d/ rm /etc/apt/sources.list.d/docker.list # Hapus GPG key yang terkait rm /etc/apt/keyrings/docker.gpg # Update daftar paket apt update # === Alternatif: gunakan add-apt-repository (jika terinstall) === add-apt-repository --remove 'deb [arch=amd64] https://download.docker.com/linux/debian bookworm stable' apt update
Perintah-perintah berikut untuk memastikan semua konfigurasi berjalan dengan benar.
# Lihat semua interface dan IP ip addr show # Lihat hanya IPv4 ip -4 addr show # Cara lama ifconfig # Contoh output yang benar: 2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
ip route show # Output yang benar harus ada default gateway: default via 192.168.1.1 dev eth0 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100
# Cek DNS yang digunakan resolvectl status # Test resolusi nama domain nslookup google.com dig google.com +short # Jika dig belum terinstall: apt install dnsutils -y
# Ping gateway (harus reply) ping -c 4 192.168.1.1 # Ping DNS server (harus reply) ping -c 4 8.8.8.8 # Ping domain (menguji DNS + routing sekaligus) ping -c 4 google.com # Test HTTP (jika port terbuka) curl -I https://debian.org
# Cek semua repository yang aktif dan paket count apt-cache policy # Cari paket tertentu apt-cache search nginx # Lihat detail paket apt-cache show nginx # Cek apakah ada error di repository apt update 2>&1 | grep -i "err\|warn\|fail"
#!/bin/bash echo "=== IP Address ===" && ip -4 addr show eth0 | grep inet echo "=== Gateway ===" && ip route | grep default echo "=== DNS ===" && resolvectl status | grep "DNS Server" echo "=== Internet ===" && ping -c 1 -W 2 google.com &>/dev/null && echo "OK" || echo "GAGAL" echo "=== Repository ===" && apt-cache policy | grep -c "bookworm" | xargs -I {} echo "{} repo aktif"
/etc/resolv.conf — pastikan symlink ke systemd-resolved sudah benar. Atau tambahkan DNS manual: echo "nameserver 8.8.8.8" > /etc/resolv.confip link set eth0 upapt-key del [KEY_ID], lalu tambahkan ulang dari sumber resmi.apt update, cek typo nama paket, atau tambahkan repository yang menyediakan paket tersebut.sources.list./etc/network/interfaces) adalah metode klasik Debian yang sudah dipakai sejak lama. systemd-networkd adalah metode modern yang terintegrasi dengan ekosistem systemd. Untuk server baru, keduanya bisa dipilih. Yang penting: jangan campur keduanya untuk interface yang sama.
resolv.conf dikelola oleh systemd-resolved dan bersifat symlink. Jika Anda edit langsung, perubahan akan hilang setelah restart. Solusi: edit konfigurasi DNS di /etc/systemd/resolved.conf (seperti di panduan ini), atau set DNS= di file interface. Jika ingin manual, hilangkan symlink dan buat file biasa, lalu set atribut immutable: chattr +i /etc/resolv.conf.
deb.debian.org. Tapi untuk server di Indonesia, mirror lokal jauh lebih cepat karena lokasi servernya lebih dekat. Perbedaan kecepatan bisa 5–10x lipat. Selalu gunakan mirror terdekat dengan lokasi server Anda.
screen atau tmux, jalankan perintah restart, lalu coba koneksi baru. Jika gagal, sesi screen/tmux masih bisa diakses via console (VNC/IPMI).
eth0 untuk jaringan publik (WAN) dengan IP statis, eth1 untuk jaringan lokal (LAN) dengan IP subnet berbeda. Jangan menambahkan gateway di kedua interface — hanya satu default gateway yang boleh ada.