मैं DNS को कैसे हल करूं, जो Ubuntu 13.10 (Saucy) में अपग्रेड करने के बाद काम नहीं करता है


64

13.10 में अपग्रेड करने के बाद मेरा DNS रिज़ॉल्यूशन विफल हो जाता है। ऐसा लगता है कि DNS सर्वर जो मुझे डीएचसीपी (LAN) द्वारा मिलते हैं, का उपयोग नहीं किया जाता है।

मैं अस्थायी समस्या को जोड़कर हल कर सकता nameserver 8.8.8.8था /etc/resolv.conf। लेकिन तब इंट्रानेट मेजबान अभी भी हल नहीं किया जा सकता है।

नेटवर्क संकेतक पर कनेक्शन सूचना मेनू आइटम पर क्लिक करते समय , प्राथमिक DNS और द्वितीयक DNS सही ढंग से सेट होते हैं। लेकिन मेरा कंप्यूटर इनका उपयोग नहीं करता है।

तो मेरे सवाल:

  • मुझे क्या करना चाहिए resolv.conf, अगर कुछ भी हो?
  • यह कैसे पता करें, कि मेरा कंप्यूटर किस नाम के सर्वर से क्वेरी कर रहा है?
  • अगला देखने के लिए, यह जानने के लिए कि डीएचसीपी द्वारा प्राप्त नाम सर्वर का उपयोग क्यों नहीं किया जाता है?

2
12.04 से 14.04 तक अपग्रेड करते समय मुझे यही मुद्दा मिला।
ताराचंद

6
मुझे कुछ दिनों पहले 16.10 में अपग्रेड करने के बाद से हर रोज डीएनएस फेलियर मिला।
विंडराइड

@IndRider में एक ही मुद्दा है, नीचे dnsmasq के साथ काम करने के लिए लगता है।
सूअर

मुझे एक नई स्थापित ल्यूबुन्टू 17.04 की समस्या थी और इसे मेजबानों की फाइल में आवश्यक रूप से जोड़कर मैन्युअल रूप से हल किया गया: askubuntu.com/a/936972/34298
rubo77

जवाबों:


83

पहले आपको थोड़ा सा जानना चाहिए कि उबंटू में 12.04 के बाद से नाम कैसे काम करता है।

स्टीफन ग्रेबर ने पिछले साल यहां इसके बारे में कुछ जानकारी ब्लॉग की थी । जानने के लिए सबसे महत्वपूर्ण बात यह है कि उबंटू सर्वर और उबंटू डेस्कटॉप दोनों ही resolv.confफाइल को मैनेज करने के लिए रेजोल्वॉन्फ का इस्तेमाल करते हैं। इसका मतलब है कि अब आपको /etc/resolv.confसीधे संपादित नहीं करना चाहिए ; इसके बजाय आपको resolvconf को सही जानकारी प्रदान करने के लिए अपने नेटवर्क इंटरफ़ेस कॉन्फ़िगरेशन उपयोगिता को कॉन्फ़िगर करना चाहिए। उबंटू सर्वर के लिए नेटवर्क इंटरफ़ेस कॉन्फ़िगरेशन उपयोगिता ifup है और इसे फ़ाइल द्वारा कॉन्फ़िगर किया गया है /etc/network/interfaces। उबंटू डेस्कटॉप के लिए नेटवर्क इंटरफ़ेस कॉन्फ़िगरेशन उपयोगिता NetworkManager है । यह आप उपयोग कर रहे हैं।

