Ayarlamak için ana makine adı do kullanımını hostnamectl
ancak böyle hostname ile:
hostnamectl set-hostname nodename
(DNS) alan adı düzenleme /etc/hosts
dosyasını ayarlamak ve şunlardan emin olun:
- Bir çizgi var
<machine's primary, non-loopback IP address> <hostname>.<domainname> <hostname>
var
- Başka satır yoktur
<some IP> <hostname>
ve buna 127.0.0.1
ve ::1
(IPv6) adresli satırlar da dahildir .
NIS kullanmadığınız sürece (none)
,domainname
komutu .
DNS alan adınızın doğru ayarlanıp ayarlanmadığını dnsdomainname
kontrol etmek için komutunu kullanın ve hostname
vs hostname -f
(FQDN) çıktısını kontrol edin .
NIS ve DNS etki alanı
İlk karşılaştığımda bu konu beni şaşırttı. domainname
Komutun internetin popülaritesinden önce geldiği anlaşılıyor . DNS etki alanı adı yerine, sistemin NIS (Ağ Bilgi Hizmeti) aka YP (Sarı Sayfalar) etki alanı adını (ana NIS sunucusu tarafından sağlanan hizmetlere sahip bir bilgisayar grubu) gösterir veya ayarlar . Bu komut yalnızca getdomainname(2)
standart kitaplık işlevi tarafından döndürülen adı görüntüler . ( nisdomainname
veypdomainname
bu komut için alternatif adlardır.)
FQDN veya DNS alan adını görüntüleme
Kontrol etmek için DNS (Internet) alan adı, çalıştırmak gerektiğini dnsdomainname
komutu ya hostname
sahip -d, --domain
seçenekler. (dnsdomainname
Komutun DNS etki alanı adını ayarlamak için kullanılamayacağını - yalnızca görüntülemek için kullanılır.)
Sistemin FQDN'sini (Tam Nitelikli Etki Alanı Adı) görüntülemekhostname
için -f, --fqdn, --long
seçeneklerle çalıştırın (aynı şekilde bu komut, etki alanı adı bölümünü ayarlamak için kullanılamaz).
Yukarıdaki komutlar gethostbyname(3)
, DNS etki alanı adını ve FQDN'yi belirlemek için sistemin çözümleyicisini ( POSIX tarafından belirtildiği gibi standart kitaplıktaki işlev tarafından uygulanır ) kullanır.
Ad çözümlemesi
RHEL 7 gibi modern işletim sistemlerinde, hosts
giriş /etc/nsswitch.conf
ana bilgisayar adlarını çözümlemek için kullanılır. CentOS 7 makinenizde bu hat şu şekilde yapılandırılmıştır (CentOS 7 için varsayılan):
hosts: files dns
Bu, çözümleyici işlevleri ana bilgisayar adlarını veya IP adresini aradığında, önce /etc/hosts
dosyadaki bir girdiyi kontrol ettikleri ve daha sonra listelenen DNS sunucularını/etc/resolv.conf
.
Bir hostname -f
ana bilgisayarın FQDN'sini almaya çalışırken , çözümleyici işlevleri sistemin ana makine adı için FQDN'yi almaya çalışır. Ana makine /etc/hosts
dosyada veya ilgili DNS sunucusu tarafından listelenmemişse , deneme başarısız olur ve bunu hostname
bildirir Name or service not known
.
Zaman hostname -d
alan adı elde edilmesi için çalıştırılan, aynı işlemler gerçekleştirilir ve alan adı kısmı ana bilgisayar bölümü ve FQDN'den ilk nokta sıyırma ile belirlenir.
Alan adını yapılandırın
1. İlgili DNS ad sunucusunu güncelleyin
Benim durumumda, yerel LAN'ım için DNS sunucusuna yeni CentOS 7 makinem için bir giriş ekledim, bu nedenle veya seçeneği ile /etc/hosts
çalıştırdığımda FQDN dosyada bulunamadığında , yerel DNS hizmetleri yeni ana bilgisayar adımın FQDN'sini tam olarak çözün.hostname
-d
-f
2. /etc/hosts
Dosyayı kullanın
DNS sunucusu yapılandırılmamışsa, /etc/hosts
dosyada tam etki alanı adı belirtilebilir . Bunu yapmanın en yaygın yolu, sistemin birincil IP adresini ve ardından FQDN'sini ve kısa ana bilgisayar adını belirtmektir. Örneğin,
172.22.0.9 nodename.domainname nodename
hostname
Man sayfasından alıntı
FQDN'yi hostname
veya ile değiştiremezsiniz dnsdomainname
.
FQDN'yi ayarlamanın önerilen yöntemi, ana bilgisayar adını /etc/hosts,
DNS veya NIS kullanarak tam nitelikli ad için bir diğer ad yapmaktır . Örneğin, ana bilgisayar adı "ursula" ise, /etc/hosts
şu satırda bir satır olabilir :
27.0.1.1 ursula.example.com ursula
Teknik olarak: FQDN, gethostname (2) tarafından döndürülen ana bilgisayar adı için döndürülen getaddrinfo (3) adıdır. DNS etki alanı adı, ilk noktadan sonraki bölümdür.
Bu nedenle, çözümleyicinin (genellikle içinde /etc/host.conf
) nasıl değiştirebileceğinizi yapılandırmasına bağlıdır
. Genellikle hosts dosyası DNS veya NIS'den önce ayrıştırılır, bu nedenle FQDN'yi değiştirmek en yaygın olanıdır
/etc/hosts
.
hostname -f
komut CentOS vm'de çalışmıyor.