dnsmasq: Listening Socket konnte nicht erstellt werden: Adresse wird bereits verwendet

8

Das Betriebssystem ist Scientific Linux 6.3 (ähnlich wie Redhat, Centos und Fedora) und ich habe dnsmasq mit der folgenden Konfiguration installiert

interface=eth1
domain=hpclab
expand-hosts
dhcp-range=10.0.2.51,10.0.2.100,static
dhcp-option=42,0.0.0.0
dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/var/lib/tftpboot
dhcp-host=08:00:27:69:73:7A,ws04,10.0.2.51

und der aktuelle Knoten (der dnsmasq ausführt) hat diese IP

eth1  Link encap:Ethernet  HWaddr 08:00:27:A9:20:C0  
      inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
      inet6 addr: fe80::a00:27ff:fea9:20c0/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

Beim Versuch, den dnsmasq-Dienst zu starten, wird jedoch eine Fehlermeldung angezeigt

[root@localhost mahmood]# /etc/init.d/dnsmasq status
dnsmasq is stopped
[root@localhost mahmood]# /etc/init.d/dnsmasq start
Starting dnsmasq: 
dnsmasq: failed to create listening socket: Address already in use
                                                       [FAILED]

Der Befehl netstat zeigt die folgenden Informationen an

[root@localhost mahmood]# netstat -anlp | grep -w LISTEN
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      1252/rpcbind        
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      1445/cupsd          
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1685/master         
tcp        0      0 0.0.0.0:46556               0.0.0.0:*                   LISTEN      1348/rpc.statd      
tcp        0      0 :::111                      :::*                        LISTEN      1252/rpcbind        
tcp        0      0 :::80                       :::*                        LISTEN      4884/httpd          
tcp        0      0 ::1:631                     :::*                        LISTEN      1445/cupsd          
tcp        0      0 :::51096                    :::*                        LISTEN      1348/rpc.statd      

und

[root@localhost mahmood]# netstat -aunp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
udp        0      0 0.0.0.0:69                  0.0.0.0:*                               5110/xinetd         
udp        0      0 0.0.0.0:34136               0.0.0.0:*                               1323/avahi-daemon   
udp        0      0 0.0.0.0:38756               0.0.0.0:*                               1348/rpc.statd      
udp        0      0 0.0.0.0:5353                0.0.0.0:*                               1323/avahi-daemon   
udp        0      0 0.0.0.0:1003                0.0.0.0:*                               1252/rpcbind        
udp        0      0 0.0.0.0:111                 0.0.0.0:*                               1252/rpcbind        
udp        0      0 0.0.0.0:631                 0.0.0.0:*                               1445/cupsd          
udp        0      0 0.0.0.0:676                 0.0.0.0:*                               1348/rpc.statd      
udp        0      0 0.0.0.0:68                  0.0.0.0:*                               5189/dhclient       
udp        0      0 :::1003                     :::*                                    1252/rpcbind        
udp        0      0 :::111                      :::*                                    1252/rpcbind        
udp        0      0 :::43248                    :::*                                    1348/rpc.statd      

Was kann einen solchen Fehler verursachen und wie kann ich das beheben?

Mahmood
quelle
Bitte posten Sie auch die Ausgabe von netstat -anup. Ich vermute, dass ein Prozess an UDP / 53 und / oder UDP / 67 gebunden ist.
Steven Montag,
Ich habe den Beitrag aktualisiert
Mahmood

Antworten:

4

Das Problem ist, dass Sie die dnsmasqBereitstellung eines TFTP-Dienstes konfiguriert haben (über die enable-tftpOption in dnsmasq.conf). Der Service-Port für TFTP ist UDP / 69, dnsmasqmöchte also eine Bindung herstellen, xinetdhat dies jedoch bereits getan, und es ist unmöglich, dass zwei verschiedene Prozesse an denselben Service-Port binden.

Wenn Sie dnsmasqeinen TFTP-Dienst bereitstellen möchten , müssen Sie die xinetdKonfiguration (wahrscheinlich /etc/xinetd.conf) bearbeiten, um den TFTP-Dienst zu deaktivieren. Oder, wenn Sie es vorziehen , xinetdTFTP Service bieten, dann müssen Sie entfernen enable-tftpaus dnsmasq.conf.

Steven Montag
quelle
1
Was mir nicht geholfen hat war, dass der Fehler dnsmasq: keinen Listening Socket für 192.168.2.1 erstellen konnte: Die bereits verwendete Adresse ist möglicherweise etwas falsch mit ihrer "bereits verwendeten Adresse", da es sich tatsächlich um den bereits verwendeten Port handelt, aber Das Anwenden einer ähnlichen Logik auf diese Antwort netstat -anupzeigte mich, mit in.tftpder ich aufhörteservice tftpd-hpa stop
Northern Bradley