Setiap mesin Linux membawa satu nama yang dipakai kernel, jaringan, dan berbagai program untuk menyebut dirinya sendiri: hostname. Nama ini muncul di prompt shell, tercatat di setiap baris log, dan menjadi bagian dari identitas mesin di jaringan — Chapter System Information
sudah memakai hostnamectl untuk membacanya. Tugas kita sekarang ke arah sebaliknya: mengganti nama itu dengan benar. Perubahan hostname tampak sepele, tetapi melibatkan dua file konfigurasi, konvensi penamaan FQDN, dan efek samping yang membuat sudo terasa lambat bila salah urus.
Nama Mesin di Jaringan: Hostname dan FQDN #
Hostname adalah label pendek milik satu mesin, misalnya server-kantor. Nama lengkapnya di jaringan disebut FQDN (fully qualified domain name): hostname ditambah domain, misalnya server-kantor.kantor.example. Perintah hostname mencetak nama pendek, sedangkan hostname -f mencetak FQDN hasil resolusi lewat /etc/hosts lalu DNS. Nama yang boleh dipakai dibatasi konvensi tua yang tetap dipatuhi tool modern: huruf, angka, dan tanda hubung; nama tidak boleh diawali atau diakhiri tanda hubung, dan sebaiknya tidak lebih dari 63 karakter agar aman sebagai label DNS (detail di hostname(1)
). Pola pemeriksaannya bisa kita uji langsung:
for kandidat in server-kantor laptop_budi "web 01"; do
if printf '%s' "$kandidat" | grep -Eq '^[a-zA-Z0-9]([a-zA-Z0-9.-]*[a-zA-Z0-9])?$'; then
echo "$kandidat: valid"
else
echo "$kandidat: tidak valid"
fi
doneOutput yang Dihasilkan:
server-kantor: valid
laptop_budi: tidak valid
web 01: tidak validBedah blok tersebut:
- Baris 1:
formenguji tiga kandidat — satu yang sah dan dua jebakan yang sering dipakai orang. - Baris 2: regex mengharuskan nama dimulai dan diakhiri alfanumerik; di tengah boleh titik dan tanda hubung.
- Baris 3 dan 5: dua cabang
echomencetak vonis per kandidat —laptop_budiditolak karena garis bawah,web 01ditolak karena spasi.
Dua File yang Menyimpan Identitas #
Nama permanen sebuah mesin Debian tersimpan di dua tempat. File /etc/hostname berisi satu baris nama pendek yang dibaca saat boot. File /etc/hosts memetakan nama ke alamat IP tanpa DNS, termasuk baris khusus 127.0.1.1 milik Debian untuk FQDN mesin ber-IP dinamis; format lengkapnya dijabarkan hosts(5)
. Karena keduanya di bawah /etc, mengubahnya butuh root — di lab kita periksa salinan dengan isi tipikal:
mkdir -p etc
printf 'server-kantor\n' > etc/hostname
printf '127.0.0.1 localhost\n127.0.1.1 server-kantor.kantor.example server-kantor\n' > etc/hosts
cat etc/hostname etc/hostsOutput yang Dihasilkan:
server-kantor
127.0.0.1 localhost
127.0.1.1 server-kantor.kantor.example server-kantor- Baris 1–3: folder
etcdi direktori kerja diisi salinan dua file identitas; di mesin sungguhan, file aslinya berada di/etcdan hanya root yang boleh menulis. - Baris 4:
catmembacahostnamelaluhosts— isi keduanya sengaja konsisten. - Baris
127.0.0.1: pemetaan wajib untuklocalhost. - Baris
127.0.1.1: alamat loopback kedua yang memetakan FQDN dan alias pendeknya; inilah sumber jawabanhostname -f.
Cara kerja resolusi FQDN itu bisa kita lihat langsung dengan mengambil kolom kedua dari baris 127.0.1.1:
mkdir -p etc
printf '127.0.0.1 localhost\n127.0.1.1 server-kantor.kantor.example server-kantor\n' > etc/hosts
awk '$1 == "127.0.1.1" { print $2 }' etc/hostsOutput yang Dihasilkan:
server-kantor.kantor.exampleProgram awk memilih baris yang kolom pertamanya 127.0.1.1, lalu mencetak kolom keduanya — FQDN mesin. Di mesin sungguhan, hostname -f menempuh jalur resolver penuh (/etc/hosts lalu DNS) dan berhenti di jawaban pertama, sehingga baris 127.0.1.1 yang rapi menentukan hasilnya.
Mengubah Nama dengan hostnamectl #
Alat resmi systemd untuk mengganti nama adalah hostnamectl set-hostname web01 yang dijalankan root; perintah ini langsung menulis /etc/hostname. Berikut contoh tampilan hostnamectl setelah nama server kantor diganti:
Static hostname: web01
Pretty hostname: Web Kantor 01
Chassis: server
Machine ID: 1a2b3c4d5e6f7890abcdef1234567890
Boot ID: 3f9e2c8a1d4b5e6f7a8b9c0d1e2f3a4b
Operating System: Debian GNU/Linux 13 (trixie)
Kernel: Linux 6.1.0-18-amd64
Architecture: x86-64hostnamectl membedakan tiga jenis nama: static yang tersimpan di /etc/hostname, transient yang bisa ditimpa sementara oleh DHCP atau mDNS, dan pretty — nama bebas huruf Unicode seperti Web Kantor 01 yang hanya untuk tampilan manusia (rujukan sub-perintahnya ada di hostnamectl(1)
). Pada sistem tanpa systemd, padanan manualnya adalah menulis /etc/hostname lalu menjalankan hostname web01 agar berlaku tanpa menunggu reboot.
Urutan aman mengganti hostname:
- Pilih nama yang lolos aturan penamaan di atas.
- Jalankan
sudo hostnamectl set-hostname web01. - Perbarui baris
127.0.1.1di/etc/hostsdengan nama baru. - Keluar dan masuk lagi agar prompt ikut berganti, lalu verifikasi dengan
hostname -f.
Waktu dan nama mesin kini terkelola rapi. Urusan administratif berikutnya menyangkut momen paling kritis dalam hidup sebuah server: saat mesin harus dimatikan dan dinyalakan kembali dengan tertib — topik Chapter Power Management .