क्या मुझे गलत DNS समस्या को ठीक करने के लिए अपनी resolv.conf फ़ाइल को संपादित करना चाहिए?


35

मुझे समस्या है कि मेरी उबंटू मशीन गलत DNS सर्वर का उपयोग करती है। किसी कारण से localhostDNS जानकारी के लिए मशीन क्वेरी ।

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

अब, चूंकि नेटवर्क सेटिंग्स जीयूआई ने सही सेटिंग्स के साथ फाइल उत्पन्न नहीं की है, मैं resolv.confअपने आप से एक नई फ़ाइल कैसे उत्पन्न करूं ?


1
यदि आप Ubuntu Server 12.04 LTS का उपयोग कर रहे हैं, तो बस अपने आप को एक बड़ा एहसान करें और सीधे /etc/resolvconf/resolv.conf.d/head को संपादित करें , जैसा कि आप चाहते हैं कि आपकी विरासत resolv.conf दिखे। मैं कुछ भी नहीं है, लेकिन जब तक मैं इसे मजबूर नहीं करता तब तक रिवाल्वर के मुद्दे नहीं थे।

askubuntu.com/questions/157154/… शायद एक संबंधित प्रश्न।
एहतेश चौधरी

जवाबों:


40

क्या जवाब में से कोई भी अब तक पतों तैनात उपस्थिति है कि प्रश्नकर्ता समझना महत्वपूर्ण है कि होने में विफल रहता है है nameserver 127.0.0.1में /etc/resolv.confसही है, तो यह सोचते हैं कि एक स्थानीय नेम सर्वर चल रहा है। और उबंटू 12.04 डेस्कटॉप में, डिफ़ॉल्ट रूप से, एक स्थानीय नेमसर्वर चल रहा है, अर्थात्, dnsmasqNetworkManager द्वारा नियंत्रित एक प्रक्रिया जो सुनता है 127.0.0.1। Ubuntu 12.10 में सुनने के पते को बदल दिया गया है 127.0.1.1

तो समाधान यह है कि किसी भी तरह का बदलाव न किया जाए resolv.conf। यह सही है, यह मानते हुए कि प्रश्नकर्ता स्थानीय नेमसेवर का उपयोग करना चाहता है।

यदि नाम सेवा काम नहीं कर रही है, तो स्थानीय नेमसर्वर को सही अग्रेषण पते नहीं दिए जा रहे हैं, या कुछ अन्य नेटवर्किंग समस्या है।

प्रश्नकर्ता ने "नेटवर्क सेटिंग्स GUI" का उपयोग करके "सही सेटिंग्स के साथ फ़ाइल उत्पन्न" करने की कोशिश की और यह काम करने में विफल रहा। मुझे ठीक से पता नहीं है कि इसका क्या मतलब है, लेकिन यहाँ नेमसर्वर पतों को दर्ज करने का सही तरीका है ताकि वे resolv.confसही समय पर समाप्त हो जाएँ । मैं मानता हूं कि प्रश्नकर्ता इंटरफेस का उपयोग कर रहा है NetworkManagerifupकि कॉन्फ़िगर करने के लिए।

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

यदि स्थानीय मशीन पर नेटवर्क इंटरफ़ेस को स्टेटिक रूप से कॉन्फ़िगर किया गया है, तो सही नेमसर्वर पते को NetworkManager में दर्ज किया जाना चाहिए, उदाहरण के लिए, नेटवर्क इंडिकेटर | कनेक्शन संपादित करें ... | वायरलेस | myconnection | संपादित करें ... | IPv4 सेटिंग्स | अतिरिक्त DNS सर्वर।

यह संभव है कि स्थानीय नामकरण ठीक से काम नहीं कर रहा है। उस स्थिति में प्रश्नकर्ता को संपादित करना चाहिए/etc/NetworkManager/NetworkManager.conf

sudo gedit /etc/NetworkManager/NetworkManager.conf

और लाइन बाहर टिप्पणी करें

dns=dnsmasq

"[मुख्य]" अनुभाग में। लाइन बाहर टिप्पणी करने के लिए, लाइन #की शुरुआत में रखें, फिर फ़ाइल को सहेजें। फिर नेटवर्क-मैनेजर को पुनरारंभ करें।

sudo restart network-manager

इसके बाद, resolv.conf127 के बजाय गैर-स्थानीय नाम पते को दर्ज किया जाएगा । * पता।

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

