NetworkManager के dnsmasq को कॉन्फ़िगर / उपयोग / होस्ट करने के लिए कॉन्फ़िगर करें


22

मैंने DNSMASQ स्थापित किया है लेकिन 53 पोर्ट व्यस्त होने के कारण यह शुरू नहीं हो रहा था।

मुझे पता चला कि ubuntu के पास पहले से ही dnsmasq पैकेज था और यह काम कर रही है।

अब समस्या यह है ... मैं सिर्फ इसके माध्यम से / आदि / मेजबानों में अपने मेजबानों को हल करने में सक्षम होना चाहता हूं

यानी: nslookup somehostonlan localhost / आदि / मेजबानों फ़ाइल से लिए गए कुछ आईपी के लिए हल किया जा करने के लिए।

लेकिन ऐसा नहीं हो रहा है।

क्यूं कर? BTW, कैशिंग DNS सर्वर के रूप में यह ठीक काम कर रहा है। मैं बस यही चाहता हूं कि मेजबानों / / मेजबानों से मेजबानों को हल किया जाए

जवाबों:


22

इंटरनेट को गति देने के लिए, ubuntu 12.04 ने एक स्थानीय dns सर्वर dnsmasq शुरू करने के लिए NetworkManager में एक प्लगइन जोड़ा है, जो कि caches प्रविष्टियों को डीएनएस करता है। समस्या यह है कि प्लगइन ने हार्ड-कोड -no- होस्ट को हार्डकोड किया है।

तो इसका एक उपाय यह है कि NetworkManager config file में प्लगइन लोड करने वाली लाइन को फिर से टिप्पणी करें और NetworkManager को फिर से शुरू करें:

sudo mv /etc/NetworkManager/NetworkManager.conf /etc/NetworkManager/NetworkManager.conf.bak
sudo bash -c 'cat /etc/NetworkManager/NetworkManager.conf.bak | sed -e "s/^\(dns=dnsmasq\)$/#\1/" > /etc/NetworkManager/NetworkManager.conf'
sudo restart network-manager

एक अन्य उपाय यह है कि अवांछित तर्क को छानने के लिए dnsmasq को लपेटें:

sudo mv /usr/sbin/dnsmasq /usr/sbin/dnsmasq.bin
sudo bash -c 'cat > /usr/sbin/dnsmasq' << EOF
#!/bin/sh
dnsmasq=/usr/sbin/dnsmasq.bin

exec $dnsmasq `echo $@ | sed -e s/--no-hosts//`
EOF

sudo chmod 755 /usr/sbin/dnsmasq

कृपया बग को प्रभावित करते हुए चिह्नित करें ।

सिस्टम फ़ाइलों को पैच किए बिना एक और समाधान

cat /etc/NetworkManager/dnsmasq.d/hosts.conf 

addn-hosts=/etc/hosts

7

इस बग ने मुझे अब भी प्रभावित किया (उबंटू 14.04)।

अंत में मुझे एक समाधान मिला कि, बस इस लाइन को 'वर्क-होस्ट्स / / etc / होस्ट्स' को न्यूवर्कमैनगर पैकेज की dnsmasq कॉन्फ़िगरेशन फाइल में जोड़ें।

echo 'addn-hosts=/etc/hosts' > /etc/NetworkManager/dnsmasq.d/etc-hosts
service network-manager restart

विचार यह है, हम एक अतिरिक्त होस्ट फ़ाइल के रूप में / etc / मेजबान जोड़ रहे हैं।

यहां तक ​​कि अगर मुझे कोई समाधान मिल सकता है, तो बाइनरी फ़ाइल / usr / sbin / NetworkManager में हार्ड-कोडेड विकल्प '--no- होस्ट' मुझे निराश करता है।


7

अगस्त 2015 तक, अन्य उत्तर पुराने हैं।

सरल उत्तर

  1. बनाएँ /etc/NetworkManager/dnsmasq.d/hosts.conf
  2. इसमें लाइन्स डालें address=/whatever/1.2.3.4डॉक्स देखें ( देखें --address)। वाइल्डकार्ड संभव हैं address/.whatever./1.2.3.4:।
  3. मार dnsmasq( बग )।
  4. इसे पुनः आरंभ करें $ service network-manager restart:।

1

dnsmasq को स्वचालित रूप से /etc/hostsफाइल का उपयोग करना चाहिए । इसे -hकमांड लाइन विकल्प या no-hostsकॉन्फ़िगरेशन विकल्प द्वारा अक्षम किया जा सकता है । मैं डिफ़ॉल्ट कॉन्फ़िगरेशन में सेट होने की उम्मीद नहीं करूंगा।

इसके होस्ट फ़ाइल को पुनः लोड करने के लिए dnsmasq को मजबूर करने का प्रयास करें। (कॉन्फ़िगरेशन फ़ाइल में परिवर्तन के लिए पुनरारंभ की आवश्यकता होती है)। या तो इन कमांड को काम करना चाहिए।

service dnsmasq reload

kill -HUP $(pidof dnsmasq)

यदि आप एक ऐसी प्रणाली के साथ काम कर रहे हैं जो no-hostsनिर्दिष्ट है तो आपको addn-hostsइसे ओवरराइड करने के लिए विकल्प का उपयोग करने में सक्षम होना चाहिए । आम तौर पर, इसका उपयोग /etc/hostsप्रारूप में एक अतिरिक्त फ़ाइल को पढ़ने के लिए किया जाएगा । इसका उपयोग अतिरिक्त होस्ट डेटा को निर्दिष्ट करने के लिए किया जा सकता है जिसे आप DNS प्रदान करना चाहते हैं, लेकिन अपनी /etc/hostsफ़ाइल में नहीं चाहते हैं । इसका उपयोग पैकेज प्रबंधक और संबंधित उपकरणों को प्रबंधित करने की अनुमति देने के लिए किया जा सकता है /etc/hostsजबकि वैकल्पिक फ़ाइल में अतिरिक्त होस्ट डेटा प्रदान किया जाता है।


/etc/dnsmasq.conf में सभी विकल्पों पर टिप्पणी की गई है। मदद नहीं
रीलोडिंग

मुझे नहीं पता कि मैंने क्या किया। यह अब काम कर रहा है
bakytn

3
जब आप वास्तव में उत्तर नहीं जानते हैं तो आप इसका जवाब क्यों देंगे? तथ्य यह है कि आप "या तो डिफ़ॉल्ट कॉन्फ़िगरेशन में सेट होने की उम्मीद नहीं करेंगे" यह ऐसा नहीं करता है क्योंकि यह वास्तव में सेट किया गया है और नेटवर्कमांगर में dnsmasq में हार्ड-कोडित है।
जस्टिन बुसर

dnsmasq को विन्यास फाइल में परिवर्तन लोड करने के लिए पुनः आरंभ किया जाना चाहिए
txwikinger

@txwikinger सिग्नल मिलने पर कई विकल्प फाइलें फिर से मिल जाती dnsmasqहैं HUP। इसमें फ़ाइल /etc/hostsऔर /etc/ethersफ़ाइल दोनों शामिल हैं । रिस्टार्ट बार काफी तेज होते हैं, कि ग्राहकों को प्रतिक्रिया नहीं मिलना दुर्लभ होगा।
बिलथोर 24'14
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.