NetworkManager नेटवर्क इंडिकेटर> एडिट कनेक्शन्स के माध्यम से कॉन्फ़िगर किया गया है । हालांकि, डीएचसीपी द्वारा कॉन्फ़िगर किए गए नेटवर्क इंटरफेस के लिए यह सामान्य रूप से मैन्युअल रूप से किसी भी सेटिंग्स को बदलने के लिए आवश्यक नहीं है। आम तौर पर ऐसा होता है कि (दूरस्थ) डीएचसीपी सर्वर नेटवर्क मैनजर को स्थानीय इंटरफ़ेस और उपयोग करने के लिए (दूरस्थ) DNS नेमसेवर के पते के लिए एक आईपी पता दोनों प्रदान करता है। NetworkManager एक अग्रगामी नेमसर्वर का उदाहरण शुरू करता है जो 127.0.1.1 पर स्थानीय रूप से सुनता है। यह पता, 127.0.1.1, resolvconf को भेजा जाता है जो अंदर डालता nameserver 127.0.1.1है/etc/resolv.conf। NetworkManager डीएचसीपी द्वारा प्रदान किए गए DNS नेमवेरर को रिमोट (दूरस्थ) आईपी एड्रेस देता है। इस प्रकार स्थानीय प्रणाली पर चलने वाला एक कार्यक्रम रिओलवर को आईपी पते में होस्ट नाम का अनुवाद करने के लिए कहता है; रिज़ॉल्वर 127.0.1.1 पर स्थानीय फ़ॉरवर्डिंग नेमसर्वर से पूछताछ करता है; फॉरवर्डिंग नेमवेरर्स दूरस्थ नेमसर्वर के बारे में पूछताछ करता है, जिसके बारे में बताया गया है, एक उत्तर प्राप्त करता है और इसे चेन को वापस भेजता है।

NetworkManager D-Bus पर अग्रवर्ती नेमसर्वर प्रक्रिया के साथ संचार करता है। आप देख सकते हैं कि NetworkManager ने कमांड चलाकर अग्रेषण नामकरण को क्या बताया

nmcli dev list iface eth0 | grep IP4.DNS

टिप्पणियों से उत्पन्न होने वाली अपडेट:
ध्यान दें कि resolvconf वास्तव में उस फ़ाइल /run/resolvconf/resolv.confको लिखता है जिसे /etc/resolv.confएक प्रतीकात्मक लिंक माना जाता है। यदि /etc/resolv.confएक प्रतीकात्मक लिंक नहीं है, तो आपको इसे फिर से बनाने की आवश्यकता है। ऐसा करने के लिए आप दौड़ सकते हैं

sudo dpkg-reconfigure resolvconf

या

sudo ln -sf /run/resolvconf/resolv.conf /etc/resolv.conf        

इस जानकारी के लिए बहुत बहुत धन्यवाद। मेरे मामले में कमांड सही DNS सर्वर दिखाता है। लेकिन resolf.conf फ़ाइल अद्यतन नहीं है। इसमें टाइमस्टैम्प है, जब मैंने अपना मान रखा है। इसलिए मुझे यह पता लगाना होगा कि रेजोल्वॉन्फ़ फाइल क्यों नहीं लिख रहा है।
विटेक

15
Resolvconf वास्तव में /run/resolvconf/resolv.conf फ़ाइल को लिखता है और /etc/resolv.conf को /run/resolvconf/resolv.conf का प्रतीकात्मक लिंक माना जाता है। यदि आपने /etc/resolv.conf को हटा दिया है तो आपने प्रतीकात्मक लिंक को हटा दिया है। प्रतीकात्मक लिंक को चलाने के लिए आप चला सकते हैं sudo dpkg-reconfigure resolvconfया आप कर सकते हैंmv /etc/resolv.conf /run/resolvconf/resolv.conf && ln -s ../run/resolvconf/resolv.conf /etc/resolv.conf
jdthood

7
यह सब कुछ है, लेकिन 'फिक्स'। मेरे द्वारा इस समस्या का समाधान कैसे किया जा सकता है?
अमल मुरली

5
sudo dpkg-reconfigure resolvconfउत्तर के अंतिम भाग में सुझाए अनुसार चलाना हो सकता है ।
jdthood

धन्यवाद!!! मुझे यकीन नहीं है कि मेरे सिस्टम का क्या हुआ लेकिन sudo dpkg-reconfigure resolveconfकाम करने के लिए बहुत अच्छा लग रहा था!
माध्य

49

मैंने नीचे दिए गए लिंक (dnsmasq को अक्षम करने) पर सुझाए गए परिवर्तन किए। अब सब कुछ बहुत अच्छा काम करता है! http://www.ubuntugeek.com/how-to-disable-dnsmasq-in-ubuntu-12-04precise.html