क्या कुछ अन्य उत्तर की सलाह के विपरीत, सामान्य रूप में आप चाहिए नहीं जोड़ने nameserver, domainया searchमें फाइल करने के लिए विकल्पों /etc/resolvconf/resolv.conf.d/। उन उत्तरों पर मेरी टिप्पणी देखें।


1
"डीएचसीपी सर्वर जानता है कि उसके ग्राहकों को किस नाम-पते का उपयोग करना चाहिए" - जब आपके पास डीएचसीपी सर्वर पर कोई नियंत्रण नहीं है (सार्वजनिक वाईफाई हॉटस्पॉट्स पर विचार करें) को छोड़कर और उपयोग किए जा रहे नेमसेवर को ओवरराइड करना चाहते हैं ... प्रति कनेक्शन पर समान कॉन्फ़िगरेशन सेट करना आधार - प्रत्येक वाईफाई हॉटस्पॉट के लिए बार-बार आपके द्वारा कनेक्ट किया गया - समाधान नहीं है।
तोह हान हुई

ऐसा लगता है कि मुझे dhclientपरिवर्तनों (थए nameserverलाइनों) के लिए निष्पादित करने की आवश्यकता है, आखिरकार आने के लिए etc/resolv.conf। मैं Xubuntu 14.04 का एक स्वनिर्धारित लाइव चला रहा हूं (शायद यही कारण है)।
शोपाजो डे एरिएरेस

DNSMasq, jdthood को अक्षम करने के क्या नुकसान हो सकते हैं? बेशक, नाम समाधान और इंटरनेट ऐसा करने के बाद ठीक काम करने लगता है।
सोपालजियो डी एरीयरेज़ जूल

Bugs.launchpad.net/ubuntu/+source/dnsmasq/+bug/1003842 देखें , जैसे, मेरी टिप्पणी [60]।
jdthood

मेरा resolv.conf 127.0.0.1मेरे नेटवर्क प्रबंधक के बावजूद अन्य namerservers + dnsmasq होने के बावजूद बदलता रहता है + रीबूट किया जा रहा है + dnsmasq मारा जाता है (जैसा कि यह अभी भी शुरू हो जाता है) + नेटवर्क फिर से शुरू: /
कुछ उपयोगकर्ता

17

यदि आप इंटरफ़ेस को कॉन्फ़िगर करने के लिए ifup का उपयोग कर रहे हैं तो आप इसे / etc / नेटवर्क / इंटरफेस फाइल में जोड़ सकते हैं।

एक टर्मिनल खोलें और टाइप करें:

sudo gedit /etc/network/interface*

आपको कुछ इस तरह देखना चाहिए:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

इसे संपादित करें:

auto eth0
iface eth1 inet static
address 192.168.1.10 
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8

अपनी खुद की नेटवर्क जानकारी का उपयोग करना। यह आपको डीएनएस सेट करने की अनुमति देगा। आप यहां कई डीएनएस सर्वर का उपयोग कर सकते हैं:

dns-nameservers 8.8.8.8 8.8.4.4

ऐसा करने के बाद, दौड़ें

ifdown eth0
ifup eth0

यदि यह आपका मामला है, तो यह समाधान है: "यदि आप इंटरफ़ेस को कॉन्फ़िगर करने के लिए ifup का उपयोग कर रहे हैं ...."
Angelcervera

क्या आपने भी इसका परीक्षण किया? ifdown: interface eth0 not configured
15

3
यदि आप गर्त ssh से जुड़े हैं तो आप ifdown / ifup का उपयोग नहीं कर सकते हैं। इसके बजाय उपयोग करेंsudo /etc/init.d/networking restart
TD_Nijboer

11

Ubuntu 12.04 में resolv.conf की हैंडलिंग बदल गई।

यदि आप अपना स्वयं का नाम पता जोड़ना चाहते हैं, तो फ़ाइल /etc/resolvconf/resolv.conf.d/ सिर को संपादित करें

sudo nano /etc/resolvconf/resolv.conf.d/head

और वहां अपना नाम जोड़ें (जैसे: Google ओपन डीएनएस)

nameserver 8.8.8.8

फ़ाइल सहेजें और फिर चलाएं

sudo resolvconf -u

कोई रिबूट या कुछ और। शायद आपको नेटवर्क-मैनेजर को पुनरारंभ करना होगा

sudo service network-manager restart

किया हुआ।

