जब nslookup एक पते को हल करने की कोशिश करता है तो मेरी / etc / मेजबानों की फाइल को क्‍यूर नहीं किया जाता है?


15

127.0.0.1मेरी /etc/hostsफ़ाइल में कुछ स्थानीय डोमेन हल हैं । और यह समय की अवधि के लिए सब ठीक था लेकिन अब जब मैं चलाता हूं:

nslookup test.local

यह परिणाम है:

Server:     192.168.1.3
Address:    192.168.1.3#53

** server can't find test.local: NXDOMAIN

192.168.1.3हमारे नेटवर्क डीएनएस है और यह मेरे स्थानीय डोमेन पता होना चाहिए नहीं कर रहा है test.local। कुछ खोजों के बाद मैंने पाया कि /etc/nsswitch.confफ़ाइल DNS स्रोतों की प्राथमिकता के आधार पर क्वेरी करने के लिए जानकारी रखती है। लेकिन वहाँ कोई समस्या नहीं थी! ये मेरा:

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat
group:          compat
shadow:         compat

hosts:          files mdns4_minimal [NOTFOUND=return] dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

तो क्या किसी को पता है कि मेरी hostsफाइल DNS लुक-अप में शामिल क्यों नहीं है?

जवाबों:


21

nslookupकेवल उचित DNS रिज़ॉल्यूशन करता है , जो नाम सेवा स्विच सबसिस्टम से काफी अलग है जो आपके अन्य अनुप्रयोगों का उपयोग करता है; कि nslookupउपेक्षा /etc/hostsऔर mDNS कहना है ।

उस तरह के स्थानीय प्रस्तावों का परीक्षण करने के लिए, एनएसएस का उपयोग करने वाली किसी चीज़ का उपयोग करें। ping <hostname>उदाहरण के लिए। यहां /etc/hostsमेरे नेटवर्क पर एक प्रविष्टि के आधार पर एक सरल डेमो है ।

$ nslookup bert
Server:     8.8.8.8
Address:    8.8.8.8#53

** server can't find bert: NXDOMAIN

$ ping bert
PING bert (10.10.0.4) 56(84) bytes of data.
64 bytes from bert (10.10.0.4): icmp_seq=1 ttl=64 time=0.352 ms
64 bytes from bert (10.10.0.4): icmp_seq=2 ttl=64 time=0.407 ms

ध्यान दें कि DNS सर्वर और प्रॉक्सी हैं जो किसी /etc/hostsफ़ाइल में कारक हो सकते हैं । इन मामलों में, nslookupस्थानीय स्रोत से परिणाम वापस आ सकता है।


6
इसके बजाय pingएक का उपयोग करना चाहिए getent ahostsक्योंकि इसके लिए सभी अतिरिक्त सामान की आवश्यकता नहीं होती pingहै।
मिकको रैंटलैनेन

2

मुझे लगता है कि आप /etc/hostsविशिष्ट होस्ट (mysite.com) के लिए फ़ाइल से नाम समाधान चाहते हैं ।

एक और सामान्य समस्या जो इस व्यवहार का कारण बन सकती है, वह यह है कि /etc/hostsएक ही आईपी के लिए फ़ाइल पर आपके पास कई प्रविष्टियाँ हो सकती हैं , उदाहरण:

1.1.1.1 host1.domain1.com
1.1.1.1 host2.domain2.com

कुछ क्रियान्वयनों में, यह DNS को सौंपे जाने के लिए नाम रिज़ॉल्यूशन का कारण बन सकता है। एक त्वरित फिक्स, 1 पंक्ति में सब कुछ समूह

1.1.1.1 host1.domain1.com host2.domain2.com

1

एक और आम बात जो मैं देख रहा हूं वह यह है कि कोई व्यक्ति (आमतौर पर मुझे) होस्टनाम के साथ आईपी पते को उलट देता है /etc/hosts- उदाहरण के लिए:

mysite.com    10.2.3.4

पहली नज़र में, यह सामान्य लग रहा है ... यहाँ मेरे समय का लगभग 50% समाधान है:

10.2.3.4    mysite.com

इस बार दोषी ... # आह
साइबेक्स

1
आमतौर पर होस्ट फाइलें पूर्वनिर्धारित 127.0.0.1 लोकलहोस्ट प्रविष्टि के साथ आती हैं। गलत करना बहुत गलत है :-)
m3nda
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.