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:

bash
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
done

Output yang Dihasilkan:

text
server-kantor: valid
laptop_budi: tidak valid
web 01: tidak valid

Bedah blok tersebut:

  1. Baris 1: for menguji tiga kandidat — satu yang sah dan dua jebakan yang sering dipakai orang.
  2. Baris 2: regex mengharuskan nama dimulai dan diakhiri alfanumerik; di tengah boleh titik dan tanda hubung.
  3. Baris 3 dan 5: dua cabang echo mencetak vonis per kandidat — laptop_budi ditolak karena garis bawah, web 01 ditolak 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:

bash
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/hosts

Output yang Dihasilkan:

text
server-kantor
127.0.0.1       localhost
127.0.1.1       server-kantor.kantor.example server-kantor
  1. Baris 1–3: folder etc di direktori kerja diisi salinan dua file identitas; di mesin sungguhan, file aslinya berada di /etc dan hanya root yang boleh menulis.
  2. Baris 4: cat membaca hostname lalu hosts — isi keduanya sengaja konsisten.
  3. Baris 127.0.0.1: pemetaan wajib untuk localhost.
  4. Baris 127.0.1.1: alamat loopback kedua yang memetakan FQDN dan alias pendeknya; inilah sumber jawaban hostname -f.

Cara kerja resolusi FQDN itu bisa kita lihat langsung dengan mengambil kolom kedua dari baris 127.0.1.1:

bash
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/hosts

Output yang Dihasilkan:

text
server-kantor.kantor.example

Program 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:

text
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-64

hostnamectl 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:

  1. Pilih nama yang lolos aturan penamaan di atas.
  2. Jalankan sudo hostnamectl set-hostname web01.
  3. Perbarui baris 127.0.1.1 di /etc/hosts dengan nama baru.
  4. 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 .