dnsmasq: पोर्ट 53 के लिए श्रवण सॉकेट बनाने में विफल: पहले से उपयोग में पता


16

मैं नीचे दिए गए लिंक https://help.ubuntu.com/community/Dnsmasq के रूप में एक सर्वर स्थापित कर रहा था

root@user-desktop:/etc/init.d# sudo apt-get install dnsmasq
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  dnsmasq
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/15.4 kB of archives.
After this operation, 120 kB of additional disk space will be used.
Selecting previously unselected package dnsmasq.
(Reading database ... 146283 files and directories currently installed.)
Unpacking dnsmasq (from .../dnsmasq_2.59-4_all.deb) ...
Processing triggers for ureadahead ...
Setting up dnsmasq (2.59-4) ...
 * Starting DNS forwarder and DHCP server dnsmasq                                                                                                                                                            
dnsmasq: failed to create listening socket for port 53: Address already in use [fail]
invoke-rc.d: initscript dnsmasq, action "start" failed.

जवाबों:


8

मुझे वही मुद्दा मिलता है जो आप करते हैं। मुझे लगता है कि यह 12.10 से सच है, लेकिन यह धागा 12.10 की रिलीज से पहले बंद हो गया था।

चारों ओर कुछ गुगली करना (ज्यादातर यहाँ से प्रेरित है ), मुझे यह हल मिला:

  • /etc/NetworkManager/NetworkManager.confआपके साथ सबसे प्यारे संपादक की फाइल को संपादित करें
  • लाइन टिप्पणी करें dns=dnsmasq
  • नेटवर्क प्रबंधक को पुनरारंभ करें: sudo service network-manager restart

लेकिन आपके dnsmasq कॉन्फ़िगरेशन ( /etc/dnsmasq.conf) में, आपको लाइन के साथ स्थानीयहोस्ट DNS प्रश्नों को सुनना सुनिश्चित करना होगा listen-address=127.0.0.1

यदि आप dnsmasq का कॉन्फ़िगरेशन बदलते हैं, तो चलाना न भूलें sudo /etc/init.d/dnsmasq restart

मुझे उम्मीद है कि इससे सहायता मिलेगी।


2
टिप्पणी करने से dns=dnsmasqयह नहीं होता है कि DNSmasq को स्थापित करने के उद्देश्य को पराजित करें। मैंने listen-address=127.0.0.1बदलाव किया और यह अब ठीक काम करने लगता है।

1
नहीं, आप नेटवर्कमैन्स को dnsmasq शुरू करने और इसके बजाय इसे स्वतंत्र रूप से शुरू करने से रोक रहे हैं।
15

4

मुझे भी यही समस्या थी।

dnsmasq-baseस्थापित किया गया था और पोर्ट 53 dnsmasqको शुरू होने से रोकने के बारे में सुना गया था ।

एक ही उद्देश्य dnsmasq-baseके dnsmasqलिए इनसाइड का उपयोग करना संभव है : बस एक और कॉन्फ़िगर निर्देशिका का उपयोग करें: एक Network Managerफ़ोल्डर में रखा गया है :

/etc/NetworkManager/dnsmasq.d/

4

चेक करें कि पोर्ट 53 (डोमेन) के साथ क्या सुन रहा है:

sudo ss -lp "sport = :domain"

इस पोर्ट पर चलने वाली किसी भी सेवा को अक्षम करें। यह आमतौर पर है systemd-resolved

मैं maskयह भी करने जा रहा हूँ तो यह रिबूट पर ऑटो शुरू नहीं करता है।

sudo systemctl disable systemd-resolved
sudo systemctl mask systemd-resolved

आपने जो किया उसे पूर्ववत करने के लिए:

sudo systemctl unmask systemd-resolved
sudo systemctl enable systemd-resolved

यह sudo update-rc.d systemd-resolved disableभी बूट पर शुरू ऑटो से रोक सकता है, लेकिन मैं यह परीक्षण नहीं किया है। कमांड को पूर्ववत करने के defaultsबजाय उपयोग करें disable


या आप फ़ाइल को संपादित करके पोर्ट dnsmasq क्या सुनता है, इसे बदल सकते हैं:

sudo nano /etc/dnsmasq.conf

हिट Ctrl+ Wटाइप करें listen-address=और हिट दर्ज करें।

लाइन को अपग्रेड करें और 53 पोर्ट की तरह एक अलग पोर्ट के साथ 127.0.0.1 जोड़ें:

listen-address=127.0.0.1#5300

0

संपादित करें: कुछ googling, और मुझे समाधान मिला । ऐसा लगता है कि नेटवर्क प्रबंधक "dnsmasq-base" नामक एक पैकेज पर निर्भर करता है जो कुछ dnsmasq कार्यक्षमता प्रदान करता है। Ubuntu विकी में Dnsmasq की प्रविष्टि बताती है कि

"ध्यान दें कि पैकेज" dnsmasq "नेटवर्क प्रबंधक के साथ हस्तक्षेप करता है जो इंटरनेट कनेक्शन साझा करते समय DHCP सेवाएं प्रदान करने के लिए" dnsmasq-base "का उपयोग कर सकता है। इसलिए, यदि आप नेटवर्क प्रबंधक (केवल साधारण सेट-अप में ठीक) का उपयोग करते हैं, तो dnsmasq स्थापित करें। -बेस करें, लेकिन dnsmasq नहीं। यदि आपके पास अधिक जटिल सेट-अप है, तो नेटवर्क मैनेजर की स्थापना रद्द करें, dnsmasq, या समान सॉफ़्टवेयर (bind9, dhcpd, आदि) का उपयोग करें और चीजों को हाथ से कॉन्फ़िगर करें। "

दूसरे शब्दों में: आप dnsmasq का उपयोग करना चाहते हैं? तब आप बेहतर जानते हैं कि आप क्या कर रहे हैं। पहले बताए गए समाधान का सुझाव है कि निम्नलिखित तरीके से dnsmasq द्वारा आधार को प्रतिस्थापित किया जा सकता है (पहला कमांड नेटवर्क प्रबंधक को भी हटा देगा):

sudo apt-get remove dnsmasq-base
sudo apt-get install dnsmasq
sudo apt-get install network-manager network-manager-gnome

और यहां कुछ सामान्य टिप्पणियां हैं जो आपके पोर्ट को ब्लॉक करती हैं: आप पा सकते हैं कि किस पोर्ट पर क्या सुन रहा है lsof:

lsof -Pn +M -i4

-i4 के कारण IPv4 पोर्ट को सूचीबद्ध करेगा, जबकि

lsof -Pn +M -i6

IPv6 पोर्ट को सूचीबद्ध करेगा। या बस टाइप करें

lsof -Pn +M | grep ':53 (LISTEN)'

यह (उम्मीद है) आपको बताएंगे कि पोर्ट 53 का उपयोग क्या है। -Pnकमांड लाइन स्विच पोर्ट नंबर / होस्ट आईपी के नामों के रूपांतरण को रोकता है।

वैकल्पिक रूप से, भागो

netstat -utlnp

3
Dnsmasq-base को न निकालें; dnsmasq पैकेज इस पर निर्भर करता है!
jdthood

3
ऐसा करते समय सावधान रहें, दौड़ने के बाद sudo apt-get remove dnsmasq-baseमुझे बिना किसी नेटवर्क कनेक्शन के छोड़ दिया गया ताकि मैं अगले चरण न कर सकूं! समाधान एक नया आईपी पता प्राप्त करने के लिए धीर चल रहा है।
ग्लेनजामिन

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