2016-04-13 16 views
3

私はインターネット上で公開されているデスクトップPC上でフラスコサーバーを実行しようとしています。私は、次のやった:Flaskサーバーが私のパブリックIPアドレスから見えない

私はテストウェブサーバ

from flask import Flask, request, redirect 
app = Flask(__name__) 

@app.route("/") 
def hello_world(): 
    return "Test 123 " 

if __name__ == "__main__": 
    app.run(host="0.0.0.0", port="33") 
として、次のコードを使用しています私は私のブラウザを開くと

は:適切http://192.168.1.11:33/ページが表示され、私は「テスト123」を参照してください。

私のパブリックIPアドレスからの私のウェブサーバに接続しようとしたときに私の問題が来る私はhttp://xx.xxx.xxx.xx:30に私のブラウザを開きます(私のIPアドレス)私が見るのは「このサイトには到達できません、xx.xxx.xxx.xxは接続を拒否しました」

私はすべてのスタックオーバーフローの回答を調べました。 :

  • Windows Firew私の質問があるhttp://i.imgur.com/a05GvEs.png

    : "192.168.1.11" からのすべての

  • 変更されたホストは、 "0.0.0.0"
  • は、コード実行し、エラー示すの

スクリーンショット別のポートを試しましたしますフラスコサーバーを私のパブリックIPアドレスから見えるようにするには、何が必要ですか?

+0

サーバーと同じネットワーク内のマシンから接続しようとしていますか?あなたのルータはこれを許可してもしなくてもよいでしょう。外部ネットワークから接続してみてください。迅速なテストのために、モバイルデバイスを使用することができます(モバイルネットワークを介して接続され、自分のWiFiは使用できません)。 – Selcuk

+0

提案していただきありがとうございます。残念ながら私の電話では接続できません – Keatinge

+0

OS XまたはWindowsをお使いですか?あなたがそれらの1つを使用している場合は、ファイアウォールが問題になる可能性があります。あなたのブラウザからのリクエストが33ではなく33(誤ってタイプミスしている可能性があります)で、ホストを0.0.0.0に置くだけでウェブアプリケーションが表示されるはずです。 –

答えて

3

ルーターでDHCPを有効にしていますか? 「はい」の場合、ホストはそこに192.168.1.11と表示されますか?

ホストで '0.0.0.0'を使用する必要があります。これは、Flaskにすべてのアドレスをリッスンするように指示します。 引用符付きのポートをapp.run(host="0.0.0.0", port="33")として指定してください。

+0

ポートを「33」に切り替えました。同じ問題です。 DCHPに関しては、私のホストは以前はそこにいませんでしたが、今追加しました。私はまだ同じ問題を抱えています。 (このサイトにはアクセスできない)ここに私のルータのDCHPページのスクリーンショットがあります。私はそうではないかもしれない問題を見ることができます。 http://i.imgur.com/kkv07MI.png – Keatinge

2

あなたのマシンのIPアドレスで実行するにはapp.run(host = '0.0.0.0'、port = "33")に変更してください。クイックスタートページの「外部から見えるサーバ」の下にフラスコサイトに記載

http://flask.pocoo.org/docs/0.10/quickstart/#a-minimal-application

あなたがしようとしなければならない ポート転送がここ http://www.howtogeek.com/66214/how-to-forward-ports-on-your-router/

+0

私はこれらの両方を行いました。今すぐもう一度テストしました。私はまだ接続できません。私のポートは100%転送され、オンラインでテストされます。 http://i.imgur.com/uZISBqI.png – Keatinge

+0

@Racialz外部のネットワークからどのようにテストしていますか? – ganeshredcobra

+0

wifiから切断された携帯電話から。 – Keatinge

0

を説明し、あなたのルータのポート33にポート転送を追加し、開発サーバーの同じIPを使用します。たとえば、devサーバがアドレス192.168.1.11 とポート33のPCで動作している場合、他のクライアントは同じアドレス:192.168.1.11:33を指している必要があります。 私の小さな経験では、デバッガを無効にして動作しますが、これが必須の前提条件であるかどうかは確認しませんでした。

幸運

0

あなたが方法をapp.runの引数としてパブリックIPアドレス/ LANのIPアドレスを与える必要があります。 ホストの引数を指定しないと、http://localhost:8888/http://127.0.0.1:888/で正常に動作しますが、RESTサービスを実行しているシステムの外部にはアクセスできません。

以下はその例です。 app.run(host = "192.168.0.29"、debug = True、port = 8888)

関連する問題