Unboundt startet jede Minute neu? error: can't bind socket: Address already in use for 127.0.0.1 port 8953

Hallo zusammen, ich habe mein Unbound zusätzlich zum pi-hole auf meinem Pi 4 mit Bullseyes gemäß dieser Anleitung installiert:
https://docs.pi-hole.net/guides/dns/unbound/
soweit funktioniert auch alles außer das ich im journalctl von Unbound festgestellt habe das der Service jede Minute neu startet.

Hier ein kleiner Auszug aus dem Log:

Mai 15 14:21:01 Gr-SHS-4 systemd[1]: Starting Unbound DNS server...
Mai 15 14:21:01 Gr-SHS-4 systemd[1]: Started Unbound DNS server.
Mai 15 14:22:02 Gr-SHS-4 systemd[1]: Stopping Unbound DNS server...
Mai 15 14:22:02 Gr-SHS-4 systemd[1]: unbound.service: Succeeded.
Mai 15 14:22:02 Gr-SHS-4 systemd[1]: Stopped Unbound DNS server.
Mai 15 14:22:02 Gr-SHS-4 systemd[1]: Starting Unbound DNS server...
Mai 15 14:22:02 Gr-SHS-4 systemd[1]: Started Unbound DNS server.
Mai 15 14:23:02 Gr-SHS-4 systemd[1]: Stopping Unbound DNS server...
Mai 15 14:23:02 Gr-SHS-4 systemd[1]: unbound.service: Succeeded.
Mai 15 14:23:02 Gr-SHS-4 systemd[1]: Stopped Unbound DNS server.
Mai 15 14:23:02 Gr-SHS-4 systemd[1]: Starting Unbound DNS server...
Mai 15 14:23:02 Gr-SHS-4 systemd[1]: Started Unbound DNS server.
Mai 15 14:24:02 Gr-SHS-4 systemd[1]: Stopping Unbound DNS server...
Mai 15 14:24:02 Gr-SHS-4 systemd[1]: unbound.service: Succeeded.
Mai 15 14:24:02 Gr-SHS-4 systemd[1]: Stopped Unbound DNS server.
Mai 15 14:24:02 Gr-SHS-4 systemd[1]: Starting Unbound DNS server...
Mai 15 14:24:02 Gr-SHS-4 systemd[1]: Started Unbound DNS server.

sudo grep -v '#|^$' -R /etc/unbound/unbound.conf*
/etc/unbound/unbound.conf:include-toplevel: "/etc/unbound/unbound.conf.d/*.conf"
/etc/unbound/unbound.conf.d/root-auto-trust-anchor-file.conf:server:
/etc/unbound/unbound.conf.d/root-auto-trust-anchor-file.conf: auto-trust-anchor-file: "/var/lib/unbound/root.key"
/etc/unbound/unbound.conf.d/pi-hole.conf:server:
/etc/unbound/unbound.conf.d/pi-hole.conf: logfile: "/var/log/unbound/unbound.log"
/etc/unbound/unbound.conf.d/pi-hole.conf: verbosity: 0
/etc/unbound/unbound.conf.d/pi-hole.conf: interface: 127.0.0.1
/etc/unbound/unbound.conf.d/pi-hole.conf: port: 5335
/etc/unbound/unbound.conf.d/pi-hole.conf: do-ip4: yes
/etc/unbound/unbound.conf.d/pi-hole.conf: do-udp: yes
/etc/unbound/unbound.conf.d/pi-hole.conf: do-tcp: yes
/etc/unbound/unbound.conf.d/pi-hole.conf: do-ip6: no
/etc/unbound/unbound.conf.d/pi-hole.conf: prefer-ip6: no
/etc/unbound/unbound.conf.d/pi-hole.conf: harden-glue: yes
/etc/unbound/unbound.conf.d/pi-hole.conf: harden-dnssec-stripped: yes
/etc/unbound/unbound.conf.d/pi-hole.conf: use-caps-for-id: no
/etc/unbound/unbound.conf.d/pi-hole.conf: edns-buffer-size: 1232
/etc/unbound/unbound.conf.d/pi-hole.conf: prefetch: yes
/etc/unbound/unbound.conf.d/pi-hole.conf: num-threads: 1
/etc/unbound/unbound.conf.d/pi-hole.conf: so-rcvbuf: 1m
/etc/unbound/unbound.conf.d/pi-hole.conf: private-address: 192.168.0.0/16
/etc/unbound/unbound.conf.d/pi-hole.conf: private-address: 169.254.0.0/16
/etc/unbound/unbound.conf.d/pi-hole.conf: private-address: 172.16.0.0/12
/etc/unbound/unbound.conf.d/pi-hole.conf: private-address: 10.0.0.0/8
/etc/unbound/unbound.conf.d/pi-hole.conf: private-address: fd00::/8
/etc/unbound/unbound.conf.d/pi-hole.conf: private-address: fe80::/10

