dnsmasq: не удалось создать прослушивающий сокет для порта 53: адрес уже используется

Я настраивал сервер, как показано ниже по ссылке 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.
13
задан 21 September 2012 в 11:23

5 ответов

У меня была такая же проблема.

dnsmasq-base был установлен и прослушивал порт 53, предотвращая запуск dnsmasq.

Можно использовать dnsmasq-base внутри dnsmasq для той же цели: просто используйте другой каталог конфигурации: тот, который находится в папке Network Manager:

/etc/NetworkManager/dnsmasq.d/
0
ответ дан 21 September 2012 в 11:23

У меня та же проблема, что и у вас. Я думаю, что это правда с 12.10, но этот поток был закрыт до выпуска 12.10.

Делая некоторые поиски (в основном вдохновленные здесь ), я нашел это решение:

  • отредактируйте файл /etc/NetworkManager/NetworkManager.conf с вашим любимым редактором
  • [ 119] прокомментируйте строку dns=dnsmasq
  • перезапустите менеджер сети: sudo service network-manager restart

Но в вашей конфигурации dnsmasq (/etc/dnsmasq.conf) вы должны быть уверены, что прослушали DNS-запросы localhost со строкой listen-address=127.0.0.1.

Если вы измените конфигурацию dnsmasq, не забудьте запустить sudo /etc/init.d/dnsmasq restart

Надеюсь, это поможет.

0
ответ дан 21 September 2012 в 11:23

РЕДАКТИРОВАТЬ: немного погуглил, и я нашел решение . Кажется, что сетевой менеджер зависит от пакета, называемого «dnsmasq-base», который предоставляет некоторые функции dnsmasq. Запись Dnsmasq в Ubuntu Wiki гласит, что

«Обратите внимание, что пакет« dnsmasq »взаимодействует с Network Manager, который может использовать« dnsmasq-base »для предоставления служб DHCP при совместном использовании подключение к Интернету. Поэтому, если вы используете сетевой менеджер (хорошо только в простых установках), установите dnsmasq-base, но не dnsmasq. Если у вас более сложная настройка, удалите сетевой менеджер, используйте dnsmasq или подобное программное обеспечение (bind9, dhcpd и т. д.) и настройте их вручную. "

Другими словами: вы хотите использовать dnsmasq? Тогда тебе лучше знать, что ты делаешь. Решение , упомянутое ранее, предлагает заменить dnsmasq-base на dnsmasq следующим образом (первая команда также удалит network-manager):

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

перечислит порты IPv4 из-за -i4, в то время как

lsof -Pn +M -i6

список портов IPv6. Или введите просто

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

Это должно (надеюсь) рассказать вам, что использует порт 53. Переключатели командной строки -Pn предотвращают преобразование номера порта / IP-адреса хоста в имена.

В качестве альтернативы, запустите

netstat -utlnp
0
ответ дан 21 September 2012 в 11:23

Проверьте то, что слушает на порте 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= и хит входит.

Некомментарий строка и добавляют 127.0.0.1 с другим портом, чем 53 как:

listen-address=127.0.0.1#5300
2
ответ дан 17 October 2019 в 16:35

Если вы не хотите испортить распознаватель, сделайте это с rc.local.

Отключите автоматический запуск dnsmasq.

servicectl отключить dnsmasq

Создать файл /etc/rc.local или /etc/rc.d/rc.local в зависимости от дистрибутива.

Установить разрешения chmod +x /etc/rc.local

Редактировать файл:

#!/bin/bash
service systemd-resolved stop
service dnsmasq start

Отключение systemd-resolved при запуске вызывает проблемы. Я полагаю, что это как-то связано с файлом /etc/resolv.conf, но я не уверен. Все, что я знаю, это то, что первый ответ вызвал у меня много проблем и в конечном итоге вообще не сработал. Простая остановка systemd-resolved, а затем запуск dnsmasq после полной загрузки работает отлично, по крайней мере, на Mint. Я не могу говорить о других дистрибутивах.

0
ответ дан 20 January 2021 в 03:18

Другие вопросы по тегам:

Похожие вопросы: