Server startet bei falscher IP-Adresse

  • Hallo,


    Ich versuche, den Webserver (Tornado) auf Raspbian Buster zu starten. Ich vermute, dass die Reihenfolge von 'lo' und 'eth0' das Problem beim Serverstart verursacht. Ich gebe die IP-Adresse nicht explizit an. Also schätze ich, dass der Server den ersten von oben in der Liste nimmt. Infolgedessen beginnt es bei der Adresse 127.0.1.1.1 und ich kann nicht von außen darauf zugreifen. Gibt es eine Möglichkeit, die Bestellung zu ändern? Hier ist die aktuelle:


    Ich danke dir!


    ----------------------------------------------------------------------------------------------------------


    Hi,


    I'm trying to start web server (Tornado) on Raspbian Buster. I suspect that the order of 'lo' and 'eth0' causes the issue during server startup. I don't specify IP address explicitly. So I guess server takes the first from the top of the list. As a result it starts on address 127.0.1.1 and I cannot access it from outside. Is there any way to change the order?


    Thank you!

  • Wahrscheinlicher ist, dass das Netzwerk zum Zeitpunk des Serverstarts noch nicht konfiguriert ist. Evtl. systemd-Unit anpassen.

    Alternativ kann es sein, dass die default-Config des Webservers nur localhost (127.0.0.1) vorsieht. Dann in der Konfiguration des Servers nach der Möglichkeit suchen, die Adressen/Interfaces vorzugeben (meist irgendwas mit "listen, ifaces, inet-families" etc.).

    evtl hilft 1. google-Treffer:

    https://stackoverflow.com/ques…ornado-web-server-locally

    Menschen die keine Ironie verstehen finde ich super!

    Edited once, last by llutz ().

  • Vielen Dank für die Antwort!


    Ein anderer Teil meines Codes verursachte die Verwirrung. Nach dem Start des Webservers drucke ich auf der Konsole einen Port:

    Code
    logging.debug("Web Server Started at %s:%s", host, port)

    Ich bekomme auf diese Weise den Gastgeber:

    Code
    host = socket.gethostbyname(socket.gethostname())

    Das ergab 127.0.1.1, aber der Server wurde tatsächlich am 10.0.0.11 wie erwartet gestartet.

    Ich muss nur einen Weg finden, um einen echten Host vom Server zu bekommen.

    Danke!

  • evtl. korrekten Hostnamen (DNS) setzen?

    hostname

    hostname -I


    sollten zusammenpassen.

    Menschen die keine Ironie verstehen finde ich super!

    Edited once, last by llutz ().

  • Hallo,


    glaubt man dem Internet, lauscht Tornado auf allen IP-Adresse, also sollte der Server grundsätzlich auch von anderen Rechnern im gleichen Netzwerk erreichbar sein.


    Wobei die Doku von Tornado da IMHO in der Tat ein bisschen dünn ist. Ich zumindest haben keine Stelle gefunden, wo explizit erwähnt wird, dass `0.0.0.0` die Default-Adresse ist, auf der der Tornado-Server lauscht.


    Gruß, noisefloor

  • ... der Server wurde tatsächlich am 10.0.0.11 wie erwartet gestartet.

    Wird dieser Server mit einer nativen oder mit einer generierten service-unit gestartet?


    BTW: Ich habe z. B. unter buster Probleme mit dem starten (beim Booten) von sshd und stunnel (beide mit generierter service-unit), wenn ich diese nicht auf 0.0.0.0 lauschen lasse. Mit stretch habe ich diese Probleme nicht.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

  • Ich bin mir nicht sicher, was du meinst. ...

    Wird der Server schon beim booten gestartet? Wenn ja, dann wie ist die Ausgabe von:

    Code
    systemctl list-units --all | grep -i tornado

    und wenn hier keine Ausgabe, dann die vollständige Ausgabe von:

    Code
    systemd-analyze blame

    , in einem spoiler.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

  • Ich beginne den Tornado mit meinem eigenen Code. Ich starte es nicht als Systemdienst/Dämon. Die Ausgabe von systemctl ist also leer.

  • Hallo,


    Quote

    Wird dieser Server mit einer nativen oder mit einer generierten service-unit gestartet?

    Von Hand.


    peppy.player: gibt Tornado explizit eine IP-Adresse mit, dann hast du das Problem nicht. Wenn der Pi von außerhalb erreichbar sein soll, muss er ja eine IP-Adresse haben. Einen Server an alle Schnittstellen mittels 0.0.0.0 zu binden halte ich sowieso für keine all zu gute Idee. Andere Python-Webframeworks und andere Server nehmen normalerweise 127.0.0.1 als Default - was die sichere Wahl ist.


    Gruß, noisefloor