होस्टनाम - वे सब क्या हैं?


54

मुझे हाल ही में कुछ sysadmin काम करने के लिए "मजबूर" किया गया है, जबकि यह कुछ ऐसा नहीं है जिसे मैं बिल्कुल प्यार कर रहा हूं जिसे मैं पढ़ रहा हूं, प्रयोग कर रहा हूं और बहुत कुछ सीख रहा हूं।

सर्वर कॉन्फ़िगरेशन का एक मूलभूत पहलू है जिसे मैं होस्ट नहीं कर सका हूं - होस्टनाम

उदाहरण के लिए, उबंटू में होस्टनाम को इस तरह सेट करना चाहिए ( लिनोड लाइब्रेरी के अनुसार ):

echo "plato" > /etc/hostname
hostname -F /etc/hostname

फ़ाइल: / etc / मेजबान

127.0.0.1        localhost.localdomain        localhost
12.34.56.78      plato.example.com            plato

मुझे लगता है कि platoयह एक मनमाना नाम है और यह plato.example.comFQDN है।

अब मेरे प्रश्न हैं:

  • क्या यह अनिवार्य है?
  • किस उद्देश्य से?
  • इसकी आवश्यकता / उपयोग कहां है?
  • मैं "लोकलहोस्ट" को हर मशीन के होस्टनाम के रूप में परिभाषित क्यों नहीं कर सकता?
  • क्या मुझे plato.example.comFQDN के लिए DNS प्रविष्टि सेट अप करनी है ?
  • क्या plato.example.comमेरे आईपी के लिए रिवर्स डीएनएस प्रविष्टि के रूप में उपयोग किया जाना चाहिए ?

इसके अलावा, वहाँ किसी भी "सर्वोत्तम प्रथाओं" होस्टनाम चुनने के लिए कर रहे हैं? मैंने ग्रीक अक्षरों, ग्रह के नाम और यहां तक ​​कि पौराणिक आंकड़ों का उपयोग करते हुए लोगों को देखा है ... जब हम पत्र / ग्रहों से बाहर निकलते हैं तो क्या होता है?

मुझे खेद है अगर यह एक गूंगा प्रश्न है, लेकिन मैं नेटवर्क कॉन्फ़िगरेशन के साथ बहुत उत्साही नहीं हूं।


3
मुझे लगता है कि क्रिस एस यहां से बाहर है। सवाल - एक सिस्टम होस्टनाम क्या है और यह डीएनएस से कैसे संबंधित है - एक वैध है।
लार्क्स

@ क्रिस एस: मुझे यह मिल गया, मेरा विश्वास करो। मैंने इसे एक बार पढ़ने की कोशिश की लेकिन पूरी बात ने मुझे बहुत भ्रमित कर दिया। मैं एक एसए होने की आकांक्षा नहीं कर रहा हूं, बस मूल बातें थोड़ा बेहतर समझने की कोशिश कर रहा हूं।
एलिक्स एक्सल

यह सामुदायिक विकि पर जाना चाहिए
lynxman

1
@ विलक्समैन: मुझे इससे कोई आपत्ति नहीं है, लेकिन क्यों?
एलिक्स एक्सल

1
क्योंकि यह बहुत दिलचस्प है :)
lynxman

जवाबों:


28

इन दिनों, एक सिस्टम में कई इंटरफेस हो सकते हैं, प्रत्येक में कई पते हो सकते हैं और प्रत्येक पते में कई DNS प्रविष्टियाँ भी हो सकती हैं। तो "सिस्टम होस्टनाम" का क्या अर्थ है?

कई अनुप्रयोग सिस्टम होस्टनाम का उपयोग डिफ़ॉल्ट पहचानकर्ता के रूप में करेंगे जब वे कहीं और संवाद करेंगे। उदाहरण के लिए, यदि आप केंद्रीय सर्वर पर syslog संदेश एकत्र कर रहे हैं, तो संदेश सभी को मूल प्रणाली के होस्टनाम के साथ टैग किया जाएगा। एक आदर्श दुनिया में आप शायद इसे अनदेखा करेंगे (क्योंकि आप जरूरी ग्राहक पर भरोसा नहीं करना चाहते हैं), लेकिन डिफ़ॉल्ट व्यवहार - यदि आपने अपने सभी सिस्टम को "लोकलहोस्ट" नाम दिया है - तो आपको लॉग संदेशों का एक गुच्छा मिलेगा। एक विशिष्ट प्रणाली के साथ संबद्ध करने में सक्षम नहीं होगा।

