Debian Server — Administrasi Jaringan

Konfigurasi
IP Address & Repository

Panduan lengkap mengatur alamat IP (statis & DHCP) dan mengelola repository paket pada Debian 12 (Bookworm) Server — fondasi wajib sebelum membangun layanan apapun.

Mulai Membaca
45 menit Debian 12 root
IPv4
Statis & DHCP
DNS
Resolver Config
APT
Repository
GPG Key
Signing Keys
01

Memahami Alamat IP

Sebelum mengonfigurasi, penting memahami konsep dasar alamat IP di jaringan Linux.

Komponen Alamat IP

Setiap alamat IP terdiri dari dua bagian: alamat jaringan (network) dan alamat host. Subnet mask menentukan batas antara keduanya.

192.168.1.100
192.168.1
Bagian Jaringan
+
100
Bagian Host
Subnet Mask: 255.255.255.0 = /24

Subnet Mask Umum

CIDR Subnet Mask Jumlah Host Kegunaan
/24255.255.255.0254Jaringan kecil (LAN)
/25255.255.255.128126Subnet terpisah
/26255.255.255.19262VLAN kecil
/16255.255.0.065.534Jaringan besar

Statis vs DHCP

STABIL

IP Statis (Static)

Alamat IP ditetapkan manual dan tidak berubah. Wajib untuk server.

Tidak berubah setelah reboot
Bisa diakses dengan alamat tetap
Wajib untuk server, DNS, gateway
Harus dikonfigurasi manual
Risiko duplikasi jika tidak dicatat
OTOMATIS

IP DHCP (Dynamic)

Alamat IP diberikan otomatis oleh DHCP server. Cocok untuk client.

Tanpa konfigurasi manual
Menghindari konflik IP
Ideal untuk laptop, HP, client
IP bisa berubah sewaktu-waktu
Tidak cocok untuk server

File Konfigurasi Jaringan di Debian

/etc/network/interfaces
Konfigurasi IP utama (metode lama, masih banyak digunakan)
/etc/network/interfaces.d/
File konfigurasi per-interface (direkomendasikan)
/etc/resolv.conf
Konfigurasi DNS resolver (di Debian 12, dikelola systemd-resolved)
02

Konfigurasi IP Statis

Server memerlukan IP statis agar selalu bisa dijangkau. Berikut dua metode yang bisa digunakan di Debian 12.

1

Identifikasi Nama Interface

Cari tahu nama interface jaringan yang akan dikonfigurasi.

Terminal
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 ...
Catatan: Di Debian 12, nama interface bisa eth0 (prediktable), ens18 (systemd predictable naming), atau enp0s3. Ganti eth0 di contoh berikut dengan nama interface Anda.
2

Edit File Interfaces

Buka file konfigurasi dengan editor teks.

Terminal
nano /etc/network/interfaces
3

Tulis Konfigurasi IP Statis

Ganti seluruh isi file dengan konfigurasi berikut.

/etc/network/interfaces
# 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
4

Terapkan Konfigurasi

Restart layanan jaringan untuk menerapkan perubahan.

Terminal
# 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
Peringatan akses remote: Jika Anda mengubah IP melalui SSH, pastikan konfigurasi benar. Kesalahan bisa membuat Anda terkunci dari server. Gunakan systemctl restart networking && sleep 5 && echo OK untuk memastikan koneksi masih hidup, atau gunakan reboot dengan watchdog.
+

IP Alias (Beberapa IP di 1 Interface)

Tambahkan beberapa IP address pada satu interface fisik.

/etc/network/interfaces
# 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
ALTERNATIF

systemd-networkd

Metode modern menggunakan file konfigurasi terpisah per-interface. Cocok untuk server yang sudah sepenuhnya menggunakan systemd.

1

Aktifkan systemd-networkd

Terminal
systemctl enable --now systemd-networkd
systemctl disable networking   # nonaktifkan ifupdown
2

Buat File Konfigurasi

/etc/systemd/network/10-static.network
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
3

Terapkan

Terminal
systemctl restart systemd-networkd
networkctl status eth0
03

Konfigurasi IP DHCP

Jika server Anda berada di jaringan dengan DHCP server (router/modem), Anda bisa menggunakan DHCP client. Namun tidak direkomendasikan untuk server produksi.

1

Edit File Interfaces untuk DHCP

/etc/network/interfaces
source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

# === Interface dengan DHCP ===
auto eth0
iface eth0 inet dhcp
2

Pastikan Paket DHCP Client Terpasang

Terminal
# 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

Tips: DHCP Reservation di Router

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.

Cek MAC Address
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
04

Konfigurasi DNS Resolver

Tanpa DNS yang benar, server tidak bisa menyelesaikan nama domain (google.com, dll) menjadi IP address.

1

Install systemd-resolved

Terminal
apt update
apt install systemd-resolved -y
systemctl enable --now systemd-resolved
2

Konfigurasi DNS Server

/etc/systemd/resolved.conf
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=~.
3

Buat Symlink resolv.conf

Agar aplikasi menggunakan systemd-resolved.

