45 votes

dnsmasq : failed to create listening socket for port 53 : Address already in use

I 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.

41voto

Shayan Points 1149

Vérifiez ce qui écoute sur le port 53 (domaine) avec :

sudo ss -lp "sport = :domain"

Désactiver tout service fonctionnant sur ce port. C'est généralement systemd-resolved .

Je m'assure ici que vous avez arrêté le systemd-resolved service. Je vais également mask pour qu'il ne démarre pas automatiquement au redémarrage.

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

Pour défaire ce que vous avez fait :

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

En outre sudo update-rc.d systemd-resolved disable peut aussi l'empêcher de démarrer automatiquement au démarrage, mais je ne l'ai pas testé. Utiliser defaults au lieu de disable pour annuler la commande.

Notez que systemd-resolved est un composant important pour la résolution de noms. Si vous n'avez pas de service de résolution de noms correctement exécuté et configuré, vous risquez de rencontrer les problèmes suivants Temporary failure in name resolution .


Vous pouvez également modifier le port sur lequel dnsmasq écoute, en éditant le fichier de configuration :

sudo nano /etc/dnsmasq.conf

Frapper Ctrl + W et tapez listen-address= et appuyez sur la touche Entrée.

Décommentez la ligne et ajoutez 127.0.0.1 avec un port différent de 53 :

listen-address=127.0.0.1#5300

9voto

Grumot Points 107

Je rencontre le même problème que vous. Je pense que c'est vrai depuis la version 12.10, mais ce fil a été fermé avant la sortie de la version 12.10.

En faisant quelques recherches sur Internet (principalement inspirées de ici ), j'ai trouvé cette solution :

  • éditer /etc/NetworkManager/NetworkManager.conf fichier avec votre rédacteur en chef le plus aimant
  • commenter la ligne dns=dnsmasq
  • redémarrer le gestionnaire de réseau : sudo service network-manager restart

Mais dans votre configuration dnsmasq ( /etc/dnsmasq.conf ), vous devez vous assurer d'écouter les requêtes DNS de localhost avec la ligne listen-address=127.0.0.1 .

Si vous changez la configuration de dnsmasq, n'oubliez pas d'exécuter sudo /etc/init.d/dnsmasq restart

J'espère que cela vous aidera.

5voto

e-1 Points 153

J'ai eu le même problème.

dnsmasq-base a été installé et a écouté sur le port 53 en empêchant dnsmasq pour commencer.

Il est possible d'utiliser dnsmasq-base à la place de dnsmasq pour le même objectif : il suffit d'utiliser un autre répertoire de configuration : celui placé dans Network Manager dossier :

/etc/NetworkManager/dnsmasq.d/

0voto

shrimpwagon Points 101

Si vous ne voulez pas faire foirer le résolveur, faites comme ceci avec rc.local.

Arrêter le démarrage automatique de dnsmasq.

servicectl disable dnsmasq

Créer un fichier /etc/rc.local o /etc/rc.d/rc.local en fonction de la distribution.

Régler les permanentes chmod +x /etc/rc.local

Modifier le fichier :

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

La désactivation de systemd-resolved au démarrage pose des problèmes. Je pense que cela a quelque chose à voir avec la fonction /etc/resolv.conf mais je n'en suis pas sûr. Tout ce que je sais, c'est que la première réponse m'a causé beaucoup de problèmes et n'a finalement pas fonctionné du tout. Le simple fait d'arrêter systemd-resolved puis de lancer dnsmasq après un démarrage complet fonctionne parfaitement, du moins sur Mint. Je ne peux pas parler des autres distros.

0voto

skal Points 21

Essayez ceci : sudo fuser -k 53/tcp vous obtiendrez l'identifiant du processus lié à ce port puis tuez-le en utilisant sudo kill -9 process-id

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X