Django-Entwicklungsserver auf Raspberry Pi lehnt die Verbindung ab

871
ItsTimaiFool

Ich habe auf meinem Raspberry Pi einen einfachen Webdienst, der den Django-Entwicklungsserver (manage.py runserver) verwendet. Ich weiß, dass es funktioniert, denn wenn ich curl localhost:8000auf dem Pi laufe, bekomme ich den HTML-Inhalt meiner Website. Wenn ich netstat -tnlauf dem Pi laufe, bekomme ich Folgendes:

Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State  tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN  tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN  tcp6 0 0 :::22 :::* LISTEN  

Wenn ich jedoch versuche, von einem anderen Computer im selben lokalen Netzwerk wie das Pi eine Verbindung zu der Website herzustellen (mit http://<local IP of the pi>:8000), bekomme ich es connection refused. (Ich habe beide curlund einen Webbrowser ausprobiert .)

Ich verbinde mich ausschließlich mit dem Pi über SSH und so etwas curl http://www.google.comfunktioniert, also weiß ich, dass der Pi mit dem Netzwerk verbunden ist.

Ich habe die neueste Version von Raspbian auf dem Pi. (Ich habe es gerade gestern neu installiert und dachte, das könnte dieses Problem beheben.)

Wie kann ich mich mit dieser Website verbinden? Muss ich einen Port auf dem Pi oder etwas öffnen?

Ich bin nicht daran interessiert, eine Verbindung zu diesem Webserver außerhalb meines lokalen Netzwerks herzustellen, daher denke ich nicht, dass ich mich mit der Portweiterleitung befassen sollte.

1
Führen Sie den folgenden Befehl aus, um den Server zu starten: `python manage.py runserver 0.0.0.0: 8000` vor 7 Jahren 0
Wow, das hat es sofort behoben. Warum hat das funktioniert? Oh, und würden Sie bitte eine Antwort darauf machen, damit ich sie annehmen kann? Vielen Dank! ItsTimaiFool vor 7 Jahren 0
Ich habe eine Antwort hinzugefügt. vor 7 Jahren 1

1 Antwort auf die Frage

2

Standardmäßig ist der Django-Entwicklungsserver an 127.0.0.1 gebunden, wie Sie im Feld " Lokale Adresse" sehen können. Das bedeutet, dass nur Verbindungen von Ihrem Pi akzeptiert werden.

Wenn Sie 0.0.0.0 ( Wikipedia ) verwenden, ist dies wie ein Platzhalter. Dies bedeutet, dass jeder in Ihrem lokalen Netzwerk darauf zugreifen kann.

Also, um Ihren Server von einem anderen Computer zuzugreifen, müssen Sie den folgenden Befehl ausführen: python manage.py runserver 0.0.0.0:8000.