/etc/NetworkManager/NetworkManager.confफ़ाइल खोलें ।

sudo gedit /etc/NetworkManager/NetworkManager.conf

इस तरह से टिप्पणी करें:

#dnsmasq deactivated
#dns=dnsmasq

4
Dnsmasq पर टिप्पणी करने के बाद, आपको नेटवर्क प्रबंधक को पुनः आरंभ करने की आवश्यकता है sudo restart network-manager:।
डॉन किर्कबी

2
मेरे मामले में (Xubuntu) कमांड है: sudo /etc/init.d/network-manager restart
aviram83

आप आप के लिए हो रहा है, भले ही वहाँ कोई dnsmasq स्थापित है, और कुछ भी नहीं है यहां तक कि बाहर टिप्पणी करने के लिए नहीं है, तो जोड़ने dns=defaultके लिए [main]अनुभाग। NetworkManager के पास अपना स्वयं का गंदा dnsmasq plugin है जो इसे अन्यथा उपयोग करेगा।
dstibbe

1
मुझे यह पुनरारंभ करने की आवश्यकता है network-manager-sudo service network-manager restart
सुंगम १18

मेरे एक बॉक्स में 17.10 में अपग्रेड करने के बाद कोई डीएनएस नहीं था और यह पता चलता है कि /etc/resolv.conf एक प्रतीकात्मक लिंक नहीं था। ठीक कर दिया। एक और बॉक्स ने अपग्रेड को पूरा नहीं किया और मुझे dir में एक .dpkg-new फ़ाइल मिली, उन्हें मुख्य अंतर बताएं कि dnsmasq है। इस पर कॉपी किया गया और पुन: प्रारंभ के बिना किसी भी डेमॉन काम किया
fchen

20

EDIT 2: पिछली पोस्ट को मॉडरेशन द्वारा सही तरीके से हटा दिया गया था, मैं वही पोस्ट कर रहा हूं जो मैंने हल किया है। उसके लिए खेद है।

संपादित करें: मुझे सिर्फ जवाब मिला और यह इस पृष्ठ पर है - मेरी miopy के लिए खेद है। मैंने नीचे अपने निष्कर्ष पोस्ट किए, इस पेज में रिचर्ड लिंडस्टेड द्वारा सही उत्तर का विस्तार किया गया। मैंने अपने शुरुआती रंबल को थोड़े संदर्भ के लिए छोड़ दिया। कृपया रिचर्ड के जवाब को आगे बढ़ाएं, वह इसके हकदार हैं।

यह वास्तव में आसान है।

बस अपने इंटरफेस की फाइल खोलें -> sudo vi / etc / नेटवर्क / इंटरफेस

यकीन है कि ओपी मदद नहीं की और अब मेरी मदद नहीं करता है। हम स्थैतिक पते नहीं चाहते हैं, हम डीएचसीपी सर्वर हमें भेजने वाले का उपयोग करना चाहते हैं। NetworkManager उन्हें पहचानता प्रतीत होता है, लेकिन उबंटू ने उनकी उपेक्षा की:

# nmcli dev list iface wlan0 | grep IP4.DNS
IP4.DNS[1]:          10.*.*.*
IP4.DNS[2]:          10.*.*.*
IP4.DNS[3]:          8.8.8.8

परंतु...

# dig microsoft.com
; <<>> DiG 9.9.5-4.3-Ubuntu <<>> microsoft.com
;; global options: cmd
;; connection timed out; no servers could be reached

और मेरा / etc / नेटवर्क / इंटरफेस है:

auto lo
iface lo inet loopback

जो थोड़ा अजीब है, मैं उम्मीद करूंगा कि सभी इंटरफेस यहां घोषित किए जाएंगे (या क्या मैं कुछ याद कर रहा हूं?)।

