होस्टनाम सेट करने के लिए उपयोग करें hostnamectl
, लेकिन केवल होस्टनाम के साथ, जैसे:
hostnamectl set-hostname nodename
सेट करने के लिए (DNS) domainname संपादित /etc/hosts
फ़ाइल और सुनिश्चित करें कि:
- वहां एक लाइन
<machine's primary, non-loopback IP address> <hostname>.<domainname> <hostname>
है
- वहाँ नहीं के साथ अन्य लाइनें हैं
<some IP> <hostname>
, और इस के साथ लाइनें शामिल हैं 127.0.0.1
और ::1
(IPv6) पतों।
ध्यान दें कि जब तक आप एनआईएस का उपयोग नहीं कर रहे हैं, कमांड (none)
चलाते समय सही आउटपुट है domainname
।
यह जाँचने के लिए कि क्या आपका DNS डोमेननाम सही ढंग से सेट है dnsdomainname
और hostname
बनाम hostname -f
(FQDN) के आउटपुट की जाँच करें ।
एनआईएस बनाम डीएनएस डोमेन
जब मैंने पहली बार इसे देखा तो इस मुद्दे ने मुझे उलझन में डाल दिया। ऐसा लगता है कि domainname
कमांड इंटरनेट की लोकप्रियता का अनुमान लगाता है। डीएनएस डोमेन नाम के बजाय, यह सिस्टम के एनआईएस (नेटवर्क सूचना सेवा) उर्फ वाईपी (येलो पेज) डोमेन नाम (कंप्यूटर का एक समूह जिसमें मास्टर एनआईएस सर्वर द्वारा प्रदान की गई सेवाएं हैं) दिखाता या सेट करता है । यह कमांड केवल getdomainname(2)
मानक लाइब्रेरी फ़ंक्शन द्वारा लौटाए गए नाम को प्रदर्शित करता है । ( nisdomainname
और ypdomainname
इस कमांड के लिए वैकल्पिक नाम हैं।)
FQDN या DNS डोमेन नाम प्रदर्शित करें
DNS (इंटरनेट) डोमेन नाम की जांच करने के लिए , आपको dnsdomainname
कमांड या विकल्पों के hostname
साथ चलना चाहिए -d, --domain
। (ध्यान दें कि dnsdomainname
डीएनएस डोमेन नाम सेट करने के लिए कमांड का उपयोग नहीं किया जा सकता है - यह केवल इसे प्रदर्शित करने के लिए उपयोग किया जाता है।)
सिस्टम के FQDN (पूरी तरह से योग्य डोमेन नाम) को प्रदर्शित करने के लिए, विकल्पों के hostname
साथ चलाएं -f, --fqdn, --long
(इसी तरह, इस कमांड का उपयोग डोमेन नाम भाग को सेट करने के लिए नहीं किया जा सकता है)।
gethostbyname(3)
डीएनएस डोमेन नाम और FQDN को निर्धारित करने के लिए उपरोक्त कमांड सिस्टम के रिसॉल्वर ( मानक लाइब्रेरी से फ़ंक्शन द्वारा कार्यान्वित , POSIX द्वारा निर्दिष्ट) का उपयोग करते हैं।
नाम का संकल्प
आरएचईएल 7 जैसे आधुनिक ऑपरेटिंग सिस्टम में, hosts
प्रविष्टि /etc/nsswitch.conf
का उपयोग मेजबान नामों को हल करने के लिए किया जाता है। आपके CentOS 7 मशीन में, यह पंक्ति इस रूप में कॉन्फ़िगर की गई है (CentOS 7 के लिए डिफ़ॉल्ट):
hosts: files dns
इसका मतलब यह है कि जब रिज़ॉल्वर फ़ंक्शंस होस्टनाम या आईपी पते को देखता है, तो वे पहले /etc/hosts
फ़ाइल में एक प्रविष्टि की जांच करते हैं और इसके बाद DNS सर्वर (एस) को सूचीबद्ध करते हैं /etc/resolv.conf
।
hostname -f
होस्ट के FQDN को प्राप्त करने के लिए दौड़ते समय , रिज़ॉल्वर फ़ंक्शन सिस्टम के होस्टनाम के लिए FQDN प्राप्त करने का प्रयास करता है। यदि होस्ट /etc/hosts
फ़ाइल में या प्रासंगिक DNS सर्वर द्वारा सूचीबद्ध नहीं है, तो प्रयास विफल हो जाता है और hostname
रिपोर्ट करता है Name or service not known
।
जब hostname -d
डोमेन नाम प्राप्त करने के लिए चलाया जाता है, तो वही ऑपरेशन किए जाते हैं, और होस्टनाम भाग और FQDN से पहली डॉट को अलग करके डोमेन नाम भाग निर्धारित किया जाता है।
डोमेन नाम कॉन्फ़िगर करें
1. प्रासंगिक DNS नाम सर्वर को अपडेट करें
मेरे मामले में, मैंने अपने स्थानीय LAN के लिए DNS सर्वर में अपनी नई CentOS 7 मशीन के लिए एक प्रविष्टि पहले ही जोड़ दी थी, जब FQDN /etc/hosts
फ़ाइल में नहीं मिला था जब मैं या विकल्प के hostname
साथ भाग गया था , स्थानीय DNS सेवाओं में सक्षम थे मेरे नए होस्टनाम के लिए FQDN को पूरी तरह से हल करें।-d
-f
2. /etc/hosts
फ़ाइल का उपयोग करें
यदि DNS सर्वर कॉन्फ़िगर नहीं किया गया है, तो पूरी तरह से योग्य डोमेन नाम /etc/hosts
फ़ाइल में निर्दिष्ट किया जा सकता है । ऐसा करने का सबसे आम तरीका है कि सिस्टम के प्राथमिक आईपी पते को उसके FQDN और उसके लघु होस्टनाम के बाद निर्दिष्ट किया जाए। उदाहरण के लिए,
172.22.0.9 nodename.domainname nodename
hostname
मैन पेज से अंश
आप FQDN को hostname
या के साथ बदल नहीं सकते dnsdomainname
।
FQDN को सेट करने की अनुशंसित विधि होस्टनाम को /etc/hosts,
DNS, या NIS का उपयोग करके पूरी तरह से योग्य नाम के लिए एक अन्य नाम है । उदाहरण के लिए, यदि hostname "ursula" था, तो एक पंक्ति हो सकती है /etc/hosts
जिसमें लिखा हो:
27.0.1.1 ursula.example.com ursula
तकनीकी रूप से: FQDN नाम है getaddrinfo (3) gethostname (2) द्वारा लौटाए गए होस्ट नाम के लिए। डीएनएस डोमेन नाम पहले डॉट के बाद का हिस्सा है।
इसलिए यह रिज़ॉल्वर (आमतौर पर /etc/host.conf
) में कॉन्फ़िगरेशन पर निर्भर करता है
कि आप इसे कैसे बदल सकते हैं। आमतौर पर होस्ट फ़ाइल को DNS या NIS से पहले पार्स किया जाता है, इसलिए FQDN को बदलना सबसे आम है
/etc/hosts
।
hostname -f
कमांड मेरे CentOS vm पर काम नहीं करता है।