जब dnsmasq पुनरारंभ हो जाता है, तो dnsmasq को फिर से लिखना शुरू कर देता है


9

मैं डेबियन जेसी चला रहा हूं और एक कोचिंग DNS सर्वर के रूप में dnsmasq को कॉन्फ़िगर करने की कोशिश कर रहा हूं। मैंने निम्नलिखित के साथ आने के लिए एक गाइड का उपयोग किया /etc/dnsmasq.conf:

listen-address=127.0.0.1
bind-interfaces
domain-needed
bogus-priv
no-hosts
dns-forward-max=150
cache-size=1000
neg-ttl=3600
resolv-file=/etc/resolv.dnsmasq
no-poll

करना sudo service dnsmasq restartविफल रहता है और यह मुझे बताना शुरू नहीं करेगा

Mar 26 17:13:01 user dnsmasq[26743]: dnsmasq: syntax check OK.
Mar 26 17:13:01 user dnsmasq[26746]: dnsmasq: only one resolv.conf file allowed in no-poll mode.

ठीक है, अजीब तरह का है कि एक गाइड से सीधे एक विन्यास विफल हो गया। मैं सिर्फ no-pollयह देखने के लिए विकल्प निकालूंगा कि यह काम करता है या नहीं। इस बार यह ठीक है, लेकिन DNS रिज़ॉल्यूशन स्पष्ट रूप से विफल हो रहा है। उपयुक्त फाइले:

/etc/resolv.conf:

nameserver 127.0.0.1

/etc/resolv.dnsmasq:

nameserver 8.8.8.8

/var/run/dnsmasq/resolv.conf:

nameserver 127.0.0.1

तीसरी फ़ाइल dnsmasq की लाइव resolv.conf फ़ाइल प्रतीत होती है, क्योंकि इसमें एक नेमसर्वर लाइन जोड़ते समय, जबकि dnsmasq पहले से ही चल रहा है, DNS रिज़ॉल्यूशन को तत्काल काम करना शुरू कर देता है। इसलिए ऐसा लग रहा है कि इसने मेरी उपेक्षा की है /etc/resolv.dnsmasq। मैं भी करने के लिए एक नेम सर्वर लाइन जोड़ने की कोशिश की मेरी /etc/resolv.confऔर हटाने resolv-fileमें लाइन /etc/dnsmasq.confहै, लेकिन यह आप क्या कर रहे पर ऊपर देखने के लिए तुरंत overwritted हो जाता है sudo service dnsmasq restart

Dnsmasq के साथ क्या चल रहा है और क्या मैं dnsmasq को caching DNS सर्वर के रूप में कॉन्फ़िगर करता हूं?


1
यदि आप एक स्थिर सर्वर चाहते हैं, तो आप server=8.8.8.8अपने dnsmasq config में क्यों नहीं डालते हैं?
22

मैं सोच रहा हूँ no-pollमूल रूप से अनदेखी करने के लिए कहते हैं resolv-file। स्टार्टअप पर, यह पूरी तरह से नई फ़ाइल लेता है, इसलिए यह /etc/resolv.confआपके मामले में होगा (क्योंकि जब कुछ बदलता है तो यह फिर से लिखा जाता है)।
त्रिकाल

मुझे अभी भी नहीं पता है कि ऐसा करने का सही तरीका क्या होगा यदि मेरे पास एक से अधिक DNS सर्वर हैं, लेकिन जब से मैं नहीं करूँगा मैं खुश रहूँगा कि आपकी टिप्पणी से मेरा मुद्दा हल हो गया।
nullUser

जवाबों:


11

यदि स्थानीय लूपबैक इंटरफ़ेस स्पष्ट रूप से फ़ाइल में -ed नहीं है, तो स्थानीय रिज़ॉल्वर को बंद करने के लिए dnsmasqउपयोग resolvconfकरने के लिए स्टार्ट-अप स्क्रिप्ट में एक बग प्रतीत होता है ।except/etc/defaults/dnsmasq

