नाविक 127.0.1.1 resolv.conf में दूर नहीं जाएगा!


60

मैंने पढ़ा है कि मुझे nameserver 127.0.1.1अपनी /etc/resolv.confफ़ाइल में तभी होना चाहिए जब मेरी मशीन का अपना DNS सर्वर हो। चूंकि यह नहीं है, यह समस्याओं का कारण बनता है। लेकिन कोई बात नहीं मैं इससे छुटकारा नहीं पा सकता हूं!

यहाँ मैं अब तक किए गए काम हैं:

  1. जोड़ने nameserver 192.168.1.3के लिए /etc/resolvconf/resolv.conf.d/baseफ़ाइल। (192.168.1.3 हमारे नेटवर्क का डीएनएस है)।
  2. चल रहा है: sudo resolvconf --enable-updates
  3. चल रहा है: sudo resolvconf -u
  4. चल रहा है: sudo service network-manager restart(बस सुनिश्चित करने के लिए)।

फिर भी जब मैं /etc/resolv.confफ़ाइल खोलता हूँ तो यह कहता है nameserver 127.0.1.1:! किसी को भी किसी भी विचार है क्या गलत है?

कृपया ध्यान दें कि यह वास्तव में है 127.0.1.1! और मुझे पता नहीं क्यों यह नहीं है 127.0.0.1!

यहां तक ​​कि जब मैं /etc/resolv.confमैन्युअल रूप से अपडेट करता हूं और इसे किसी और चीज में बदल देता हूं , तो sudo resolvconf -uवह इसे वापस कर देगा 127.0.1.1! यह पता कहाँ से आ रहा है?

जवाबों:


100

NetworkManager वह प्रोग्राम है जो (resolvconf यूटिलिटी के माध्यम से) एड्रेस 127.0.1.1को एड्रेस करता है resolv.conf। NM उस पते को सम्मिलित करता है यदि केवल तभी यदि इसे स्थानीय अग्रेषण नाम देने वाले के रूप में सेवा करने के लिए dnsmasq प्रोग्राम का एक उदाहरण शुरू करने के लिए कॉन्फ़िगर किया गया है। वह dnsmasq उदाहरण 127.0.1.1 पते पर प्रश्नों के लिए सुनता है।

यदि आप किसी स्थानीय फ़ॉरवर्डिंग नेमसर्वर का उपयोग नहीं करना चाहते हैं तो NetworkManager को एक dnsmasq उदाहरण शुरू करने के लिए कॉन्फ़िगर न करें और उस पते को सम्मिलित न करें। में /etc/NetworkManager/NetworkManager.confटिप्पणी लाइन बाहरdns=dnsmasq

sudo nano /etc/NetworkManager/NetworkManager.conf

[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq

और NetworkManager सेवा को पुनः आरंभ करें।

sudo service network-manager restart

इस मोड में, NetworkManager अपडेट्स /etc/resolv.conf(अभी भी resolvconf के माध्यम से) को शामिल करने के लिए नेमसर्वर पते को शामिल करता है NetworkManager के पास सक्रिय कनेक्शन हैं।

यदि आप resolvconf तंत्र को resolv.conf को अपडेट करने के लिए अक्षम करना चाहते हैं और बस एक स्थिर resolv.conf फ़ाइल का उपयोग करें, तो निम्न कार्य करें।

sudo rm -f /etc/resolv.conf  # Delete the symbolic link
sudo nano /etc/resolv.conf   # Create static file

# Content of static resolv.conf
nameserver 8.8.4.4
nameserver 8.8.8.8

मेरे पास 3 DNS हैं और क्वेरी कभी भी 3 तक नहीं पहुंच रही है अगर मैं dnsmasq, किसी भी टिप को अक्षम कर दूं? मैं Google को क्वेरी करना चाहता हूं, फिर इंट्रानेट डीएनएस को क्वेरी करना चाहता हूं। धन्यवाद
JorgeeFG

3
restart network-managerXenial पर काम नहीं करता है क्योंकि यह अपस्टार्ट के बजाय सिस्टमड का उपयोग करता है। कोशिशsystemctl restart network-manager
मथायस वीलर

मेरा सवाल यह है कि dnsmasq प्रोग्राम किस DNS सर्वर से पूछेगा? यह होस्ट IP पता क्वेरी के लिए DHCP का DNS सर्वर पूछेगा?
घड़ी झोंग

11

यह संभव है कि रेसोल्वॉन्कफ को गलत समझा जाता है। यह विशेष रूप से संभावना है यदि आप वास्तव में यह समझने के बिना कि इसकी कॉन्फ़िगरेशन फ़ाइलों के साथ चारों ओर खेल रहा है, तो रेजोल्वॉन्फ़ और नेटवर्क मैनजर कैसे काम करते हैं।

पृष्ठभूमि की जानकारी के लिए, कृपया resolvconf प्रलेखन और स्टीफन ग्रेबर के ब्लॉग पोस्ट को पढ़ें।

https://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/

पहले आपको पता होना चाहिए कि डिफ़ॉल्ट रूप से Ubuntu डेस्कटॉप और Ubuntu सर्वर दोनों ने resolvconf को स्थापित और सक्रिय किया है। Resolvconf डायनामिक रूप से /etc/resolv.conf फ़ाइल को व्यवस्थित और पुनर्जीवित तरीके से अपडेट करने के लिए एक रूपरेखा प्रदान करता है।

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

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

डिफ़ॉल्ट कॉन्फ़िगरेशन को पुनर्स्थापित करने के लिए, इसे देखें

  • /etc/resolvconf/resolv.conf.d/head में केवल दो #वर्णों से युक्त resolvconf हेडर टेक्स्ट होता है, जो किसी वर्ण से शुरू होता है
  • /etc/resolvconf/resolv.conf.d/base एक खाली फ़ाइल है
  • /etc/resolvconf/resolv.conf.d/tail एक खाली फ़ाइल है
  • /etc/resolv.conf सामग्री के साथ एक प्रतीकात्मक लिंक है ../run/resolvconf/resolv.conf

इसे प्राप्त करने के लिए, निम्न कमांड निष्पादित करें।

sudo su
dpkg-reconfigure resolvconf   # And answer `Yes` to agree to dynamic updates
cd /etc/resolvconf/resolv.conf.d
echo '# 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' > head
rm -f base tail original
:> base
:> tail

NetworkManager का मूल विन्यास है

[main]
...
dns=dnsmasq
...

in /etc/NetworkManager/NetworkManager.conf यह एक उचित विकल्प है कि NetworkManager द्वारा नियंत्रित स्थानीय फ़ॉरवर्डिंग नेमसर्वर को dns=dnsmasqलाइन से बाहर टिप्पणी करके निष्क्रिय कर दिया जाए ।

[main]
...
#dns=dnsmasq
...

यह सब करने के बाद बासी नेमसर्वर सूचना रिकॉर्ड को खाली करने के लिए मशीन को फिर से चालू करना उचित है।

sudo reboot

1

मेरे मामले dns=dnsmasqमें /etc/NetworkManager/NetworkManager.confफ़ाइल में कोई लाइन नहीं थी और /etc/resolv.confअभी भी नेटवर्क मैनेजर द्वारा केवल लिखने के लिए ओवरराइट किया गया थाnameserver 127.0.1.1

ठीक से अद्यतन करने के लिए एक सिम्लिंक को पुनर्स्थापित करना था:

sudo ln -sf /run/resolvconf/resolv.conf /etc/resolv.conf
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.