Wenn ich sudo unbound -d -vvvv eingebe bekomme ich folgende Fehler angezeigt:
[1684153499] unbound[22269:0] notice: Start of unbound 1.13.1.
[1684153499] unbound[22269:0] debug: increased limit(open files) from 1024 to 4140
[1684153499] unbound[22269:0] debug: creating udp4 socket 127.0.0.1 5335
[1684153499] unbound[22269:0] debug: creating tcp4 socket 127.0.0.1 5335
[1684153499] unbound[22269:0] debug: creating tcp4 socket 127.0.0.1 8953
[1684153499] unbound[22269:0] error: can't bind socket: Address already in use for 127.0.0.1 port 8953 (len 16)
[1684153499] unbound[22269:0] error: cannot open control interface 127.0.0.1 8953
[1684153499] unbound[22269:0] fatal error: could not open ports

Die Lösung für eine DNS Schleife von @jfb Error: can’t bind socket: Address already in use for 127.0.0.1 port 5335 habe ich ausprobiert. Leider startet Unbound weiterhin jede minute neu. Ich bin mit meinem Latein am ende.

Wenn jemand einen Tipp hat was ich noch machen kann bzw. was hier falsch läuft würde ich mich sehr freuen.

Beste Grüße!
Nastra

Da das in einem exaktem zeitlichen Abstand erfolgt:
Wie sehen denn die Cron-Jobs auf dem System aus?

Hallo @Bucking_Horn gemäß crontab -l sind keine crontab eingerichtet.

pi@Gr-SHS-4:~ $ crontab -l
no crontab for pi

pi@Gr-SHS-4:~ $ sudo crontab -l
no crontab for root

Hier noch ein Auszug von status:

pi@Gr-SHS-4:~ $ sudo systemctl status unbound
● unbound.service - Unbound DNS server
Loaded: loaded (/lib/systemd/system/unbound.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2023-05-15 15:08:02 CEST; 7s ago
Docs: man:unbound(8)
Process: 24237 ExecStartPre=/usr/lib/unbound/package-helper chroot_setup (code=exited, status=0/SUCCESS)
Process: 24240 ExecStartPre=/usr/lib/unbound/package-helper root_trust_anchor_update (code=exited, status=0/SUCCESS)
Main PID: 24243 (unbound)
Tasks: 1 (limit: 3932)
CPU: 161ms
CGroup: /system.slice/unbound.service
└─24243 /usr/sbin/unbound -d -p

Mai 15 15:08:02 Gr-SHS-4 systemd[1]: Starting Unbound DNS server...
Mai 15 15:08:02 Gr-SHS-4 systemd[1]: Started Unbound DNS server.

Unbound habe ich vorhin nochmal neu installiert. Fehler bleibt weiterhin bestehen -.-

crontab listet nur die user-spezifisch angelegten Jobs (üblicherweise aus /var/spool/cron/crontabs/).

Die vom OS verwalteten Jobs finden sich gewöhnlich in den /etc/cron.*/-Verzeichnissen.

Diese liessen sich z.B. mit sudo grep unbound /etc/cron.*/* gezielt durchsuchen.
Falls unbound allerdings über ein abweichend benanntes Skript (z.B. start-dns.sh) gestartet würde, würde diese Suche das natürlich nicht finden.

Wenn ich sudo grep unbound /etc/cron.*/* eingebe bekomme ich eine neue Zeile also keine Ausgabe.

Von einen Skript was Unbound startet wie start-dns.sh wüsste ich nichts. Gehört das zur Standardinstallation? Ich habe Unbound über sudo apt install unbound installiert. Bin davon ausgegangen das der Start des unbound.service über systemd erfolgt?

Hier ein Auszug aus den beiden service Dateien die unbound im Namen haben:

unbound.service

[Unit]
Description=Unbound DNS server
Documentation=man:unbound(8)
After=network.target
Before=nss-lookup.target
Wants=nss-lookup.target

[Service]
Type=notify
Restart=on-failure
EnvironmentFile=-/etc/default/unbound
ExecStartPre=-/usr/lib/unbound/package-helper chroot_setup
ExecStartPre=-/usr/lib/unbound/package-helper root_trust_anchor_update
ExecStart=/usr/sbin/unbound -d -p $DAEMON_OPTS
ExecStopPost=-/usr/lib/unbound/package-helper chroot_teardown
ExecReload=+/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target

unbound-resolvconf.service

[Unit]
Description=Unbound DNS server via resolvconf
After=unbound.service
PartOf=unbound.service
ConditionFileIsExecutable=/sbin/resolvconf

[Service]
RemainAfterExit=yes
ExecStart=/usr/lib/unbound/package-helper resolvconf_start
ExecStop=/usr/lib/unbound/package-helper resolvconf_stop

[Install]
WantedBy=unbound.service

Dann können wir geplante Neustarts vorerst wohl ausschliessen.

Ausgeführt auf Deinem Pi-hole/unbound-Rechner, was gibt folgendes Kommando zurück:

cat /etc/resolvconf.conf
pi@Gr-SHS-4:~ $ cat /etc/resolvconf.conf
# Configuration for resolvconf(8)
# See resolvconf.conf(5) for details

resolv_conf=/etc/resolv.conf
# If you run a local name server, you should uncomment the below line and
# configure your subscribers configuration files below.
#name_servers=127.0.0.1


# Mirror the Debian package defaults for the below resolvers
# so that resolvconf integrates seemlessly.
dnsmasq_resolv=/var/run/dnsmasq/resolv.conf
pdnsd_conf=/etc/pdnsd.conf
#unbound_conf=/etc/unbound/unbound.conf.d/resolvconf_resolvers.conf

Was gibt folgendes Kommando zurück:

sudo systemctl is-active unbound-resolvconf.service

pi@Gr-SHS-4:~# sudo systemctl is-active unbound-resolvconf.service
inactive

Ich bin parallel auch noch weiter nach einer Lösung am am suchen z.B hier:

Alles Hinweis umgesetzt aber Unbound startet fleißig neu. Zum verrückt werden :sleepy:

Die unbound-Installation nach unserem Guide würde das über Port 8953 ansprechbare Remote-Control-Interface überhaupt nicht aktivieren.

Dass sich unbound hier erstens beschwert, dass zweitens dieser Port schon genutzt wird, ist also gleich zweimal auffälllig.

Bitte lade ein Debug Log hoch und poste hier anschließend nur die Token-URL.
Das Token generierst Du über

pihole -d

wobei Du die Frage nach dem Upload bejahst, oder Du machst das über die Weboberfläche:
Tools > Generate Debug Log

Your debug token is: https://tricorder.pi-hole.net/5zJtl4rg/

Das mit dem Remote-Control Port hat mich auch gewundert. Ich denke auch das dies der Fehler vermutlich ist. Daher hatte ich unbound heute nochmal deinstalliert und neu installiert gem. eurer Anleitung. Aber das verhalten von Unbound bzw. die Meldung mit dem Port bleibt.

Ich habe aber auch nirgendwo eine Möglichkeit gefunden diesen Port zu ändern oder das remote control zu deaktivieren.

Dein Debug Log zeigt in der Tat, dass bereits ein unbound auf port 8953 bindet:

*** [ DIAGNOSING ]: Ports in use
    udp:0.0.0.0:48826 is in use by avahi-daemon
    udp:239.255.255.250:1900 is in use by tvheadend
    udp:0.0.0.0:44991 is in use by tvheadend
    udp:0.0.0.0:42957 is in use by <unknown>
[✓] udp:0.0.0.0:53 is in use by pihole-FTL
    udp:0.0.0.0:68 is in use by dhcpcd
    udp:0.0.0.0:111 is in use by rpcbind
    udp:192.168.178.14:123 is in use by ntpd
    udp:127.0.0.1:123 is in use by ntpd
    udp:0.0.0.0:123 is in use by ntpd
    udp:127.0.0.1:622 is in use by rpc.statd
    udp:0.0.0.0:631 is in use by cups-browsed
    udp:127.0.0.1:5335 is in use by unbound
    udp:0.0.0.0:46308 is in use by rpc.statd
    udp:0.0.0.0:5353 is in use by avahi-daemon
[✓] udp:*:53 is in use by pihole-FTL
    udp:*:111 is in use by rpcbind
    udp:[fdaa:32de:9e96:45b9:a582:afb9:6a27:715a]:123 is in use by ntpd
    udp:[fd00::1276:4e23:e8b5:9350]:123 is in use by ntpd
    udp:[fe80::7123:68aa:e958:c70a]:123 is in use by ntpd
    udp:[::1]:123 is in use by ntpd
    udp:*:123 is in use by ntpd
    udp:*:59571 is in use by avahi-daemon
    udp:*:546 is in use by dhcpcd
    udp:*:35567 is in use by <unknown>
    udp:*:5353 is in use by avahi-daemon
    udp:*:36188 is in use by rpc.statd
    tcp:0.0.0.0:5900 is in use by vncserver-x11-c
    tcp:0.0.0.0:10014 is in use by sshd
    tcp:0.0.0.0:9982 is in use by tvheadend
    tcp:0.0.0.0:9981 is in use by tvheadend
    tcp:127.0.0.1:5335 is in use by unbound
    tcp:0.0.0.0:46335 is in use by <unknown>
    tcp:127.0.0.1:631 is in use by cupsd
[✓] tcp:127.0.0.1:4711 is in use by pihole-FTL
    tcp:127.0.0.1:8953 is in use by unbound
    tcp:127.0.0.1:25 is in use by exim4
    tcp:0.0.0.0:57485 is in use by rpc.statd
[✓] tcp:0.0.0.0:53 is in use by pihole-FTL
[✓] tcp:0.0.0.0:80 is in use by lighttpd
    tcp:0.0.0.0:111 is in use by rpcbind
    tcp:[::]:5900 is in use by vncserver-x11-c
    tcp:[::]:10014 is in use by sshd
    tcp:[::1]:25 is in use by exim4
    tcp:[::1]:631 is in use by cupsd
[✓] tcp:[::1]:4711 is in use by pihole-FTL
    tcp:[::]:51737 is in use by rpc.statd
    tcp:[::]:34947 is in use by <unknown>
[✓] tcp:[::]:53 is in use by pihole-FTL
[✓] tcp:[::]:80 is in use by lighttpd
    tcp:[::]:111 is in use by rpcbind

Die Ports zeigen dabei ja auch noch eine ganze Reihe an anderen Prozessen.
Wurde unbound möglicherweise bereits als Teil einer anderen Software installiert?

Versuch mal, unbound zu stoppen:

sudo systemctl stop unbound.service

Und danach kontrollier gleich mal, ob unbound auch wirklich keine Ports mehr bindet:

sudo ss -tulpn '( sport = 8953 || sport = 5335 )'

Wenn das nichts zurückliefert:

sudo systemctl start unbound.service

Welche Ports bindet unbound jetzt?

1 Like

Der Pi wurde vor ca. 4 Wochen komplett neu aufgesetzt. Installiert habe ich eigentlich danach nur node, npm, Tvheadend sowie pi-hole und unboundt. Denn Fehler mit dem ständigen restart von Unbound habe ich gestern erst durch Zufall entdeckt. In der Praxis hatte ich dadurch noch keine Einschränkungen aber richtig ist es definitiv nicht.
Meins du einer von diesen Tools könnte der Bösewicht sein?

Habe unbound gestoppt und als Port Ausgabe wurde nichts angezeigt:

Neustarten musste ich nicht, hat unbound automatisch gemacht :sweat_smile:

Auch wenn wir noch keine Lösung haben möchte ich mich zwischenzeitlich bei dir für deine Mühen bedanken. Bin echt froh über deine Unterstützung :rose:
Danke!

1 Like

Dann versuch mal:

sudo systemctl disable unbound.service
sudo systemctl stop unbound.service

Startet unbound dann immer noch automatisch?

EDIT:
Falls ja, disable durch mask ersetzen.

Die Idee den Service zu deaktivieren hatte ich parallel auch und siehe da unbound startet trotzdem noch. Sehr kurios alles.

Gemacht, jetzt startet er nicht mehr neu. Kann ihn aber auch nicht mehr manuell starten.

Das ist zu erwarten, wenn man den Service komplett maskiert. :wink:

Hast Du die Service-Konfiguration oben über folgendes Kommando anzeigen lassen:

sudo systemctl cat unbound.service

ne nicht über cat sonder über sudo systemctl status unbound.service

Edit: Mich wundert das der service noch aktiv ist obwohl er deaktiviert ist und auf mask gesetzt :face_with_raised_eyebrow:

Edit2: noch ein stop und jetzt ist er inaktiv :sweat_smile:

Meine Frage bezog sich nicht auf den Status, sondern auf die Service-Konfiguration.
Was gibt cat denn zurück?

Ok, da habe ich dich wohl falsch verstanden. Hier die Ausgabe von cat im aktuellen Status vom unbound.service in disable und mask.

Hoffe das ist jetzt richtig :sweat_smile:

Edit: Habe den unbound.service jetzt auf unmask gesetzt und erneut mit cat aufgerufen. Nun sieht man den Inhalt der Datei. Der unbound.service hat nach dem unmask direkt wieder automatisch gestartet in der dauerschleife :face_holding_back_tears:.