web-dev-qa-db-ja.com

Flask-アプリをルーター経由で外部から見えるようにする方法は?

簡単に言えば質問です

ワイヤレスルーターからインターネットにアクセスしているホストPCから、インターネットから見えるシンプルなFlaskベースのWebサイトをどのように実行しますか

質問の詳細

flaskアプリケーションをインターネットに表示する クイックスタートガイド にしたい。

以下の簡単なFlaskアプリを起動すると、ホストPCと同じネットワーク上のコンピューターからアクセスできますが、インターネット経由で別のネットワークを介して接続されているデバイスからはアクセスできません。

この問題は、前述の here および here の問題に似ており、ホームPCから実行されている要素が追加され、外部接続がルーターのxxポートを指していることを示唆しているようです この投稿 のコメントで示唆されているように、ホストPCのxxポートではありません。

私がしたこと

以下のコードを参照して、これが私がしたことです:

  • コントロールパネルで IPアドレス を確認しました
  • アンチウイルスのすべてのネットワーク保護を無効にした
  • `ipconfig/all 'を実行し、Windowsマシン上で
  • 最後に、別のネットワークに接続されたデバイスでブラウザを開き、適切なIP:portアドレスを指定しました

結果は「ウェブページは利用できません」ということです。

誰かが同じ問題に遭遇しましたか?これはルーターの問題ですか?

参照Flask 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)
15
Pythonic

基本的なセットアップでは、ローカルネットワークの宛先ホストにポート80またはポート443、あるいはその両方にリクエストを転送するルールを作成します。

例:pythonアプリケーションを実行しているローカルネットワークホストにインバウンドHTTP/Sリクエストを転送するためのNAT(アドレス変換)とポート転送ルールを作成します。

例えば:

app.run(Host= '192.168.0.58', port=9000, debug=False)

NATルールは、ポート9000で192.168.0.58をターゲットにする必要があります。

15
Bitmap