fr24feed 1.0.26-4 hat Probleme mit IPs, IPv6 und dem Web-Server

Kürzlich wurde auf meinem Pi24-Horchposten die neueste Version von fr24feed installiert: 1.0.26-4, Built on Sep 14 2020 08:32:40 (HEAD-bd20105.git/Linux/static_armel).

Umgehend reagierten meine monit Netzwerksensoren:

Connection failed Service pi24.domain.tld

Date: Mon, 14 Sep 2020 19:03:03
Action: alert
Host: HOST
Description: failed protocol test [HTTP] at [10.1.2.3]:8754 [TCP/IP] -- HTTP error: Regular expression doesn't match: No match

Your faithful employee,
Monit

Als ich auf das Web-Interface zugreifen wollte erschien auch tatsächlich folgende Fehlermeldung:

For security reasons the web interface is only availble from private class networks or after you have manually specified the bind-interface setting in /etc/fr24feed.ini

Please set it to bind-interface="0.0.0.0" to accept traffic from all interfaces or to the IP address of your preferred network interface!

For further assistance please contact support@fr24.com

Komisch! Nun gut, ich fügte also bind-interface="0.0.0.0" ans Ende der Datei /etc/fr24feed.ini und bootete den Pi24 neu. Das schaffte keine Abhilfe.

Selbst wenn ich auf dem Pi24 selber ein wget localhost:8754 respektive wget 127.0.0.1:8754 machte, erschien die Fehlermeldung.

Ich tüftelte noch eine Weile lang herum, und entdeckte dabei folgendes: Die neuste Version von fr24feed bindet sich aus irgendeinem Grund nur an IPv6:

$ netstat -tulpn
...
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 :::8754 :::* LISTEN -
...

Ein Eintrag für denselben Port beginnend mit tcp fehlte.

Das CHANGELOG zeigt auf, dass die Kollegen aktuell an den Netzwerkfunktionalitäten von fr24feed rumbasteln und dabei bereits mehrere Male nachbessern mussten. Offenbar ist auch die neuste Version noch nicht ganz koscher.

Ein Blick in das Log von fr24feed zeigte folgende Einträge:

2020-09-14 20:10:02 | ______ _ _ _ _ _ _____ ___
2020-09-14 20:10:02 | | ___|| |(_) | | | | | | / __ \ / |
2020-09-14 20:10:02 | | |_ | | _ __ _ | |__ | |_ _ __ __ _ __| | __ _ _ __`' / /' / /| |
2020-09-14 20:10:02 | | _| | || | / _` || '_ \ | __|| '__|/ _` | / _` | / _` || '__| / / / /_| |
2020-09-14 20:10:02 | | | | || || (_| || | | || |_ | | | (_| || (_| || (_| || | ./ /___\___ |
2020-09-14 20:10:02 | \_| |_||_| \__, ||_| |_| \__||_| \__,_| \__,_| \__,_||_| \_____/ |_/
2020-09-14 20:10:02 | __/ |
2020-09-14 20:10:02 | |___/
2020-09-14 20:10:02 | [main][i]FR24 Feeder/Decoder
2020-09-14 20:10:02 | [main][i]Version: 1.0.26-4/generic
2020-09-14 20:10:02 | [main][i]Built on Sep 14 2020 08:32:40 (HEAD-bd20105.git/Linux/static_armel)
2020-09-14 20:10:02 | [main][i]Running on: pi24-raspbian9
2020-09-14 20:10:02 | [main][i]Local IP(s):
2020-09-14 20:10:02 | [main][i]Copyright 2012-2020 Flightradar24 AB
2020-09-14 20:10:02 | [main][i]https://www.flightradar24.com
2020-09-14 20:10:02 | [main][i]DNS mode: PING
2020-09-14 20:10:03 | [main][i]Automatic updates are ENABLED
2020-09-14 20:10:04 | ERROR: rmmod: ERROR: Module dvb_usb_rtl28xxu is not currently loaded
2020-09-14 20:10:04 | info | [httpd]Server started, listening on ::2020-09-14 20:10:04 | [e]PacketSenderConfiguration::fetch_config(): Unable to fetch configuration for yoda receiver
2020-09-14 20:10:06 | [d]TLSConnection::ctor(): Enable verify_peer in production code!
2020-09-14 20:10:06 | [main][i]Reader thread started
2020-09-14 20:10:06 | [main][i]Socket server started
2020-09-14 20:10:06 | [main][i]MLAT data feed started
2020-09-14 20:10:06 | [reader][i]Initializing reader
2020-09-14 20:10:06 | [reader][i]Connecting to DVBT receiver via (exe:///usr/bin/dump1090-mutability --raw --mlat)
2020-09-14 20:10:06 | [bs][i]Initializing server
2020-09-14 20:10:06 | [bs][i]Starting server on 0.0.0.0:30003
2020-09-14 20:10:06 | [mlat][i]Waiting for MLAT configuration
2020-09-14 20:10:06 | [master][i]Starting processing thread
2020-09-14 20:10:06 | [reader][i]Connected to the receiver, configuring
2020-09-14 20:10:06 | [reader][i]Configured, processing messages
2020-09-14 20:10:07 | terminate called after throwing an instance of 'char const*'

Interessant sind folgende Zeilen:

...
2020-09-14 20:10:02 | [main][i]Local IP(s):
...
2020-09-14 20:10:04 | info | [httpd]Server started, listening on ::
...
2020-09-14 20:10:07 | terminate called after throwing an instance of 'char const*'

Komisch! Dem Problem konnte ich nicht auf den Grund gehen, wieso fr24feed die IP des Raspberry Pis nicht herausfinden konnte. strace könnte hier wohl weiterhelfen, doch das ging mir dann doch etwas zu weit. Schlussendlich hatte ich genug und entschied ich mich für ein Downgrade auf eine „last known good“ Version:

$ wget "https://repo.feed.flightradar24.com/rpi_binaries/fr24feed_1.0.25-3_armhf.deb" --no-check-certificate
# dpkg -i fr24feed_1.0.25-3_armhf.deb

Damit die neueste Version am nächsten Tag nicht erneut installiert wird, habe ich auch noch /etc/cron.d/fr24feed_updater angepasst:

47 9 1 * * root /usr/lib/fr24/fr24feed_updater.sh >> /var/log/fr24feed_update.log 2>&1

Hoffen wir, dass es bis zum 1. Oktober eine neue Version gibt, die mein Problem behebt.