dnsmasq: failed to create listening socket for port 53: Address already in use
I was setting up a server as in the below link 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.
Solution 1:
Check what's listening on port 53 (domain) with:
sudo ss -lp "sport = :domain"
Disable any service that is running on this port. It's usually systemd-resolved
.
I'm going to also mask
it so it doesn't auto start on reboot.
sudo systemctl disable systemd-resolved
sudo systemctl mask systemd-resolved
Also, make sure that you have stopped the systemd-resolved
service. Run:
sudo systemctl stop systemd-resolved
To undo what you did:
sudo systemctl unmask systemd-resolved
sudo systemctl enable systemd-resolved
Also sudo update-rc.d systemd-resolved disable
might also stop it from auto starting on boot but I haven't tested it. Use defaults
instead of disable
to undo the command.
Or you can change what port dnsmasq listens on, by editing the config file:
sudo nano /etc/dnsmasq.conf
Hit Ctrl+W and type listen-address=
and hit enter.
Uncomment the line and add 127.0.0.1 with a different port than 53 like:
listen-address=127.0.0.1#5300
Solution 2:
I get the same issue as you do. I think that it's true since 12.10, but this thread was closed before the release of 12.10.
Making some googling around (mostly inspired from here), I found this solution:
- edit
/etc/NetworkManager/NetworkManager.conf
file with you lovest editor - comment the line
dns=dnsmasq
- restart the network manager :
sudo service network-manager restart
But in your dnsmasq configuration (/etc/dnsmasq.conf
), you have to be sure to listen the localhost DNS queries with the line listen-address=127.0.0.1
.
If you change the configuration of dnsmasq, don't forget to run sudo /etc/init.d/dnsmasq restart
I hope this will help.
Solution 3:
I had the same problem.
dnsmasq-base
was installed and listened on port 53 preventing dnsmasq
to start.
It is possible to use dnsmasq-base
insead of dnsmasq
for the same purpose: just use another config directory: the one placed in Network Manager
folder:
/etc/NetworkManager/dnsmasq.d/