resolv.conf कुछ करके रीसेट करता रहता है


29

मुझे यह पता लगाने में मदद की आवश्यकता है कि मेरे resolv.confलिए यह क्यों बदल रहा है, जिससे मुझे बाहरी इंटरनेट और केवल स्थानीय नेटवर्क तक पहुंचने में सक्षम नहीं होना चाहिए:

$ cat /etc/resolv.conf
nameserver 192.168.16.1
domain localdomain
search localdomain

मुझे लगा कि मैंने लूपबैक इंटरफेस से छुटकारा पाकर एथ्सो इंटरफेस में जोड़कर जोत्सई के शानदार ब्लॉग के/etc/network/interfaces निर्देशों के साथ इसे ठीक कर लिया है

मैंने ऐसा करने की कोशिश की है:

$ sudo ifconfig eth0 down
$ sudo ifconfig eth0 up
$ sudo /etc/init.d/networking restart
$ sudo dhclient

और फिर चीजें अस्थायी रूप से काम करेंगी, और अंततः resolv.conf में नेमसर्वर फिर से वापस मिल जाएगा।

PS मैंने इसे ubuntuforums पर भी पोस्ट किया है ।


संपादित करें: NetworkManager के अलावा कम से कम एक अन्य कार्यक्रम है जो resolv.confमुझे लिख रहा है, और मुझे यह पता है क्योंकि जब मैं NetworkManager को ताज़ा करता हूं, तो resolv.confउत्पन्न होने वाली फ़ाइल में एक टिप्पणी होती है जो कहती है # Generated by NetworkManager, और वह संस्करण जो इसे बदलता रहता है वह नहीं करता है।

तो मैं यह कोशिश कर रहा हूँ:

while true; do echo listening; lsof | grep /etc/resolv.conf; echo sleeping; sleep 1; done


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

फ़ाइलों का आउटपुट जोड़ना:

$ cat /etc/network/interfaces 
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

जैसी कोई फाइल नहीं /etc/NetworkManager/NetworkManager.conf

$ sudo cat /etc/NetworkManager/system-connections/Auto\ Ethernet 

[connection]
id=Auto Ethernet
uuid=#######omitted#######
type=802-3-ethernet
autoconnect=true
timestamp=1314377063

[ipv4]
method=auto
ignore-auto-routes=false
ignore-auto-dns=false
dhcp-send-hostname=false
never-default=false

[802-3-ethernet]
speed=0
duplex=full
auto-negotiate=true
mtu=0

[ipv6]
method=ignore
ignore-auto-routes=false
ignore-auto-dns=false
never-default=false

