33 Stimmen

Django 0.0.0.0:80; kann nicht remote zugegriffen werden

Ich versuche, auf meinen Django-Server von einem anderen Computer im selben Netzwerk zuzugreifen. Ich habe meinen Server eingerichtet und kann alles korrekt anzeigen, indem ich python manage.py runserver verwende und zu http://127.0.0.1:8000 gehe, aber wenn ich versuche, python manage.py runserver 0.0.0.0:80 zu verwenden, kann ich meine Django-Seite nicht von einem anderen Computer aus anzeigen. Der Computer, auf dem der Django-Server gehostet wird, hat die Intranet-IP 192.168.1.146. Auf meinem Sekundärcomputer starte ich einen Browser und versuche, auf http://192.168.1.146:80 zuzugreifen, jedoch ohne Erfolg. Ich habe auch den Port 80 (und auch 8000) weitergeleitet, aber leider ohne Erfolg :( HILFE!

48voto

Karl Wenzel Punkte 2312

Ich hatte dieselbe Frage auf einem Windows-Computer und startete den Django-Server mit python manage.py runserver 192.168.1.146:80 statt mit 0.0.0.0. (Ich habe natürlich eine andere IP-Adresse verwendet).

Danach erschien ein Windows-Firewall-Dialog und fragte, ob der Port freigegeben werden soll (ja). Andere Computer im LAN konnten dann auf den Django-Server unter Verwendung von 192.168.1.146:80 zugreifen.

0 Stimmen

Auch, settings.py setzt ALLOWED_HOSTS = ["*"], um eingehenden Verkehr zuzulassen.

11voto

Ryan Walton Punkte 1049

Um es für mich zum Laufen zu bringen, habe ich sudo python manage.py runserver 0.0.0.0:80 im Terminal (Mac OS X 10.8.2) ausgeführt, und dann in Ihrem iPad (oder iPhone) Browser, gehen Sie zu [http://\[your](http://[your) ip address]/. Ich musste das nicht tun: Testing Django website on iphone

Um die IP-Adresse auf einem Mac zu finden

7voto

nitred Punkte 5049

Beim Ausführen von Ubuntu wurde angezeigt, dass die Berechtigung verweigert wurde, als ich Folgendes versuchte:

    python manage.py runserver 0.0.0.0:80

Weil es ein Berechtigungsproblem war, hat das Folgende genauso gut funktioniert, wie Ryan und gtujan gesagt haben.

    sudo python manage.py runserver 0.0.0.0:80

HINWEIS: Sie führen einen Server auf Port 80 aus, der ein HTTP-Port ist. Also, wenn Sie die URL von Ihrem Webbrowser aus eingeben, müssen Sie nicht unbedingt ":80" in Ihrer URL eingeben.

    http://192.168.1.146:80/

Das Folgende sollte ausreichen. Selbst wenn Sie ":80" eingeben, wird es als dasselbe betrachtet.

    http://192.168.1.146/

Aber für andere Portnummern wie 8000 usw. ist ":8000" erforderlich, um Teil der URL zu sein.

2voto

Mitch Dempsey Punkte 36533

Klingt nach einem Firewall-Problem. Haben Sie darauf geachtet, Port 80 auf Ihrem Servercomputer zu öffnen?

4 Stimmen

Das war in der Tat mein Problem. Für Linux-Benutzer müssen Sie den Port 8000 oder den Port, den Sie verwenden, mit einem Befehl wie sudo ufw allow 8000/tcp zulassen.

0 Stimmen

@tao Danke. Du solltest das als Antwort posten.

0voto

Daniel Roseman Punkte 565786

Aus Ihrer Erwähnung des Weiterleitens von Port 80 hört es sich an, als ob Ihr zweiter Computer in einem anderen Netzwerk (Router) als derjenige läuft, auf dem Django läuft. In diesem Fall sollten Sie die IP des Routers des Django-Netzwerks aufrufen - die 192.168-Adresse ist nur von hinten diesem Router aus sichtbar, und Portweiterleitung stellt sicher, dass Ihre Anfrage an das richtige Gerät weitergeleitet wird.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X