जैसा कि अन्य लोगों ने बताया है, सिस्टम होस्टनाम भी एक उपयोगी पहचानकर्ता है यदि आप अपने आप को दूरस्थ रूप से कई सिस्टम तक पहुंच पाते हैं। यदि आपको "लोकलहोस्ट" नामक सिस्टम से जुड़ी हुई पाँच खिड़कियां मिल गई हैं, तो आपको उन्हें सीधे रखने में मुश्किल समय आने वाला है।

एक समान नस में, हम सिस्टम को होस्टनाम से मेल खाने की कोशिश करते हैं जो हम उस होस्टनाम से मेल खाते हैं जिसका उपयोग हम सिस्टम में प्रशासनिक पहुंच के लिए करते हैं। यह प्रणाली (ईमेल, बातचीत, प्रलेखन, आदि) का जिक्र करते समय भ्रम से बचने में मदद करता है।

DNS के बारे में:

आप भ्रम से बचने के लिए अपने अनुप्रयोगों के लिए उचित फॉरवर्ड और रिवर्स डीएनएस प्रविष्टियाँ चाहते हैं। लोगों को आपके एप्लिकेशन को आसानी से एक्सेस करने में सक्षम होने के लिए आपको कुछ फॉरवर्ड एंट्री (नाम -> आईपी एड्रेस) की आवश्यकता है। रिवर्स एंट्री मैच कई कारणों से उपयोगी है - उदाहरण के लिए, यह आपको एप्लिकेशन की सही पहचान करने में मदद करता है यदि आपको लॉग में संबंधित आईपी एड्रेस मिलता है।

ध्यान दें कि यहां मैं "एप्लिकेशन" के बारे में बात कर रहा हूं और "सिस्टम" नहीं, क्योंकि - विशेष रूप से वेब सर्वर के साथ - एक सिस्टम पर कई आईपी पते होना आम है, विभिन्न होस्टनाम और सेवाओं के साथ जुड़ा हुआ है।

अपनी /etc/hostsफ़ाइल में आईपी मैपिंग के लिए नाम बनाए रखने की कोशिश करना जल्दी से मुश्किल हो जाता है क्योंकि आप सिस्टम की बढ़ती संख्या का प्रबंधन करते हैं। DNS के संबंध में स्थानीय होस्ट फ़ाइल के लिए सिंक से बाहर गिरना बहुत आसान है, संभवतः भ्रम और कुछ मामलों में खराबी के कारण (क्योंकि कुछ आईपी पते से बंधने की कोशिश करता है जो अब सिस्टम पर मौजूद नहीं है, उदाहरण के लिए)।


आपके उत्तर के लिए धन्यवाद, मैं अभी भी उलझन में हूं अगर मुझे DNS प्रविष्टियों पर भरोसा करने के बजाय / (/) / / होस्ट फ़ाइल बनाए रखना चाहिए।
एलिक्स एक्सल

8
मैं आमतौर पर /etc/hostsDNS के पक्ष में उपेक्षा करता हूं । यह उन स्थानों की संख्या को कम कर देता है जो मैं नाम -> पता मानचित्रण के बारे में जानकारी बनाए रखने के लिए करता हूं। मेरे द्वारा बनाए गए सिस्टम के थोक में, /etc/hostsकेवल एकल प्रविष्टि है localhost
लार्क्स

जब आप क्लस्टर से निपटते हैं - जैसे कि गनेटी या लिनक्स-हा / कोरोसिंक क्लस्टर - / etc / मेजबानों का उपयोग क्लस्टर के सदस्यों के बीच बात करने के लिए किया जाता है। यह डीएनएस पर पूरी तरह से भरोसा करने के लिए बुरा है क्योंकि आपकी DNS सेवा उन समूहों पर हो सकती है और नोड परिवर्तन के दौरान माइग्रेट या ऑफ़लाइन हो सकती है, इसलिए / आदि / होस्ट और एक सही होस्टनाम आपको एक महान समय में मदद करेगा।
coredump

