Kolben - Wie man eine app extern sichtbar über einen router?
Die Frage in kurzen
Wie führen Sie eine einfache Kolben-basierte website im internet sichtbar, von einem host-PC, die den Zugriff auf das internet von einem WLAN-router?
Frage details
Ich würde gerne eine flask Anwendung, die im internet sichtbar ist, wie pro Quickstart Guide.
Wenn ich starten Sie den einfachen Kolben-app unten, wird es zugänglich von einem computer im selben Netzwerk wie der host-pc, aber nicht von einem Gerät über das internet verbunden über ein anderes Netzwerk.
Das problem wird ähnlich diskutiert hier und hier, mit dem zusätzlichen element, das von einem Heim-pc zu suggerieren scheint, dass externe verbindungen Punkt-zu-xx-port des Routers, nicht die xx-port des host-pc, so wird vorgeschlagen, in den Kommentaren in dieser Beitrag.
, Was ich Tat
Verweisen auf den code unten, hier ist was ich getan habe:
- Überprüft meine Die IP-Adresse in der Systemsteuerung
- deaktiviert alle Netzwerk-Schutz in der antivirus -
- ausführen "ipconfig /all", das auf einem windows-Rechner
- öffnete schließlich einen browser in einem Gerät mit einem Netzwerk verbunden und richtete es auf die entsprechende IP:port Adresse
Das Ergebnis ist, dass "Die Webseite ist nicht verfügbar".
Hat jemand begegnet das gleiche problem? Ist das ein router Problem?
Referenz-Kolben-app
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run(host= '0.0.0.0', port=9000, debug=False)
- Router sind speziell hergestellt, um zu verhindern, dass diese Art von Verhalten und halten Sie Ihre home-Anschluss von der Außenwelt geschützt werden. Sie könnten in der Lage sein, einen workaround finden, aber man sollte Sie nicht.
- Zum einrichten des Routers für das weiterleiten von Anfragen an den port 9000 auf die IP des Rechners, auf dem die Kolben-app
- Warum würden Sie wollen, dies zu tun? Ich würde empfehlen die Einrichtung einer Website, auf Heroku für etwas so trivial, wie dieses.
- Wahrscheinlich nur Herumspielen, nichts falsch mit dem lernen auf die harte Weise 🙂
- Wenn Sie interessiert sind zu lernen, dann lernen, wie zu implementieren Heroku oder AWS wird wahrscheinlich von mehr, als die öffnung Ihrer Heim-PC zum internet.
- Danke für die Kommentare. Einigen Kontext, dies sind die ersten prototyping-Experimente in einem Wechsel von desktop-basierten GUIs (vor allem PyQt) zu web-apps. Also ja, müssen lernen, wie zu implementieren Heroku. Heimcomputer war eine einfache Umgebung für eine Reihe von Gründen (vor allem lokalen Zugriff auf die db, und keine Kenntnisse von cloud-basierten services)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem basic-setup wird um eine Regel zu erstellen, die vorwärts-request an port 80 und/oder port 443 an einen bestimmten host im lokalen Netzwerk.
Beispiel create NAT(Adress translation) und port-forwarding-Regel zum weiterleiten von eingehenden HTTP/S-Anfragen an Ihren lokalen Netzwerk-host ausgeführt Ihre python-Anwendung.
Beispiel:
Deine NAT-Regel soll 192.168.0.58 auf port 9000.
192.168.0.58
pythonically ? ist es möglich ?