Terminal
# 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
🌐
8.8.8.8
Google DNS
🛡️
1.1.1.1
Cloudflare DNS
🔒
9.9.9.9
Quad9 DNS
05

Konfigurasi Repository

Repository adalah sumber paket perangkat lunak. Konfigurasi yang benar memastikan Anda bisa menginstal, memperbarui, dan mengamankan software di server.

Apa Itu Repository?

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.

main
Paket resmi Debian (free & DFSG-compliant)
contrib
Paket free yang bergantung pada non-free
non-free
Paket dengan lisensi non-free (firmware, dll)
non-free-firmware
Firmware non-free (baru di Debian 12)
1

Lihat Repository Saat Ini

Terminal
# 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
2

Konfigurasi Repository Utama

Ganti isi /etc/apt/sources.list dengan mirror terdekat.

/etc/apt/sources.list
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
Struktur baris: deb [URL] [distribusi] [komponen1] [komponen2] ...
deb = paket biner, deb-src = paket sumber (opsional, untuk kompilasi sendiri).

Daftar Mirror Indonesia

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
3

Update & Upgrade

Selalu jalankan setelah mengubah repository.

Terminal
# 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
apt update
Hanya menyinkronkan daftar paket, tidak mengubah software
apt upgrade
Memperbarui paket yang ada tanpa menghapus atau menambah baru
apt full-upgrade
Memperbarui termasuk mengubah dependensi jika perlu (lebih agresif)
4

Menambah Repository Pihak Ketiga

Banyak software populer menyediakan repository sendiri (Docker, Nginx, PostgreSQL, dll).

Contoh: Menambah Repository Docker

# 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

Contoh: Menambah Repository Nginx

# 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
Mengapa GPG Key diperlukan?
GPG key memastikan bahwa paket yang Anda unduh benar-benar berasal dari pengembang resmi dan tidak dimanipulasi (tampered) di tengah jalan. Tanpa GPG key, apt akan menolak repository tersebut dengan error no public key found.
5

Menghapus Repository

Jika repository tidak lagi dibutuhkan atau menyebabkan error.

Terminal
# 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
06

Verifikasi Konfigurasi

Perintah-perintah berikut untuk memastikan semua konfigurasi berjalan dengan benar.

Cek Alamat IP

# 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

Cek Routing Table

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 Resolver

# 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

Cek Koneksi Internet

# 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 Repository

# 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"

Cepat: Script Verifikasi Sekaligus

#!/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"

Troubleshooting

"Temporary failure in name resolution"
DNS tidak bekerja. Cek /etc/resolv.conf — pastikan symlink ke systemd-resolved sudah benar. Atau tambahkan DNS manual: echo "nameserver 8.8.8.8" > /etc/resolv.conf
"Destination Host Unreachable"
Gateway tidak terjangkau. Cek kabel fisik, pastikan IP gateway benar, dan interface sudah UP: ip link set eth0 up
"The following signatures couldn't be verified"
GPG key repository bermasalah atau kadaluarsa. Hapus key lama: apt-key del [KEY_ID], lalu tambahkan ulang dari sumber resmi.
"E: Unable to locate package"
Paket tidak ada di repository yang terdaftar. Jalankan apt update, cek typo nama paket, atau tambahkan repository yang menyediakan paket tersebut.
"404 Not Found" saat apt update
URL repository salah atau mirror sudah tidak menyediakan versi tersebut. Ganti mirror atau perbaiki URL di sources.list.
07

Pertanyaan Umum

Apa bedanya /etc/network/interfaces dan systemd-networkd?
Keduanya melakukan hal yang sama (mengatur IP) dengan cara berbeda. ifupdown (/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.
Mengapa /etc/resolv.conf selalu berubah atau tertimpa?
Di Debian 12, 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.
Apakah harus pakai mirror Indonesia? Bisa pakai mirror resmi langsung?
Bisa. Mirror resmi Debian ada di 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.
Bagaimana cara mengubah IP tanpa kehilangan koneksi SSH?
Gunakan trik berikut: edit file interface, lalu jalankan perintah restart dengan timeout. Jika IP baru salah, koneksi akan timeout dan Anda bisa kembali dengan IP lama (belum berubah sampai restart service berhasil). Atau lebih aman: gunakan screen atau tmux, jalankan perintah restart, lalu coba koneksi baru. Jika gagal, sesi screen/tmux masih bisa diakses via console (VNC/IPMI).
Apa itu non-free-firmware yang baru di Debian 12?
Di Debian 12 (Bookworm), firmware non-free dipisahkan ke komponen baru bernama non-free-firmware. Ini berisi driver untuk perangkat keras yang bersifat closed-source (WiFi, GPU, NIC tertentu). Jika Anda menggunakan VPS atau server fisik dengan NIC standar (Intel/Realtek), biasanya tidak diperlukan. Tapi untuk server dengan hardware khusus, tambahkan komponen ini untuk menghindari masalah driver.
Bagaimana jika ada dua interface (eth0 dan eth1)?
Tambahkan blok konfigurasi untuk setiap interface. Contoh: 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.