इसलिए, "अद्वितीय" के बारे में, हम "अद्वितीय" होने की बजाय "अद्वितीय" होने की "कोशिश" कर रहे हैं, सही है? क्योंकि वहाँ बहुत सारे सर्वर हैं और वे सभी एक ही दायरे में हैं, वास्तविक "अद्वितीय" होना असंभव है। क्या यह समझ सही है?
shenkwen

10

आप प्रत्येक होस्टनाम को "लोकलहोस्ट" पर सेट कर सकते हैं, लेकिन alix@plato ~ $जब आप ssh पर मशीनों का प्रबंधन करते हैं तो आपके कमांड प्रॉम्प्ट में यह बहुत आसान होता है । यदि आप नहीं करते हैं तो सर्वर को दूरस्थ रूप से प्रबंधित करना बहुत भ्रामक हो सकता है।

जब आप किसी वेब सर्वर, या मेल सर्वर की मेजबानी करते हैं, तो सही FQDN होना महत्वपूर्ण है। इस प्रकार के सर्वर एप्लिकेशन यह जानना चाहते हैं कि "वे" किस पर चल रहे हैं।

एक अच्छी नामकरण योजना चुनने के लिए, मैं आपको इस बहुत लोकप्रिय प्रश्न का संदर्भ देता हूं ।

एक FQDN केवल तभी उपयोगी हो जाता है जब वह दूसरे कंप्यूटर के लिए सार्थक हो। इसके तीन स्तर हैं:

  • आपके स्थानीय नेटवर्क के एक कंप्यूटर में उसकी होस्ट फ़ाइल में एक प्रविष्टि है जो उस मशीन की ओर इशारा करती है
  • आपके पास अपने स्थानीय नेटवर्क और प्रत्येक स्थानीय कंप्यूटर पर एक DNS सर्वर चल रहा है जो इसे DNS सर्वर के रूप में उपयोग करता है जिसे अब प्लेटो नाम से जानता है।
  • आप एक डोमेन नाम रजिस्टर करते हैं और अब पूरी दुनिया जानती है कि plato.alixaxel.com नाम किस मशीन की ओर इशारा करता है।

जब बाहरी दुनिया को ईमेल या वेब पेज भेजते हैं, तो तीसरा वही होता है जो आप चाहते हैं। अधिकांश अन्य मामलों के लिए, आप स्थानीय DNS या यहां तक ​​कि होस्ट फ़ाइलों को संपादित करने के साथ कर सकते हैं।

उस स्थिति में, आप केवल अपने स्थानीय नेटवर्क के भीतर उपयोग के लिए एक डोमेन नाम (plato.alixnetwork एक FQDN के रूप में ठीक हो सकता है) बना सकते हैं। "Alixnetwork" भाग (डोमेन नाम) रखने का एकमात्र जोड़ा मूल्य सुविधा है जब आपके पास एक और स्थानीय नेटवर्क होता है जिसे आप इससे अलग करना चाहते हैं।


धन्यवाद केनी, मुझे लगता है कि मेरा मुख्य संदेह यही है कि एक वेब / मेल सर्वर के लिए उचित FQDN होना क्यों महत्वपूर्ण है। इसके अलावा, एक "उचित" FQDN का गठन क्या है? क्या मुझे होस्टनाम को डोमेन पर भेजना चाहिए और इसे सार्वजनिक आईपी पते पर इंगित करना चाहिए? मैं इस धारणा के अधीन हूं कि मुझे होस्टनाम के साथ ए / एएएए डीएनएस प्रविष्टियां बनानी हैं, नहीं?
एलिक्स एक्सल

