संशोधित उत्तर:
होस्ट स्वयं वास्तविक 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 के काम करने की बेहतर समझ देने में मदद करता है।