/ Etc / मेजबान का उद्देश्य क्या है?


21

जैसा कि मैं इसे समझता हूं, hostsफ़ाइल कई सिस्टम सुविधाओं में से एक है जो कंप्यूटर नेटवर्क में नेटवर्क नोड को संबोधित करने में सहायता करती है। लेकिन इसके अंदर क्या होना चाहिए? जब मैं डिफ़ॉल्ट रूप से Ubuntu स्थापित करता हूं

127.0.0.1 localhost 

वहाँ पहुँच जाएगा। क्यों?

  • कैसे /etc/hostsजेवीएम सिस्टम जैसे कैसंड्रा के मामले में काम करता है ?
  • जब DNS विकल्प होता है, तो मुझे लगता है कि एक भी कंप्यूटर पर नहीं?

बहुत से संबंधित: unix.stackexchange.com/questions/388875/...
Kusalananda

मेरे /etc/hostsशामिल हैं 127.0.0.2 mycouchdb bookmarkdb myothercouchappऔर 127.0.0.3 myapachi websiteमैं अपने स्थानीय मशीन पर चल रहे मेरे विकास में मेरी मदद करने के लिए इनका उपयोग करता हूं। मेरे पास पोर्ट 80 पर 3 सेवाएं हैं। मैं उन्हें DNS पर नहीं रखना चाहता, क्योंकि वे केवल स्थानीय हैं।
ctrl-alt-delor

क्या आपने कोशिश की है man 5 hosts?
मोनिका - एम। श्रोडर

क्या लिनक्स में इसके लिए एक मैन पेज नहीं है जहाँ इसे कुछ विस्तार से समझाया गया है? यह सवालों का सबसे मौलिक है।
रोब

जवाबों:


45

/etc/hostsइंटरनेट से जुड़े सभी होस्ट (DNS मौजूद होने से पहले) के लिए रिज़ॉल्यूशन फ़ाइल के रूप में DARPA के पुराने दिनों में फ़ाइल शुरू हुई। इसकी अधिकतम प्राथमिकता है, जिसका अर्थ है कि यह फ़ाइल किसी अन्य नाम प्रणाली के आगे पसंद की जाती है। 1

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

फ़ाइल की बहुत पुरानी अवधारणा /etc/hostsबहुत सरल है, बस एक पता और एक मेजबान नाम है:

127.0.0.1      localhost

प्रत्येक पंक्ति के लिए। यह पता-मेज़बान के जोड़े की एक सरल सूची है। 2

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


1 खैर, नाम समाधान का क्रम वास्तव में परिभाषित किया गया है /etc/nsswitch.conf, जिसमें आमतौर पर यह प्रविष्टि है:

hosts:          files dns

जिसका अर्थ है "फ़ाइलों का प्रयास करें ( /etc/hosts), और यदि यह विफल रहता है, तो DNS का प्रयास करें।"

लेकिन उस आदेश को बदला या बढ़ाया जा सकता था।


2 (वर्तमान दिनों में) मेजबानों की फ़ाइल में पाठ की पंक्तियाँ होती हैं जिसमें पहले पाठ क्षेत्र में एक या एक से अधिक होस्ट नाम के बाद IP पता होता है। प्रत्येक क्षेत्र को सफेद स्थान से अलग किया जाता है - टैब को अक्सर ऐतिहासिक कारणों से पसंद किया जाता है, लेकिन रिक्त स्थान का भी उपयोग किया जाता है। टिप्पणी लाइनें शामिल हो सकती हैं; उन्हें ऐसी रेखाओं की पहली स्थिति में एक ऑक्टोथोरपे (#) द्वारा इंगित किया जाता है। फ़ाइल में पूरी तरह से रिक्त लाइनों को अनदेखा किया जाता है। उदाहरण के लिए, एक सामान्य होस्ट फ़ाइल में निम्न शामिल हो सकते हैं:

127.0.0.1   localhost loopback
::1         localhost localhost6 ipv6-localhost ipv6-loopback mycomputer.local
192.168.0.8 mycomputer.lan
10.0.0.27   mycomputer.lan

इस उदाहरण में सिस्टम के लूपबैक पतों और उनके होस्ट नामों के लिए प्रविष्टियाँ हैं, पहली पंक्ति मेजबानों की फ़ाइल की एक सामान्य डिफ़ॉल्ट सामग्री है। दूसरी पंक्ति में कई अतिरिक्त (शायद केवल स्थानीय प्रणालियों में मान्य) नाम हैं। उदाहरण बताता है कि एक आईपी पते में कई होस्ट नाम (लोकलहोस्ट और लूपबैक) हो सकते हैं, और एक होस्ट नाम को आईपीवी 4 और आईपीवी 6 दोनों आईपी पते पर मैप किया जा सकता है, जैसा कि क्रमशः पहली और दूसरी पंक्ति में दिखाया गया है। एक नाम ( mycomputer.lan) कई पतों पर हल हो सकता है ( 192.168.0.8 10.0.0.27)। हालाँकि, उस स्थिति में, जिसका उपयोग किया जाता है, कंप्यूटर के लिए निर्धारित मार्गों (और उनकी प्राथमिकताओं) पर निर्भर करता है।

कुछ पुराने OS के पास किसी दिए गए नाम के पते की सूची रिपोर्ट करने का कोई तरीका नहीं था


5

डेस्कटॉप वातावरण में एक स्थानीय सिस्टम को एक मानव पठनीय नाम देने के लिए / etc / मेजबान फ़ाइल का उपयोग करना पूरी तरह से उचित है। मेजबानों की फ़ाइल एक होम नेटवर्क या यहां तक ​​कि एक छोटे से कारोबारी माहौल में उपयोग करने के लिए बहुत अच्छा है। यह इंटरनेट एड्रेसिंग की तरह सार्वजनिक पक्ष नहीं हो सकता है - तब आपको DNS की आवश्यकता होती है। यदि स्थानीय नेटवर्क काफी बड़ा है, या बस अलग-अलग उप-नेटवर्क में, या किसी अन्य उपयोगी कारण से कट जाता है, तो DNS को प्राथमिकता दी जाती है।

स्थानीय होस्ट फ़ाइल और DNS को अलग-अलग प्राथमिकता के साथ प्रबंधित किया जाता है, इसलिए कभी कोई विरोध नहीं होता है।


4
मैं संघर्षों के बारे में असहमत हूं, मुझे कई कठिन-से-डिबग समस्याएं हैं, क्योंकि मेजबान-प्रावधान-दर-समूह-ए-बासी बासी /etc/hostsप्रविष्टियां जो भविष्य में ऑपरेशन-बाय-ग्रुप-बी (मेरा समूह) को विफल करने का कारण बनीं , और हमने /etc/hosts
पवित्र

फ़ाइल के अंदर के संघर्ष बेशक बंद हो सकते हैं, लेकिन फिर यह मशीन के मालिक की गलती है :)
francois P