यह इस बात पर निर्भर करता है कि आप क्या हासिल करना चाहते हैं। यदि आप प्लेटो के साथ ईमेल नहीं भेजते हैं या वेबपृष्ठों की सेवा नहीं करते हैं, तो वास्तव में उस मशीन के लिए वैश्विक DNS रिकॉर्ड बनाने की कोई आवश्यकता नहीं है।
केनी रस्साचर

"आप एक डोमेन नाम रजिस्टर करते हैं और अब पूरी दुनिया जानती है कि plato.alixaxel.com नाम किस मशीन की ओर इशारा करता है।" - मुझे यह समझ में नहीं आता। क्या पूरी दुनिया को पता नहीं है कि plato.alixaxel.com नाम की मशीन "alixaxel.com" के DNS रिज़ॉल्यूशन को चेक करके क्या बताती है? रैंडम मशीन में FQDN सेट करने के साथ इसका क्या करना है?
shenkwen

8

एक बुनियादी अवलोकन। होस्टनाम सिर्फ पॉइंटर्स हैं; आप मशीन द्वारा संदर्भित होस्टनाम होने के लिए एक विशिष्ट एक असाइन कर सकते हैं, लेकिन यह कई हो सकता है। कुछ सेवाएँ, उल्लेखनीय मेल और HTTP यह जानने के लिए डोमेन नामों पर निर्भर करती हैं कि सेवाएं कहाँ होनी चाहिए और उन्हें कैसे प्राप्त किया जाए।

एक लंबे समय से पहले, इन सभी नामों (जो फिर से, आईपी पते के लिए केवल संकेत हैं) को एक फ़ाइल में ट्रैक किया गया था hosts। जैसे-जैसे सिस्टम बढ़ता गया वे विभिन्न इंटरकनेक्टेड नेटवर्कों में भाग लेने वाले सभी संबंधित कंप्यूटरों में फाइल को सिंक्रोनाइज़ करने में असमर्थ रहे। इसलिए डीएनएस सिस्टम का आविष्कार किया गया था। जब आप एक नाम खोज करते हैं, तो यह अभी भी होस्ट फ़ाइल को पहले चेक करता है, फिर DNS सिस्टम को। विंडोज़ अन्य प्रणालियों जैसे कि WINS या NetBIOS की भी जाँच कर सकता है।

जब आप किसी hostsफ़ाइल में एक प्रविष्टि डालते हैं, तो आप उसे कंप्यूटर को नहीं सौंप रहे हैं। होस्टनाम को असाइन करना क्योंकि कंप्यूटर द्वारा उपयोग किया जाने वाला एक कॉन्फ़िगरेशन फ़ाइलों में (* निक्स सिस्टम पर) और सिस्टम गुण विंडोज सिस्टम में किया जाता है (विंडोज सिस्टम में एनआईसी विशिष्ट प्रत्यय भी हो सकते हैं)।

प्रविष्टियां hostsफ़ाइल, डीएनएस सिस्टम की तरह, एक IP पता करने के लिए एक होस्ट नाम से सिर्फ एक मानचित्रण कर रहे हैं। होस्टनाम 'लोकलहोस्ट' का उपयोग करने के लिए (इसके बारे में कुछ खास नहीं है, यह बाकी सभी की तरह एक होस्टनाम है) इसे लूपबैक इंटरफेस में मैप किया जाना चाहिए (इसलिए यह हमेशा स्थानीय कंप्यूटर को इंगित करेगा)। इस काम को सुनिश्चित करने के लिए, सभी कंप्यूटर अपनी hostsफ़ाइल में इस डिफ़ॉल्ट मैपिंग के साथ आते हैं , लेकिन इसे संभावित रूप से हटाया जा सकता है, यदि आप उस होस्टनाम का उपयोग करने में सक्षम नहीं होना चाहते हैं।