आप इसे कमांड से टेस्ट कर सकते हैं

nslookup www.google.com

परिणाम के समान होना चाहिए

Server: 8.8.8.8
Address: 8.8.8.8#53

4
/Etc/resolvconf/resolv.conf.d/head में "नेमसर्वर" पंक्ति जोड़कर एक त्वरित हैक के रूप में काम किया जा सकता है लेकिन यह किसी भी समस्या का सही समाधान नहीं है। ऐसा करने से रिज़ॉल्वर सभी परिस्थितियों में उस नाम पते का उपयोग करता है, जबकि नेमवेर्सर्स का उपयोग परिस्थितियों पर निर्भर करता है। उदाहरण के लिए, यदि आप LAN (शायद वीपीएन के माध्यम से) से जुड़े हैं तो आप आमतौर पर LAN के नाम का उपयोग करना चाहते हैं ताकि LAN पर निजी नामों को हल करने में सक्षम हो सकें। और वर्तमान मामले में यह प्रणाली एक स्थानीय कैशिंग नेमवेरर चला रही है, लेकिन "नेमसर्वर 8.8.8.8" को जोड़ते हुए इसे बाईपास कर दिया है।
jdthood

@jdthood - आपने एक समस्या बताई। एक समाधान प्रदान करने के लिए देखभाल?
टीजे बिडल

@TJ मैंने पहले से ही मुख्य प्रश्न ("मैं अपनी resolv.conf फ़ाइल को कैसे संपादित करूं?") का उत्तर पोस्ट किया है, अगर आपका मतलब है।
jdthood

1
कृपया इसकी अनुशंसा न करें। पर बहुत फ़ाइल, के शीर्ष "ऐसा नहीं इसे संपादित करें फ़ाइल हाथ से - अपने परिवर्तनों को ओवरराइट किया जाएगा"।
सेरिन

मैं इंगित करना चाहता हूं कि संपादन /etc/resolv.conf मैन्युअल रूप से रिबूट पर परिवर्तनों को अधिलेखित करता है, हालांकि, संपादन /etc/resolvconf/resolv.conf.d/head मैन्युअल रूप से रिबूट में परिवर्तन को अधिलेखित नहीं करता है, लेकिन यह फिर से होने की संभावना है। रेसोल्वकॉन्फ की स्थापना जो कि चेतावनी होने की संभावना है।
केन

1

अधिक प्रविष्टियों को जोड़ने के लिए /etc/resolv.conf, एक /etc/resolvconf/resolv.conf.d/tailफ़ाइल बनाएं और उन्हें वहां जोड़ें।

लेकिन अगर /etc/resolv.confइसमें शामिल है 127.0.0.1, तो प्रविष्टियों को जोड़ने से /etc/resolvconf/resolv.conf.d/tailकुछ भी नहीं बदलेगा। आपको NetworkManager में अपने DNS सर्वर पते को सांख्यिकीय रूप से सेट करना होगा जो उन्हें dnsmasq पर भेजेगा जो कि सुनता है 127.0.0.1

एक स्थिर इंटरफ़ेस के लिए DNS कॉन्फ़िगरेशन को " dns-nameservers", " dns-search" और " dns-domain" प्रविष्टियों के रूप में जाना चाहिए , जो उपयुक्त iface श्लोक में जोड़ा गया है/etc/network/interfaces

अधिक जानकारी के लिए इसे पढ़ें ।

`इसके अलावा:

आप एक gui टूल स्थापित कर सकते हैं, जिसका नाम gnome-network-adminआपका DNS सेट करेगा। कोशिश करो :

sudo apt-get install gnome-network-admin

3
(1) नहीं, /etc/resolvconf/resolv.conf.d/tail पर "नेमसर्वर" विकल्प न जोड़ें। यह अप्रभावी है (क्योंकि अन्य "नेमसेवर" विकल्प पूर्वता लेते हैं) और उप-रूपी (क्योंकि यह स्थिर कॉन्फ़िगरेशन है जबकि कॉन्फ़िगरेशन नेटवर्क परिस्थितियों को प्रतिबिंबित करना चाहिए)। (2) नहीं, सूक्ति-नेटवर्क-व्यवस्थापक का उपयोग न करें। यह resolvconf के साथ ठीक से काम नहीं करता है। बग देखें # 60518 ( बग्सलांचपड.नेट / जुबां/+ource/gnome-system-tools/+ bug/60518 )।
jdthood
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.