होस्टनाम की बजाय FQDN को / etc / hostname में उपयोग करना चाहिए?


10

जैसा कि मैंने मैन पेज में पढ़ा है, इसमें होस्टनाम (बिना डोमेन नाम) डालने की सिफारिश की गई है /etc/hostname। उदाहरण के लिए, host.domainsub.domaintld के बजाय होस्ट करें लेकिन, जैसा कि मुझे पता है, कुछ सॉफ्टवेयर FQDNमें होने पर निर्भर करता है /etc/hostname

/etc/hostname डेबियन / उबंटू मशीनों पर किसी को क्या निर्दिष्ट करना चाहिए ?

यदि FQDN नहीं है, तो इसके बजाय FQDN को कहां निर्दिष्ट किया जाना चाहिए?

मुझे पता है, सवाल थोड़ा पुराना है, लेकिन स्पष्ट जवाब नहीं मिला। कुछ लोग होस्टनाम कहते हैं, कुछ - FQDN। धन्यवाद।


1
आप उन लोगों को कहां खोज रहे हैं जो कह रहे हैं कि आपने FQDN को / etc / hostname फ़ाइल में रखा है? वह फ़ाइल केवल सिस्टम के होस्टनाम के लिए है।
टेरेंस

जब इंटरनेट पर इसके बारे में पठन सामग्री कहीं से मिली। और जहां एक को अपने FQDN को निर्दिष्ट करना चाहिए?
बुलट एम।

@ ट्रेरेंस, वास्तव में मैं क्षेत्र के अनुभवी लोगों से उत्तर प्राप्त करना चाहता हूं, इसलिए वे बताते हैं कि इसे शुरू से "सही" कैसे करना है। उत्तर के रूप में लिखें। और उन वितरणों में क्या करें जिनके पास / etc / hostname नहीं है?
Bulat M.

जवाबों:


7

/ Etc / hostname फ़ाइल में आप केवल hostname का उपयोग करते हैं। जिस FQDN पर आप सेट कर सकते हैं: / etc / मेजबान जो दिख सकते हैं:

127.0.1.1        thishost.mydomain.org    thishost

मेजबान फ़ाइल के मैनुअल के अनुसार।

http://man7.org/linux/man-pages/man5/hosts.5.html


1
FIX: धन्यवाद, हालांकि यह पेशेवरों और विपक्षों के बारे में जानना / निर्दिष्ट करना / FQDN को / etc / hostname में निर्दिष्ट नहीं करना होगा। मुझे आपके समाधान के बारे में पता है: यह उन प्रोग्रामों के लिए एक स्टब है जो FQDN को किसी चीज़ के लिए हल करना चाहते हैं (जो पता करने के लिए कोई फर्क नहीं पड़ता) काम करने के लिए।
बुलट एम।

12

संशोधित उत्तर:

होस्ट स्वयं वास्तविक FQDN को संभालता नहीं है। यह DNS द्वारा नियंत्रित किया जाता है । FQDN (पूरी तरह से योग्य डोमेन नाम) को DNS द्वारा आईपी पते में नाम अनुवाद करके नियंत्रित किया जाता है। /etc/hostsफ़ाइल का उपयोग करना , आप अनिवार्य रूप से DNS सर्वर को ओवरराइड कर रहे हैं। कंप्यूटर /etc/hostsपहली बार फ़ाइल को देखता है कि क्या एक प्रविष्टि को आईपी पते के होस्टनाम के लिए परिभाषित किया गया है। /etc/hostsनिम्नलिखित की तरह प्रविष्टियाँ इस प्रकार हैं:

127.0.0.1 localhost
127.0.1.1 terrance-ubuntu.local terrance-ubuntu

ये प्रविष्टियाँ विशिष्ट विशिष्ट नहीं हैं। सभी OS इन पंक्तियों के लिए एक ही प्रारूप का उपयोग करते हैं। बस hostsफ़ाइल का स्थान बदलता है। लिनक्स, आमतौर पर यह /etc/फ़ोल्डर में स्थित होता है , जहां विंडोज में यह आमतौर पर C:\Windows\System32\drivers\etc\फ़ोल्डर में स्थित होता है ।