संक्षिप्त उत्तर यह है कि आप जोड़ सकते हैं ...

DNSMASQ_EXCEPT=lo

/etc/defaults/dnsmasqसमस्या को हल करने के लिए।

अधिक जानकारी के लिए, यह प्रश्न देखें ...

/raspberrypi/37439/proper-way-to-prevent-dnsmasq-from-overwriting-dns-server-list-supplied-by-dhcp


इससे मेरी जान बच गई। धन्यवाद।
रयान बोब्रोस्की

3

bigjosh सही है - सिवाय इसके कि dnsmasq को अपडेट किया गया है, और अब एक विकल्प है /etc/default/dnsmasqजिसके अंत में आप un-hash हो सकते हैं:

IGNORE_RESOLVCONF=yes

यह है कि यह Ubuntu 16.04 पर मेरे जटिल सेटअप के साथ काम करता है।
इकॉन

1
bigjosh का तरीका मेरे लिए काम कर गया। भले ही इस मुद्दे को हल करने के लिए इसे अनसुना करने के निर्देश /etc/defaults/dnsmasqथे IGNORE_RESOLVECONF=yes, जो यह नहीं था।
औरो जूल

2

उपयोग न करें

resolv-file=/etc/resolv.dnsmasq

Dnsmasq.conf में dns सर्वर डालें, जैसे

server=/localnet/192.168.0.1 # change ip for your ip-server
server=8.8.8.8
server=8.8.4.4

और dnsmasq.conf में जोड़ें

no-resolv

1

यदि आप केवल एक कैशिंग-केवल DNS सर्वर चाहते हैं और कुछ और फैंसी जो dnsmasq कर सकते हैं, तो आप lwresdया तो इंस्टॉल करना या unboundस्टॉक डिफ़ॉल्ट कॉन्फ़िगरेशन का उपयोग करना बेहतर होगा जो आपको कैशिंग-केवल DNS सर्वर प्रदान करता है। फिर आप बस /etc/resolv.conf"नामकरण 127.0.0.1" का उपयोग करने के लिए तैयार हैं और आपका काम हो गया।

अच्छी बात यह है कि इन दोनों पैकेजों में गड़बड़ी नहीं है, /etc/resolv.confजैसे कि dnsmasq क्या करता है और इस तरह एक क्लीनर समाधान IMHO है। आप आमतौर पर resolvconfपैकेज को हटा भी सकते हैं ताकि कुछ भी गड़बड़ न हो /etc/resolv.conf

FYI करें, dnsmasq बल्कि जटिल हो गया है, बहुत सी घंटियाँ और सीटी और अभी ज्यादातर लोगों के लिए दर्द पैदा कर रहा है। मेरी किताब में KISS उल्लंघन करती है।


दुर्भाग्य से, कुछ पैकेज निर्भर करते हैं dnsmasq-base, जैसे network-managerऔर libvirt-bin(यदि आप केवीएम कर रहे हैं), तो यह हमेशा पूरी तरह से छुटकारा पाने के लिए संभव नहीं है। उस स्थिति में, आप इसे हटा सकते हैं /usr/sbin/dnsmaqऔर इसे कड़ी-कड़ी बना सकते हैं /bin/trueताकि यह हमेशा सफल रहे (init स्क्रिप्ट को बेवकूफ बनाने के लिए) फिर chattr +i /usr/sbin/dnsmasqइसे अपडेट होने से रोकने के लिए। मुझे कई लैपटॉप पर ऐसा करना पड़ा है।
मिली

+1 के साथ-साथ philandstuff.com/2013/11/07/dnsmasq-resolvconf.html में वर्णित है । वास्तविक रूप से घृणित व्यवहार और पोस्ट और बग रिपोर्ट के 5 साल बाद भी दर्द होता रहता है ...
user2480144
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.