Untuk mengatur nama host lakukan gunakan hostnamectl, tetapi hanya dengan nama host, seperti ini:
hostnamectl set-hostname nodename
Untuk mengatur file edit nama domain (DNS)/etc/hosts dan memastikan bahwa:
- Ada garis di
<machine's primary, non-loopback IP address> <hostname>.<domainname> <hostname>sana
- Tidak ada jalur lain dengan
<some IP> <hostname>, dan ini termasuk jalur dengan 127.0.0.1dan ::1(IPv6) alamat.
Perhatikan bahwa kecuali Anda menggunakan NIS, (none)adalah output yang benar ketika menjalankan domainnameperintah.
Untuk memeriksa apakah nama domain DNS Anda diatur dengan benar, gunakan dnsdomainnameperintah dan periksa keluaran hostnamevs hostname -f(FQDN).
NIS vs domain DNS
Masalah ini membingungkan saya ketika saya pertama kali menemukannya. Tampaknya domainnameperintah itu mendahului popularitas Internet. Alih-alih nama domain DNS, ini menunjukkan atau menetapkan sistem NIS (Layanan Informasi Jaringan) alias YP (Yellow Pages) nama domain (sekelompok komputer yang memiliki layanan yang disediakan oleh server NIS master). Perintah ini hanya menampilkan nama yang dikembalikan oleh getdomainname(2)fungsi perpustakaan standar. ( nisdomainnamedan ypdomainnamemerupakan nama alternatif untuk perintah ini.)
Menampilkan nama domain FQDN atau DNS
Untuk memeriksa nama domain DNS (Internet), Anda harus menjalankan dnsdomainnameperintah atau hostnamedengan -d, --domainopsi. (Perhatikan bahwa dnsdomainnameperintah tidak dapat digunakan untuk mengatur nama domain DNS - hanya digunakan untuk menampilkannya.)
Untuk menampilkan FQDN (Fully Qualified Domain Name) dari sistem, jalankan hostnamedengan -f, --fqdn, --longopsi (demikian juga, perintah ini tidak dapat digunakan untuk mengatur bagian nama domain).
Perintah di atas menggunakan resolver sistem (diimplementasikan oleh gethostbyname(3)fungsi dari pustaka standar, sebagaimana ditentukan oleh POSIX) untuk menentukan nama domain DNS dan FQDN.
Resolusi Nama
Dalam sistem operasi modern seperti RHEL 7, hostsentri masuk /etc/nsswitch.confdigunakan untuk menyelesaikan nama host. Di mesin CentOS 7 Anda, baris ini dikonfigurasi sebagai (default untuk CentOS 7):
hosts: files dns
Ini berarti bahwa ketika fungsi resolver mencari nama host atau alamat IP, mereka pertama-tama memeriksa entri dalam /etc/hosts file dan kemudian mencoba server DNS yang terdaftar di /etc/resolv.conf.
Saat menjalankan hostname -funtuk mendapatkan FQDN dari sebuah host, fungsi resolver mencoba untuk mendapatkan FQDN untuk nama host sistem. Jika host tidak terdaftar dalam /etc/hostsfile atau oleh server DNS yang relevan, upaya gagal dan hostnamemelaporkannya Name or service not known.
Ketika hostname -ddijalankan untuk mendapatkan nama domain, operasi yang sama dilakukan, dan bagian nama domain ditentukan dengan menghapus bagian nama host dan titik pertama dari FQDN.
Konfigurasikan nama domain
1. Perbarui server nama DNS yang relevan
Dalam kasus saya, saya sudah menambahkan entri untuk mesin CentOS 7 baru saya di server DNS untuk LAN lokal saya sehingga ketika FQDN tidak ditemukan dalam /etc/hostsfile ketika saya berlari hostnamedengan opsi -datau -f, layanan DNS lokal dapat sepenuhnya menyelesaikan FQDN untuk nama host baru saya.
2. Gunakan /etc/hostsfile
Jika server DNS belum dikonfigurasi, nama domain yang memenuhi syarat dapat ditentukan dalam /etc/hostsfile. Cara paling umum untuk melakukan ini adalah dengan menentukan alamat IP utama sistem diikuti dengan FQDN dan nama host pendeknya. Misalnya,
172.22.0.9 nodename.domainname nodename
Kutipan dari hostnamehalaman manual
Anda tidak dapat mengubah FQDN dengan hostnameatau dnsdomainname.
Metode pengaturan FQDN yang disarankan adalah menjadikan nama host menjadi alias untuk nama yang sepenuhnya memenuhi syarat menggunakan /etc/hosts,DNS, atau NIS. Misalnya, jika nama host adalah "ursula", orang mungkin memiliki baris di /etc/hostsmana berbunyi:
27.0.1.1 ursula.example.com ursula
Secara teknis: FQDN adalah nama getaddrinfo (3) yang dikembalikan untuk nama host yang dikembalikan oleh gethostname (2). Nama domain DNS adalah bagian setelah titik pertama.
Karena itu tergantung pada konfigurasi resolver (biasanya dalam
/etc/host.conf) bagaimana Anda dapat mengubahnya. Biasanya file host diuraikan sebelum DNS atau NIS, jadi itu paling umum untuk mengubah FQDN di
/etc/hosts.
hostname -fperintahnya tidak berfungsi pada CentOS vm saya.