उस पंक्ति को तोड़ते हुए, आप देख सकते हैं कि मैं दोनों को असाइन कर रहा हूं terrance-ubuntu.local, जो DNS को ओवरराइड करने के लिए स्वयं मेरा FQDN है ताकि एप्लिकेशन मेरे कंप्यूटर को नहीं छोड़ें, और terrance-ubuntu, जो होस्टनाम है, फिर से ताकि एप्लिकेशन को पता चले कि मेरे कंप्यूटर को छोड़ना नहीं है या 127.0.0.1 ( लोकलहोस्ट )। मेरे सिस्टम के मेरे होस्टनाम को असाइन करने 127.0.1.1से नेटवर्क पर मेरे होस्ट को खोजने वाले बाकी कंप्यूटरों पर कोई प्रभाव नहीं पड़ता है। यदि DNS ठीक से काम कर रहा है, तो वे मेरा होस्टनाम देखेंगे 10.0.0.100। उपयोग करने का कारण 127.0.1.1मेरे अनुप्रयोगों के लिए मेरे सिस्टम को जल्दी ढूंढना है क्योंकि यह पता चलेगा कि मेरा सिस्टम मेरे नेटवर्क पर कहीं और नहीं है। मेरा वास्तविक होस्टनाम .localमेरे FQDN होने के साथ , द.local वास्तव में मेरा डोमेन है जिसे मैंने अपने राउटर के माध्यम से सेटअप किया है जो मेरे नेटवर्क पर एक और डीएनएस सर्वर भी है।

अब, मान लें कि स्थानीय नेटवर्क पर DNS सेवाएँ होस्ट पतों या FQDNs को IP पतों को असाइन नहीं कर रही हैं, लेकिन फिर भी आप जानते हैं कि स्थानीय नेटवर्क पर होस्ट का IP पता क्या है। फिर आप अपनी /etc/hostsफ़ाइल में उस होस्ट को असाइन करेंगे ताकि आपको हर बार उस होस्ट के आईपी पते में टाइप करने की आवश्यकता न पड़े जिसे आप उसे एक्सेस करना चाहते हैं। होस्ट एक टूल सर्वर, प्रिंटर या कुछ अन्य नेटवर्क से जुड़ा सिस्टम हो सकता है। प्रविष्टि को आप सामान्य रूप से /etc/hostsफ़ाइल में जोड़ें।

मैं उदाहरण के लिए अपने नेटवर्क से जुड़े प्रिंटर का उपयोग करने जा रहा हूं। इसमें 10.0.0.253 का स्टैटिक आईपी है। मैं हालांकि इसका नाम नहीं जानता। इसके लिए मैं इसे बुलाना चाहता हूं hp_printer। मैं इसके लिए आईपी और होस्टनाम को पिंग करूंगा, फिर जोड़ें /etc/hosts

terrance@terrance-ubuntu:~$ ping -c 2 10.0.0.253
PING 10.0.0.253 (10.0.0.253) 56(84) bytes of data.
64 bytes from 10.0.0.253: icmp_seq=1 ttl=255 time=0.326 ms
64 bytes from 10.0.0.253: icmp_seq=2 ttl=255 time=0.334 ms

terrance@terrance-ubuntu:~$ ping -c 2 hp_printer
ping: unknown host hp_printer

terrance@terrance-ubuntu:~$ sudo vi /etc/hosts
10.0.0.253 hp_printer.local hp_printer

terrance@terrance-ubuntu:~$ ping -c 2 hp_printer
PING hp_printer.local (10.0.0.253) 56(84) bytes of data.
64 bytes from hp_printer.local (10.0.0.253): icmp_seq=1 ttl=255 time=0.334 ms
64 bytes from hp_printer.local (10.0.0.253): icmp_seq=2 ttl=255 time=0.303 ms

अब, मैं अपने प्रिंटर सेटअप के लिए वेबपेज का उपयोग उस नाम पर भी कर सकता हूं, जिसे मैंने आईपी पते के बजाय दिया था जिसे याद रखना आसान हो सकता है:

यहाँ छवि विवरण दर्ज करें

आपकी /etc/resolv.conf फ़ाइल का उपयोग DNS द्वारा होस्टनाम खोजने में मदद करने के लिए भी किया जाता है। यह रिज़ॉल्वर के लिए कॉन्फ़िगरेशन फ़ाइल है। यह खोज डोमेन प्रदान करता है ताकि आपको अपने FQDN को हर समय निर्दिष्ट न करना पड़े जब आप एक होस्ट की तलाश कर रहे हों। यह आपके स्थानीय नेटवर्क के DNS या नेमसर्वर के लिए IP पते की आपूर्ति करता है। searchशो नीचे लाइन नाम localजो मेरे डोमेन नाम है।