इसके अलावा, जैसा कि अन्य ने उल्लेख किया है, यह एक कंप्यूटर के लिए एक होस्टनाम निर्दिष्ट करने के लिए बहुत उपयोगी है। जब कंप्यूटर से जुड़ा होता है, तो आप लॉगिन करते समय, या अपने प्रॉम्प्ट के रूप में, या अन्य स्थानों की किसी भी संख्या में इसका होस्टनाम प्रदर्शित कर सकते हैं। यह आपके द्वारा आसानी से कनेक्ट किए गए कंप्यूटर की पहचान करता है। यदि आप उस होस्टनाम को DNS में सेटअप करते हैं या उसे सभी hostsफाइलों में डालते हैं , तो आप हर समय इसके आईपी पते को जानने के बजाय इसके होस्टनाम को संदर्भित करके कंप्यूटर से कनेक्ट कर पाएंगे। (इससे भी अधिक उपयोगी है यदि कंप्यूटर डीएचसीपी का उपयोग कर रहा है, जैसा कि पता बदल सकता है। यदि कंप्यूटर DNS को अपडेट करता है, तो DNS रिकॉर्ड नए आईपी पते को इंगित करेगा; आप अभी भी नए आईपी पते को जानने के बिना कनेक्ट कर सकते हैं क्योंकि आप DNS नाम को जानते हैं। )।

दोनों hostsऔर डीएनएस के कई अन्य उपयोग हैं , लेकिन मुझे संदेह है कि यदि आप यह सब पढ़ते हैं तो आपको उत्तर से अधिक प्रश्न मिलेंगे।


4
प्रश्न के साथ हताशा की अपनी प्रारंभिक भावना के बावजूद एक अच्छा उत्तर लिखने के लिए समय निकालने के लिए +1।
केनी रस्साचर

बहुत बढ़िया व्याख्या! अगर मेरी समझ सही है FQDN को रखना /etc/hostsआवश्यक नहीं है, तो DNS प्रविष्टि में होस्टनाम होने से वही परिणाम प्राप्त होगा, है ना?
एलिक्स एक्सल

2
@ एलीक्स, सही है, अगर डीएनएस (और डीएनएस ठीक से काम कर रहा है) में है तो इसे hostsफाइल में रखना बेमानी होगा। इसके अलावा hostsफ़ाइल में प्रविष्टि DNS को ओवरराइड करेगी (कभी-कभी परीक्षण के लिए उपयोगी, जब आप इसके बारे में भूल जाते हैं तो कष्टप्रद)। ध्यान दें कि यह सब ए और एएएए रिकॉर्ड के संबंध में है, होस्टनाम के लिए अन्य प्रकार के रिकॉर्ड हैं, लेकिन मैंने उन्हें स्पष्टता से छोड़ दिया।
क्रिस एस

धन्यवाद क्रिस, यह सब कुछ बहुत अधिक स्पष्ट करता है।
एलिक्स एक्सल

5

कभी भी मेजबान को एक सार्थक नाम दिया जाना चाहिए। होस्टनाम कई उद्देश्यों को सर्वर कर सकता है:

1- यह आपको पहचानने में मदद करता है कि आप किस समय काम कर रहे हैं।

2- /etc/hostsकई आईपी एड्रेस को याद रखने की तुलना में और / या DNS रिकॉर्ड्स में कॉन्फ़िगर किए गए नामों का उपयोग करना आसान है।

3- लोकलहोस्ट वर्तमान मशीन (पता 127.0.0.1) को संदर्भित करने के लिए एक आरक्षित नाम है।

4- आपके सर्वर को सार्वजनिक रूप से सुलभ बनाने के लिए DNS रिकॉर्ड उपयोगी होते हैं।

प्रत्येक सर्वर के लिए एक उपयुक्त नाम चुनना आपके प्रशासन में आपकी बहुत मदद करता है। साथ ही, यह आपके क्लाइंट को आपके सर्वर तक पहुँचने में मदद करता है।


2

बस एक साइड नोट के रूप में: ठीक से आगे काम करना और डीएनएस रिज़ॉल्यूशन को उल्टा करना इस ग्रह पर हर आईटी इंस्टालेशन की पूर्ण आधारशिला है। कभी भी एक अच्छी तरह से बनाए रखा DNS और उचित hostname संकल्प की आवश्यकता को कम मत समझना!