मुझे या तो नेटवर्क मैनेजर बग पर संदेह है, या अधिक गलत धारणा है। उबंटू का कौन सा संस्करण चल रहा है? क्या आपके पास resolvconfपैकेज स्थापित है? की सामग्री पोस्ट करें /etc/network/interfaces, /etc/NetworkManager/NetworkManager.confऔर /etc/NetworkManager/system-connections/*
गिल्स एसओ- बुराई को रोकना '

मैं 10.04 चला रहा हूं, कोई resolvconfपैकेज नहीं । कुछ बिंदु पर, मेरा DSL मॉडेम खराब हो रहा था (राउटर के पीछे) जबकि मेरा स्थानीय नेटवर्क ठीक था, इसलिए मैंने अब स्थापित करने की कोशिश की हो सकती है nscdया dnsmasq- अब इनकी स्थापना रद्द कर दी गई है, लेकिन हो सकता है कि यह कुछ कलाकृतियों को छोड़ रहा हो जो हस्तक्षेप कर रहे हों?
जॉन्साई

ठीक है, मैंने सिर्फ 3 हफ्तों में पहली बार अपने कंप्यूटर को रिबूट किया, और मुझे लगता है कि समस्या दूर हो गई। o_O
jontsai

सुनिश्चित नहीं हैं कि, लेकिन मुझे लगता है पर DHCP सर्वर के साथ कुछ समस्या थी vmnet1या vmnet8(एनएटी और होस्ट-केवल)
jontsai

1
यह पूरी चर्चा उबंटू 12.04 के बाद से कम प्रासंगिकता की है, जिसने बेस सिस्टम में रेजोलॉन्कॉफ़ को पेश किया, मूल रूप से रिज़ॉल्व.कॉन्फ़ को जिस तरह से बदल दिया गया है उसे संभाला जाता है।
jdthood

जवाबों:


13

आप स्थैतिक जोड़ कर सकते हैं /etc/resolv.conf। उन परिवर्धन उन चीजों को ओवरराइड कर सकते हैं जो स्वचालित रूप से जोड़े जा रहे हैं।

सबसे पहले, resolvconfपैकेज स्थापित करें ।

फिर, Alt + F2 दबाएं और चलाएं gksudo nautilus/etc/resolvconf/resolv.conf.d/headयदि आप फ़ाइल की शुरुआत में जोड़ना चाहते हैं तो खोलें ; /etc/resolvconf/resolv.conf.d/tailयदि आप अंत में जोड़ना चाहते हैं तो खोलें । अपने परिवर्तन करें, फाइलों को सहेजें / बंद करें और फिर sudo resolvconf -uपरिवर्तनों को लागू करने के लिए दौड़ें ।

(क्षमा करें कि मुझे याद नहीं है कि फ़ाइल के प्रारंभ या अंत में सेटिंग्स सर्वोच्च प्राथमिकता रखती हैं।)


मेरा नेटवर्क प्रबंधक परिवर्तन किसी भी वीपीएन से जुड़ने पर वापस किया जाएगा। इसने मुझे 8.8.8.8 को रिज़ॉल्वर सूची में रखने की अनुमति दी, इसके बावजूद कि मैं किस नेटवर्क से जुड़ा था।
स्टीवन पी

8

मुझे ठीक वैसी ही समस्या थी - सर्वर को रिबूट होने पर resolv.conf को हर बार फिर से लिखना होगा।

यह डीएचसीपी के कारण हुआ था। Resolv.conf को सेट करने के लिए कि मैं क्या चाहता हूं, मैंने संपादित किया /etc/dhcp/dhclient.confऔर निम्नलिखित को जोड़ा:

supersede domain-name "my.domain.com";
prepend domain-search "my.domain.com";

आप वास्तव में अपने resolv.conf फ़ाइल के बारे में काफी कुछ नियंत्रित कर सकते हैं इस में परिवर्तन करके।

आशा करता हूँ की ये काम करेगा।


2
यह सबसे साफ समाधान होगा लेकिन किसी कारण से इसने कुछ साल पहले मेरे सिस्टम पर काम करना बंद कर दिया। मैं तब से resolvconf स्क्रिप्ट या chattr + i /etc/resolv.conf को अक्षम करने के साथ अटका हुआ हूं।
चिरकालिक

7

(इस उत्तर में यह जांचने के तरीके शामिल हैं कि क्या चल रहा है। यदि आप इन तरीकों का उपयोग किसी जानकारी को इकट्ठा करने और प्रदान करने के लिए कर सकते हैं, तो मैं एक वास्तविक समाधान देने में सक्षम हो सकता हूं।)

/etc/resolv.confजब आपके डीएचसीपी पट्टे को नवीनीकृत किया जाता है, तो प्रतीत होता है कि सहज अपडेट के लिए एक संभावित ट्रिगर है। जांचें कि आपको कब तक डीएचसीपी के पट्टे मिलते हैं (यह सिस्टम लॉग में दिखाई देना चाहिए, मुझे लगता है कि /var/log/syslog)।

फ़ाइल को संशोधित करने के लिए आप ऑडिट ऑडिट स्थापित करें का उपयोग कर सकते हैं । डेमन शुरू करें ( sudo service auditd start) और इसे उस फाइल में संशोधन के लिए देखने के लिए कहें:

sudo auditctl -w /etc/resolv.conf -p w

ऑडिट लॉग में हैं /var/log/audit/audit.log। आप देखेंगे कि जिस समय फाइल को संशोधित किया गया था और उस प्रोग्राम का नाम जिसने इसे संशोधित किया था।

यदि आपके पास resolvconfपैकेज स्थापित है, तो नेटवर्क प्रबंधक अपने पैर की उंगलियों पर कदम रख सकता है। सभी नेटवर्क इंटरफेस को नीचे लाने का प्रयास करें, फिर नेटवर्क मैनेजर ( sudo service network-manager stop) को बंद करें , फिर इसे पुनरारंभ करें।


1
मेरा मानना ​​है कि आप डीएचसीपी रिलीज के बारे में सही हैं। आप निम्नानुसार नेटवर्क प्रबंधक में डीएचसीपी सेटिंग्स बदल सकते हैं: nm-connection-editorअपने टर्मिनल में चलाएं । अपना इंटरफ़ेस चुनें और एडिट हिट करें। आईपीवी 4 सेटिंग्स के तहत केवल डीएचसीपी एड्रेस (या कुछ इसी तरह) नामक एक विधि होनी चाहिए। अगर मैं गलत नहीं हूं तो यह आपको डीएचसीपी के माध्यम से आईपी एड्रेस प्राप्त करने की अनुमति देगा, लेकिन नेमसर्वर नहीं (आप उन्हें नीचे दिए गए फ़ील्ड में निर्दिष्ट कर सकते हैं)।
क्रिश्चियन Skjødt

मैंने अपने राउटर को स्थैतिक आईपी के लिए मैक पते पर मैप करने के लिए सेट किया है, इसलिए डीएनएस पट्टा लंबे समय के लिए है। auditctlलाइन मेरे लिए काम नहीं करता है, और मुझे विश्वास है कि नेटवर्क प्रबंधक है के लिए सेवा का नाम network-manager(हाइफन शामिल हैं)। मेरे पास एक resolvconfपैकेज स्थापित नहीं था , लेकिन मेरे पास /etc/resolvconf/फ़ोल्डर के अंदर सामान था , और जब मैंने इसकी तुलना एक अन्य उबंटू मशीन से की, तो यह नहीं था, इसलिए मैंने पैकेज को स्थापित और अनइंस्टॉल किया, और मैन्युअल रूप से उस फ़ोल्डर को हटा दिया। /etc/resolv.confबस फिर से लिखा गया, इसलिए मुझे लगता है कि auditctlकाम करना बहुत मददगार होगा।
1

@jontsai की उपस्थिति /etc/resolvconfसामान्य है, भले ही आपके पास resolvconfपैकेज न हो , कुछ पैकेज वहां हुक छोड़ते हैं, और इन हुक का उपयोग केवल तभी किया जाता है यदि resolvconfस्थापित किया गया हो। auditctlयदि समस्या फिर से दिखाई देती है तो मैंने लाइन को ठीक कर दिया है।
गिल्स एसओ- बुराई को रोकें '

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

4

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

sudo chattr +i /etc/resolv.conf

+ मैं इस बात का ध्यान रखता हूं कि फ़ाइल को रूट द्वारा भी बूट पर रीसेट न किया जाए।

उपरोक्त पूर्ववत करने के लिए

sudo chattr -i /etc/resolv.conf

अधिक जानकारी के लिए

man chattr

इसने मेरे लिए काम नहीं किया। नेटवर्क प्रबंधक को पुनरारंभ करना अभी भी डीएचसीपी नेमवेरर्स के साथ /etc/resolv.conf को ओवरराइट करता है।
टॉमी

जीसीपी के अंदर चलने वाले डेबियन 9 वीएम पर मेरे लिए काम किया। वाह! धन्यवाद!
The0ther

3

एक और विकल्प है कि मैं कुछ किस्मत के साथ शामिल है का उपयोग कर रहा है resolvconf

इस फ़ाइल में कोई भी प्रविष्टि जोड़ें:

/etc/resolvconf/resolv.conf.d/base

और उन्हें इसमें जोड़ा जाएगा /etc/resolv.conf

इसके लिए धन्यवाद उबंटू पोस्टिंग से पूछें: मैं कैसे resolv.conf में लाइनें शामिल करता हूं जो रिबूट पर खो नहीं जाएंगे?


3

मैं की अद्यतन को अक्षम resolv.confएक फ़ाइल कहा जाता है बनाने के द्वारा disable_make_resolv_confमें/etc/dhcp3/dhclient-enter-hooks.d

#!/bin/sh
make_resolv_conf(){
}

यह मानक फ़ंक्शन को उसी नाम से प्रतिस्थापित करता है जो resolv.confताज़ा करने के लिए जिम्मेदार है ।


1

इस पर देर से ही सही लेकिन मैं अपना मामला पोस्ट कर दूंगा क्योंकि यह उपरोक्त सभी से अलग था।

मेरे मामले में, /etc/resolv.confएक सहानुभूति है /var/run/NetworkManager/resolv.conf, और किसी कारण cat /etc/resolv.confसे मुझे इस तरह की फ़ाइल या निर्देशिका में त्रुटि मिलती है (शायद इसलिए कि यह खाली है?)

अगर मैं इसे vi के साथ खोलता हूं और nameserver x.x.x.xइसे काम करता हूं , लेकिन रिबूट पर मंजूरी दे दी जाती है।

मैंने संपादित करने /etc/network/interfacesऔर जोड़ने dns-nameservers x.x.x.x, बदलने /etc/dhcp/dhclient.confऔर हटाने का प्रयास किया request domain-name-servers, संपादित भी किया prepend domain-name-servers x.x.x.x

Resolvconf बाइनरी स्थापित नहीं है, NetworkManager.confकुछ भी प्रासंगिक नहीं है। लेकिन हर बार जब मैंने मशीन को फिर से चालू किया, तो कोई डोमेन सर्वर नहीं था।

मुझे यकीन नहीं है कि कारण क्या है, लेकिन इस तथ्य के साथ ऐसा लगता है कि यह एक VBox मशीन है, जिसे GNS3 द्वारा शुरू किया गया है और क्योंकि VBox सेटिंग के अंदर, मुझे इसे बिना किसी इंटरफ़ेस के छोड़ना होगा। जाहिरा तौर पर GNS3 मशीन शुरू करते समय मक्खी पर एक "UDP इंटरफ़ेस" बनाता है, बशर्ते कि मैं इसे GNS3 से शुरू करूँ।

तो, मुझे बेहद खोज से बचाने के लिए, मैं सिर्फ जोड़ा echo nameserver x.x.x.x> /etc/resolv.confकरने के लिए /etc/profile, समस्या हल नहीं है (हल है, लेकिन चारों ओर काम किया hehe)। लेकिन यह जानना दिलचस्प हो सकता है कि अगर कोई इसमें भाग गया तो उस परिदृश्य के साथ क्या होगा।


1

अगर आपके पास फाइल है /etc/NetworkManager/NetworkManager.conf

cat /etc/NetworkManager/NetworkManager.conf

resolv.conf को रीसेट करने से रोकने के लिए आप NetworkManager को कॉन्फ़िगर कर सकते हैं

sudo sh -c 'echo "
[main]
dns=none
" >> /etc/NetworkManager/NetworkManager.conf'
cat /etc/NetworkManager/NetworkManager.conf

अब मैन्युअल रूप से अपना परिवर्तन करें /etc/resolv.confऔर इसके स्थायित्व का परीक्षण करें

sudo systemctl restart NetworkManager
# sudo service network-manager restart
cat /etc/resolv.conf

स्रोत: https://askubuntu.com/a/623956/452398


धन्यवाद, डीएनएस जोड़ना = कोई भी समस्या को उचित तरीके से ठीक नहीं करता है।
टायर

0

बस अपने ifcfg-ethX फाइलों में प्रविष्टियां करें जैसे

DNS1 = 192.168.xx

DNS2 = 192.168.xx

डोमेन = yourdomain.com

तब नेटवर्क प्रबंधक उन रिकॉर्ड्स को पोस्ट को फिर से खोल देगा, जिन्हें आप सेवाओं को पुनरारंभ करने या अपने बॉक्स को पुनरारंभ करने के बाद फाइल में फिर से खोल सकते हैं।


0

बस उसी स्थिति में जब कोई गिरता है:

मैं भूल गया कि मैंने फ़ाइल के अंदर एक अंतरफलक पर dhcp सेट किया है /etc/network/interfaces

Networkmanager को /etc/resolv.confमिलने वाले dhcp उत्तर से संशोधित होगा ।

hth


0

जब वहाँ # Generated by NetworkManager में/etc/resolv.conf

नेटवर्क प्रबंधक कॉन्‍फ़िगर संपादित करें:

sudo vim /etc/NetworkManager/NetworkManager.conf

में [main]खंड जोड़ने rc-manager=unmanaged:

[main]                                                                                                                                   
rc-manager=unmanaged

क्यूं कर?

rc-manager- Resolv.conf प्रबंधन मोड सेट करें। डिफ़ॉल्ट मान NetworkManager बिल्ड विकल्पों पर निर्भर करता है, और NetworkManager का यह संस्करण "सिमिलिंक" के डिफ़ॉल्ट रूप से बनाया गया था।

(...)

unmanaged: मत छुओ /etc/resolv.conf

अधिक जानकारी के लिए संदर्भ का संदर्भ लें: https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html

फिर अपने /etc/resolv.confनेटवर्क को संपादित करें और देखने के लिए नेटवर्क प्रबंधक को फिर से शुरू करें , अगर /etc/resolv.confअछूता रहता है:

sudo systemctl restart NetworkManager

या

sudo service network-manager restart

से:

cat /etc/resolv.conf

प्रक्रिया में विफल रहा है और अगर /etc/resolv.confनेटवर्क प्रबंधक के दौरान ओवरराइट किया गया था जोड़ने की कोशिश को पुनः आरंभ dns=noneकरने के लिए [main]config में खंड के रूप में https://askubuntu.com/a/1150326/364772 कहा

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