terrance@terrance-ubuntu:~$ cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.0.0.1
search local

उम्मीद है कि यह DNS और FQDNs के काम करने की बेहतर समझ देने में मदद करता है।


आप 127.0.1.1 को FQDN / etc / मेजबानों में मैप क्यों करते हैं?
एम।

1
@BulatM। कृपया मेरा संशोधित उत्तर देखें।
टेरेंस

क्या आप /etc/resolv.conf में खोज और डोमेन कीवर्ड के बीच अंतर बता सकते हैं? मैं resolv.conf का मैन पेज पढ़ रहा हूं, फिर भी बहुत स्पष्ट नहीं है।
बुलट एम।

और क्या कोई उन दोनों को शामिल कर सकता है? क्या आप उत्तर में उपयोगी वैध मामला प्रस्तुत कर सकते हैं? धन्यवाद।
बुलट एम।

1
@BulatM। मेरे उत्तर के लिंक पर क्लिक करें, और वे आपको चीजों के बारे में अधिक जानकारी के लिए ले जाते हैं। जैसे en.wikipedia.org/wiki/Resolv.conf ज्यादा जानकारी देता है। मैं यहाँ आपकी मदद करने के लिए हूँ, आपको सिखाने के लिए नहीं। मुझे भुगतान नहीं मिलता है, क्योंकि यह सभी स्वयंसेवक हैं, इसलिए कृपया अपना स्वयं का कुछ अध्ययन करें।
टेरेंस

4

इस परhostname(1) चर्चा का मुख्यपृष्ठ (बोल्ड पैराग्राफ में मेरे द्वारा जोर दिया गया है):

FQDN
   सिस्टम का FQDN (पूरी तरह से योग्य डोमेन नाम) वह नाम है जोरिसोल्वर (3) इस तरह के, के रूप में होस्ट नाम के लिए रिटर्न, ursula.example.com ।
   यह आमतौर पर DNS डोमेन नाम (भाग) के बाद होस्टनाम है
   पहली डॉट के बाद)। आप होस्टनाम --fqdn   या का उपयोग करके FQDN की जांच कर सकते हैं
   डोमेन नाम dnsdomainname का उपयोग कर ।

   आप होस्टनाम या dnsdomainname के साथ FQDN नहीं बदल सकते ।

   FQDN सेट करने की अनुशंसित विधि होस्टनाम बनाने के लिए है
   / etc / मेजबान, DNS, या NIS का उपयोग करके पूरी तरह से योग्य नाम के लिए एक उपनाम।
   उदाहरण के लिए, यदि होस्टनाम "ursula" था, तो किसी में एक पंक्ति हो सकती है
   / etc / होस्ट जो पढ़ता है

          127.0.1.1 ursula.example.com ursula

   तकनीकी रूप से: FQDN होस्ट के लिए getaddrinfo (3) रिटर्न है
   नाम gethostname (2) द्वारा लौटाया गया। DNS डोमेन नाम के बाद का हिस्सा है
   पहली बिंदी।

   इसलिए यह रिज़ॉल्वर के कॉन्फ़िगरेशन पर निर्भर करता है (आमतौर पर अंदर
   /etc/host.conf) आप इसे कैसे बदल सकते हैं। आमतौर पर होस्ट्स फ़ाइल को पार्स किया जाता है
   DNS या NIS से पहले, इसलिए FQDN को बदलना सबसे आम है
   / Etc / hosts।

और यदि आप स्थापना के दौरान होस्टनाम के रूप में एक FQDN देते हैं, तो यह केवल FQDN को FQDN लिखता है /etc/hostnameऔर रखता है /etc/hosts

तो, इस मामले में, बस इंस्टॉलर को वह करने दें जो वह करता है।


क्या यह (127.0.1.1 ursula.example.com ursula in / etc / मेजबान में शामिल करना) डेबियन \ Ubuntu विशिष्ट है या किसी अन्य डिस्ट्र के साथ भी समान रूप से लागू किया जा सकता है?
बुल्लेट एम।

1
अन्य विकृतियों के बारे में पता नहीं। आप आर्क और सेंट ओएस में भी ऐसा ही कर सकते हैं। अन्य डिस्ट्रो के बारे में प्रश्न यूनिक्स और लिनक्स से पूछे जाने चाहिए ।
मूरू
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.