तो, संक्षेप में:

  • मैंने शुरू करने के लिए किसी भी फाइल के साथ खिलवाड़ नहीं किया
  • मैं पहले ही दौड़ चुका हूं dpkg-reconfigure resolvconf
  • सही सिमिलिंक जगह पर है
  • NetworkManager DHCP से सही DNS सर्वरों को पुनः प्राप्त करता है
  • उबंटू ऐसे पतों का उपयोग नहीं करता है
  • वर्कअराउंड 8.8.8.8 को / etc / नेटवर्क / इंटरफेस पर रखना है, जो मैं नहीं चाहता
  • मैं किसी भी और सभी स्थितियों में डीएचसीपी-प्रदान डीएनएस सर्वर का उपयोग करना चाहता हूं।

एक और धागा नहीं खोल रहा क्योंकि यह सटीक समस्या है सिवाय इसके कि मैं 14.10 पर हूं (लेकिन यह मुझे 12.10 से 13.04 तक अपग्रेड करने के बाद से परेशान कर रहा है)।

उपाय

वह आखिरी वाक्यांश मुझे सही रास्ते पर ले गया, और तभी मैंने रिचर्ड के जवाब पर ध्यान दिया।

समस्या परस्पर विरोधी dnsmasqऔर resolvconfपैकेज से संबंधित प्रतीत होती है । 12.10 तक, dnsmasqइस्तेमाल किया गया था। 13.04 के बाद से, उबंटू एक dnsmasq / resolvconf हाइब्रिड पर स्विच करने के लिए लग रहा था, जहां आपने पैकेज स्थापित किए हैं dnsmasq-baseऔर resolvconf, लेकिन dnsmasqस्वयं नहीं ।

मैं यह नहीं कह सकता कि यह 13.04 या कुछ और के लिए अपग्रेड स्क्रिप्ट में बग है, क्योंकि जब (नए इंस्टॉलेशन में) रिसॉल्वोन्फ़ को अपग्रेड किया जाता है, तो dnsmasq-base को अपग्रेड किया जाता है और dnsmasq को (सही ढंग से) अनइंस्टॉल किया जाता है।

पकड़ है, अपग्रेड स्क्रिप्ट dns=dnsmasqलाइन में टिप्पणी करने में विफल रहता है /etc/NetworkManager/NetworkManager.conf। इसलिए, भले ही dnsmasq डेमन सिस्टम पर अब मौजूद नहीं है, लेकिन /etc/resolv.conf अभी भी यह होने की उम्मीद करता है।


यह तो कमाल है!
मेटाडेट्स

1
OMG ने मेरी DNS समस्याओं को हल कर दिया है जो मैंने पिछले 3 वर्षों से की है! यदि आपके पास dnsmasqऔर dnsmasq-baseस्थापित, समुद्री मील दूर रखा जाएगा 127.0.0.1में /etc/resolv.confके बजाय 127.0.1.1। मैं बस स्थापना रद्द dnsmasq(और सक्षम NM) और सब कुछ ठीक काम करता है।
user1129682

4
भविष्य के Googler को ध्यान देना चाहिए कि आपको इसे sudo service network-manager restartप्रभावी बनाने के लिए होना चाहिए ।
टाइममलर

सेवा नेटवर्क-प्रबंधक पुनरारंभ पर अच्छी बात!
हेनरिक

7

यह वास्तव में आसान है।

बस अपने इंटरफेस की फाइल खोलें -> sudo vi / etc / नेटवर्क / इंटरफेस

और आपके इंटरफ़ेस के तहत (शायद eth0) आप सभी सामान्य विन्यास देखेंगे।

address 192.168.22.71
netmask 255.255.255.0
gateway 192.168.22.1

प्रवेश द्वार के बाद बस 'dns-nameservers 8.8.8.8 8.8.8.9' या जो भी नाम आप उपयोग करने जा रहे हैं।

तो आपका विन्यास होना चाहिए:

address 192.168.22.71
netmask 255.255.255.0
gateway 192.168.22.1
dns-nameservers 8.8.8.8 8.8.8.9

तो बस एक 'sudo सेवा नेटवर्किंग पुनरारंभ' करते हैं और आप जाने के लिए अच्छा है!

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