मैं नहीं समझ सकता कि यह महत्वपूर्ण क्यों है। मेरे पास एक linode सर्वर है जो कई वेबसाइटों को होस्ट करता है। होस्टनाम सेट करने के उद्देश्य को न समझते हुए, मैं इसे बस वैसे ही छोड़ देता हूं जैसे कि "ubuntu" है। यह सर्वर कुछ सालों से चल रहा है और मुझे कभी कोई असुविधा नहीं होती है। मैं आपके उत्तर पर सवाल नहीं उठा रहा हूं, मैं सिर्फ यह समझने की कोशिश कर रहा हूं कि hostname क्यों महत्वपूर्ण है। मेरे मामले में, मैं कब चाहूंगा कि मैंने ठीक से होस्टनाम सेट किया है?
shenkwen

1
@shenkwen - यदि आपके पास ईमानदारी से केवल एक सर्वर है, तो आप इसे अपनी दिल की इच्छाओं को नाम दे सकते हैं, और यह स्पष्ट रूप से मायने नहीं रखेगा। जैसे ही सर्वरों की संख्या 1 से अधिक हो जाती है, आपके पास प्रबंधन करने के लिए नई समस्याएं हैं, और उचित नामकरण एक महत्वपूर्ण उपकरण है।
mfinni

1

अस्वीकरण: मुख्य प्रश्न लिनक्स सिस्टम के बारे में है, इसलिए इस उत्तर को अनदेखा करने के लिए स्वतंत्र महसूस करें यदि आप समस्या के विंडोज पक्ष में रुचि नहीं रखते हैं।

वैसे भी, विंडोज सिस्टम में, अन्य उत्तरों में उल्लिखित सभी बिंदुओं के अलावा, होस्टनाम वास्तव में ओएस द्वारा स्वयं का उपयोग किया जाता है, नेटवर्किंग और प्रमाणीकरण प्रयोजनों के लिए; विशेष रूप से:

  • प्रत्येक प्रणाली, एक डोमेन सदस्य हो या न हो, एक ही नेटवर्क (यानी एक ही आईपी सबनेट में) के लिए एक विशिष्ट नाम होना आवश्यक है , अन्यथा नामकरण संघर्ष को बढ़ावा मिलेगा और विभिन्न नेटवर्क सेवाएं (मुख्य रूप से फ़ाइल और प्रिंट साझाकरण) नहीं होंगी काम।
  • सभी सिस्टम जो समान सक्रिय निर्देशिका डोमेन के सदस्य हैं, को नेटवर्क सीमाओं की परवाह किए बिना एक अद्वितीय नाम की आवश्यकता होती है।
  • एक डोमेन वातावरण में, एक सिस्टम का होस्टनाम एक सुरक्षा प्रिंसिपल के रूप में कार्य करता है और रिमोट प्रमाणीकरण के लिए इस्तेमाल किया जा सकता है (बस मशीन के लिए उपयोगकर्ता खाते के रूप में इसके बारे में सोचो); इसे अनुमतियाँ और पहुँच अधिकार दिए जा सकते हैं और सुरक्षा उद्देश्यों के लिए समूहों में रखा जा सकता है। यह अंतर्निहित LocalSystemऔर NetworkServiceउपयोगकर्ता खातों का उपयोग करके सिस्टम पर चलने वाली सभी प्रक्रियाओं को प्रभावित करता है , जो कि वे जिस सिस्टम पर चल रहे हैं, उसके क्रेडेंशियल्स का उपयोग करके अन्य सिस्टम को प्रमाणित कर सकते हैं; यह NetworkServiceSystemA पर चल रही प्रक्रिया को SystemA के उपयोगकर्ता खाते में फ़ोल्डर पर अनुमति देकर SystemB पर एक साझा फ़ोल्डर तक पहुंचने की अनुमति देता है।

-1

कई साइटें और / या माना जाने वाला 'प्रवेश' अब यह बता रहे हैं कि 'hostname' विशेषता में OS उदाहरण का FQDN है, जो 'रिज़ॉल्यूशन' को जोड़ने वाले किसी भी रिज़ॉल्यूशन को तोड़ता है:

hostname
system1.domain1.org

पिंग hostname
- system1.domain1.org.domain1.org को हल नहीं कर सकता


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