Saya ingin menunjukkan trik sulap. Buka prompt shell favorit Anda, dan ketik:
[skipworthy@showme ~]$ hostname
showme
hostname
perintah disediakan di Linux untuk menanyakan "siapa" yang menurut komputer itu. Bagaimana itu bisa terjadi? Bagaimana komputer saya tahu apa namanya? Saya akan menunjukkan cara melakukannya sebentar lagi, tetapi pertama-tama, izinkan saya menunjukkan yang lain:
[root@showme skipworthy]# hostnamectl set-hostname spot
[root@showme skipworthy]# hostname
spot
Terima kasih sekali lagi untuk systemd
(yang diterapkan di sebagian besar tetapi tidak semua distribusi GNU/Linux modern, termasuk sistem berbasis Red Hat) mengubah nama komputer Linux Anda cukup mudah. (Omong-omong, nama di prompt akan berubah dengan login berikutnya.) Saya telah membahas bagaimana DNS memungkinkan kita mengidentifikasi komputer di jaringan dengan memetakan nama ke alamat IP. Ini adalah di sisi lain dari itu. Di sini Anda melihat bagaimana mesin mengidentifikasi dirinya sendiri, yang penting untuk membuat hal-hal seperti otentikasi berfungsi dengan baik jika komputer adalah bagian dari domain.
[ Anda mungkin juga senang membaca: 10 perintah dasar Linux yang perlu Anda ketahui ]
Setelah perangkat keras dihitung dan driver telah dimuat saat boot, pada distribusi berbasis systemd, bootloader memuat dan menjalankan systemd
skrip. Menjelang awal proses ini adalah ketika nama host disetel:
2.653601] rtc_cmos 00:00: setting system clock to 2020-11-17 19:36:44 UTC (
1605641804)
[ 2.654885] Freeing unused kernel memory: 1980k freed
[ 2.655179] Write protecting the kernel read-only data: 12288k
[ 2.657125] Freeing unused kernel memory: 416k freed
[ 2.658710] Freeing unused kernel memory: 552k freed
[ 2.663220] random: systemd: uninitialized urandom read (16 bytes read)
[ 2.663530] random: systemd: uninitialized urandom read (16 bytes read)
[ 2.663543] random: systemd: uninitialized urandom read (16 bytes read)
[ 2.667147] systemd[1]: systemd 219 running in system mode. (+PAM +AUDIT +SEL
INUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +
XZ +LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
[ 2.667189] systemd[1]: Detected virtualization kvm.
[ 2.667200] systemd[1]: Detected architecture x86-64.
[ 2.667204] systemd[1]: Running in initial RAM disk.
[ 2.667250] systemd[1]: Set hostname to <showme>.
[ 2.701020] random: systemd: uninitialized urandom read (16 bytes read)
Selain itu, dalam sistem di mana systemd
tidak mengelola ruang pengguna, Anda dapat mengonfigurasi nama host dalam beberapa file. File-file ini sebenarnya di mana systemd
mencari info ini dan mencatatnya saat Anda menggunakan hostnamectl
memerintah. hostname
dan hostnamectl
perintah sebenarnya menggunakan panggilan sistem tingkat kernel bernama gethostname
, getdomainname
, dan beberapa fungsi yang disediakan oleh resolver
panggilan sistem. Ini telah ada sejak awal sejarah kernel Linux. Ini adalah panggilan sistem yang sama yang digunakan oleh shell untuk mengisi nama mesin di prompt, di antara tempat-tempat lain.
Kedua file yang akan Anda lihat berada di /etc
, yang akan Anda ingat adalah lokasi default untuk sebagian besar file yang digunakan untuk mengonfigurasi dan mengelola sistem Linux. Yang pertama disebut, dengan tepat, /etc/hostname
:
[root@showme skipworthy]# cat /etc/hostname
showme
Cukup sederhana:Saat Anda memanggil hostname
dari prompt shell, Linux melihat /etc/hostname
berkas untuk jawabannya. Anda juga dapat menggunakan hostname
perintah untuk mengubah nama komputer, tetapi di kernel yang dikelola systemd, biasanya lebih disukai menggunakan hostnamectl
perintah sebagai gantinya.
File lainnya adalah /etc/hosts
, di situlah Linux mencari untuk menerjemahkan alamat IP ke nama sebelum memeriksa /etc/resolv.conf
untuk informasi DNS. Berikut adalah /etc/hosts
berkas:
[skipworthy@showme ~]$ cat /etc/hosts
127.0.0.1 showme.forest showme
192.168.11.111 showme.forest showme
192.168.0.200 Jupiter
192.168.0.100 uhura
Beberapa baris pertama adalah yang ingin Anda lihat. Perhatikan formatnya adalah:
ip address fqdn alias
Jadi, Anda memiliki alamat IP , lalu namahost.namadomain (atau Nama Domain yang Sepenuhnya Memenuhi Syarat ), diikuti dengan nama host . Anda juga dapat menambahkan alias atau alias domain tambahan jika digunakan di lingkungan.
Gunakan -f
beralih saat Anda memanggil hostname
perintah untuk melihat FQDN host Anda:
[skipworthy@showme ~]$ hostname -f
showme.forest
[ Unduh sekarang:Panduan sysadmin untuk skrip Bash. ]
hostnamectl
command memiliki beberapa sakelar dan flag lain yang menarik dan berguna:Anda dapat mengatur jenis lingkungan (pengembangan vs. produksi, misalnya), dan Anda bahkan dapat meletakkan catatan lokasi (rak 3, ruang 200, misalnya). Anda dapat menanyakan dan mengatur ini dari jarak jauh. Seperti biasa, Anda dapat mempelajari semua hal keren dari halaman manual yang bagus.