Server startet bei falscher IP-Adresse

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • 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!

    Peppy Player Entwickler. Ehemaliger DESY (Hamburg) Entwickler :)

  • 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/questions/1109…-server-locally

    Wenn du nichts zu sagen hast, sag einfach nichts.

    Edited once, last by llutz (August 20, 2019 at 8:27 AM).

  • 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!

    Peppy Player Entwickler. Ehemaliger DESY (Hamburg) Entwickler :)

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

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

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

    Peppy Player Entwickler. Ehemaliger DESY (Hamburg) Entwickler :)

  • 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

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!