Я настраивал сервер, как показано ниже по ссылке 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.
У меня была такая же проблема.
dnsmasq-base
был установлен и прослушивал порт 53, предотвращая запуск dnsmasq
.
Можно использовать dnsmasq-base
внутри dnsmasq
для той же цели: просто используйте другой каталог конфигурации: тот, который находится в папке Network Manager
:
/etc/NetworkManager/dnsmasq.d/
У меня та же проблема, что и у вас. Я думаю, что это правда с 12.10, но этот поток был закрыт до выпуска 12.10.
Делая некоторые поиски (в основном вдохновленные здесь ), я нашел это решение:
/etc/NetworkManager/NetworkManager.conf
с вашим любимым редактором 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
Надеюсь, это поможет.
РЕДАКТИРОВАТЬ: немного погуглил, и я нашел решение . Кажется, что сетевой менеджер зависит от пакета, называемого «dnsmasq-base», который предоставляет некоторые функции dnsmasq. Запись Dnsmasq в Ubuntu Wiki гласит, что
«Обратите внимание, что пакет« dnsmasq »взаимодействует с Network Manager, который может использовать« dnsmasq-base »для предоставления служб DHCP при совместном использовании подключение к Интернету. Поэтому, если вы используете сетевой менеджер (хорошо только в простых установках), установите dnsmasq-base, но не dnsmasq. Если у вас более сложная настройка, удалите сетевой менеджер, используйте dnsmasq или подобное программное обеспечение (bind9, dhcpd и т. д.) и настройте их вручную. "
blockquote>Другими словами: вы хотите использовать 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
Проверьте то, что слушает на порте 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
Если вы не хотите испортить распознаватель, сделайте это с 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. Я не могу говорить о других дистрибутивах.