2
मैं कभी भी किसी भी टकराव से असहमत हूं। DNS परिवर्तनों के साथ परस्पर विरोधी बासी प्रविष्टियों के कारण मुझे बहुत अजीब त्रुटियों को डीबग करना पड़ा ।
रुई एफ रिबेरो

@thrig: शायद समस्या यह है कि आपके समूह प्रभावी रूप से / etc / मेजबान का उपयोग करने के लिए बहुत बड़े हैं। मेरे होम नेटवर्क पर 5 मशीनों (फिलहाल) के लिए पूरी तरह से काम करता है।
jamesqf

अच्छी तरह से सिस्टम को लगता है कि कोई संघर्ष नहीं है, यह चीजों की प्राथमिकता के रूप में स्पष्ट निर्देश है: p
StarWeaver

3

लिनक्स में, हिम्मत मैं कहता हूँ वहाँ हमेशा कम से कम होना चाहिए 127.0.0.1 localhostफ़ाइल के भीतर /etc/hosts के साथ ही के लिए इसी IPv6 पता स्थानीय होस्ट

यह केवल संख्यात्मक IPv4 या IPv6 पते के लिए होस्ट नाम रिज़ॉल्यूशन है। जब आप धरती पर कहीं (क) unix.stackexchange.com को नेटवर्क करने की कोशिश करते हैं, जो संभवतः आपके पास नहीं है, या (ख) आपके घर में स्थानीय क्षेत्र नेटवर्क पर myotherpc है, तो यह या तो /etc/hostsकुछ डोमेन नाम सर्वर (DNS) है होस्ट रिज़ॉल्यूशन कर रहा है, इसलिए जब आप unix.stackexchage.com टाइप करते हैं, जो कि एक मानव के रूप में है जिसे आप परवाह करते हैं, तो आपको इसके लिए 185.53.179.7 याद करने की ज़रूरत नहीं है , जो कि कंप्यूटर को वास्तव में जानना है।

जैसा कि बताया गया था, लिनक्स में /etc/nsswitchआम तौर पर होस्ट नाम रिज़ॉल्यूशन ऑर्डर को परिभाषित किया जाता है, जिसका अर्थ है एनआईएस की जाँच करने से पहले पहले डीएनएस की जांच करें, फिर अंतिम रूप से फ़ाइल की जांच करें /etc/hostsअन्यथा होस्ट नहीं मिला

आप ऑर्डर की जाँच कैसे करते हैं और DNS / NIS सेवा का प्रबंधन कौन और कहाँ / कहाँ / करता है या आप पर निर्भर है, या आप केवल जाँच करने के लिए / etc / nsswitch द्वारा सब कुछ ओवरराइड कर सकते हैं /etc/hostsऔर DNS या NIS या के साथ कभी भी जाँच नहीं कर सकते ...

कुछ कंप्यूटरों के एक सरल होम नेटवर्क के लिए, 2 से N कहें, एक व्यवस्थापक केवल /etc/hostsहर कंप्यूटर को सही होने के लिए संपादित करेगा, एक डोमेन नाम सर्वर या किसी अन्य सेवा को स्थापित करने की तुलना में आसान, तेज, सस्ता होगा और एक मास्टर लोकेशन या IP पते पर होस्ट नाम रिज़ॉल्यूशन करने का अधिकार।

लिनक्स वेब के लिए इतिहास और इसके पीछे के कारण खोजें localhost। Linux में बहुत सी चीजें लोकलहोस्ट नाम 127.0.0.1 के नाम पर निर्भर करती हैं और अगर ऐसा नहीं होता है तो समस्याएँ पैदा होंगी, और यह लोकलहोस्ट की परिभाषा स्थानीय सिस्टम फ़ाइल जैसे / etc / मेजबान में होनी चाहिए।

/etc/hostsआमतौर पर अंतिम रूप से अंतिम ऑपरेटिंग सिस्टम के लिए अंतिम नाम और अंतिम बात मेजबान नाम समाधान के लिए वापस गिर जाती है। विंडोज एक्सपी और 7 में इसी फाइल को C:\Windows\System32\drivers\etc\lmhosts मैं विंडोज 8 या 10 के बारे में नहीं जानता।


विशेष रूप से विंडोज में, होस्ट फ़ाइल का एक विशिष्ट उपयोग एक प्रोग्राम को एक अशक्त डिवाइस को 'होम' करने के प्रयास को मोड़ना है। यह मेरे लिए सुझाव है कि यह वैधता के लिए एक जांच को विफल करने के लिए हो सकता है।
लारेंस पायने

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