क्या / etc / मेजबानों में '127.0.0.1 लोकलहोस्ट myhost.example.org myhost' जैसी प्रविष्टि शामिल है?


16

जब लिनक्स और फ्रीबीएसडी सिस्टम की एक किस्म को देखते हैं, तो मैंने देखा है कि कुछ सिस्टम /etc/hostsमें होस्ट के सार्वजनिक होस्टनाम के लिए एक प्रविष्टि होती है, लेकिन अन्य सिस्टमस्ट पर नहीं।

यहां सबसे अच्छा अभ्यास क्या है? क्या मेरे / etc / मेजबानों की फाइल में होस्ट FQDN (जैसे myhost.example.org) और शॉर्ट होस्टनाम (उदाहरण के लिए myhost) की प्रविष्टि होनी चाहिए? FQDN के लिए रिकॉर्ड स्थानीयहोस्ट को इंगित करना चाहिए या इसे बॉक्स के बाहरी आईपी को इंगित करना चाहिए?

उदाहरण के लिए, कई आरएचईएल / ईएल बक्से पर डिफ़ॉल्ट कॉन्फ़िगरेशन सार्वजनिक होस्टनाम में नहीं डालता है /etc/hosts:

myhost # cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
myhost #

दूसरा वैरिएंट है कि होस्ट का शॉर्ट होस्टनाम और एफक्यूडीएन भी 127.0.0.1 है। मुझे बताया गया है कि यह एक पुरानी प्रथा है, जो इन दिनों पर आधारित है, लेकिन अभी भी बहुत सारे प्रशंसक ऐसा करते हैं।

myhost # cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 myhost myhost.example.org
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
myhost #    

तीसरा संस्करण यह है कि मेजबान के FQDN और लघु होस्टनाम को मेजबान का बाहरी आईपी पता दिया जाता है। यह तीसरा संस्करण मेरे लिए इष्टतम लगता है क्योंकि यह DNS सर्वर के खिलाफ लुकअप को कम करता है।

myhost # cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
74.125.239.xxx myhost myhost.example.org
myhost #  

यहां सबसे अच्छा अभ्यास क्या है?


2
यह इस बात पर उबलता है कि प्रोग्राम क्या उपयोग कर रहे हैं (उदाहरण के लिए मस्केल पसंद / एक 'लोकलहोस्ट' उर्फ ​​होने की जरूरत है), 127.0.0.1 localhost myhostपर्याप्त होना चाहिए और 74.125.239.xxx myhost myhost.example.orgजैसा कि आपने कहा कि डीएनएस लुक अप बचाता है। "सर्वश्रेष्ठ अभ्यास" जब तक कि कोई मानक नहीं है "यह जानकार लोग क्या उपयोग करते हैं"।
LinuxDevOps

जवाबों:


12

क्या आप वर्किंग डीएनएस को आपके वातावरण में विफलता का बिंदु मानने को तैयार हैं या नहीं। अगर कुछ सिस्टम स्थानीय मशीन के नाम को हल नहीं कर सकता है, तो कुछ कॉन्फ़िगरेशन / एप्लिकेशन कुछ कॉन्फ़िगरेशन में विफल हो जाएंगे।

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

यदि आप अपने DNS को विफलता के बिंदु के रूप में स्वीकार कर सकते हैं, या यदि आपकी सेवाएँ टूटे हुए रिज़ॉल्यूशन के मामले में विफल नहीं होती हैं, तो होस्ट्स फ़ाइल में कॉन्फ़िगरेशन प्रविष्टियों से बचा जा सकता है।

मैं दृढ़ता से सुझाव देता हूं कि आप अपने DNS सर्वरों को यथासंभव ठोस बना सकते हैं, और यदि आपको अपनी होस्ट फ़ाइल को कॉन्फ़िगर करना होगा, तो इसे करने के लिए कॉन्फ़िगरेशन प्रबंधन प्रणाली का उपयोग करें। आपको वास्तव में एक होस्ट फ़ाइल को छूने से मैन्युअल रूप से बचना चाहिए।


13
बस इसे जोड़ने के लिए, ज्यादातर मामलों में /etc/hostsDNS को सुपरसेड किया जाएगा, DNS विफलता की स्थिति में गिरावट के रूप में उपयोग नहीं किया जाएगा। यह एक अंतर है जो मुझे लगता है कि बनाया जाना चाहिए। (नाइट-पिक करने की कोशिश नहीं की जा रही है।) यह सब इसमें परिभाषित आदेश पर निर्भर करता है /etc/nsswitch.conf
हारून कोपले

4
अन्य समस्या यह है कि DNS सर्वर को क्वेरी करना बहुत धीमी है तो /etc/hostsफ़ाइल से परामर्श करें । कई एप्लिकेशन अपने होस्टनाम को बार-बार, प्रति सेकंड कई बार क्वेरी करते हैं। होस्टनाम जोड़ने से /etc/hostsविलंबता कम हो जाएगी और एप्लिकेशन को गति मिलनी चाहिए।
स्टीफन लासिवस्की
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.