2017-12-22 23 views
0

私はFlaskアプリケーション(Python 2.7を使用して)を作成しようとしています。私はそのアプリケーションを起動して稼働させることができました。そして、それは、アプリケーションが実行されているコンピュータのWi-Fiネットワーク上のすべてで正常に動作します。私は私の内部IPアドレスとポート8000​​を使用してそれにアクセスしています。私はWi-Fiに接続されている私の電話から接続するたびに動作します。しかし、私が携帯電話のデータに切り替えてそこから接続すると、うまく動作せず、代わりに「応答に時間がかかりすぎました」と表示されます。次のようにアプリ自体のコードは次のとおりです。他のネットワークからFlaskアプリにアクセスするには?

from flask import Flask, render_template 
from GradeScraper import scrapeforgrades 
app = Flask(__name__) 

@app.route('/') 
def home(): 
    scrapeforgrades() 
    return render_template("Grades.html") 

if __name__ == '__main__': 
    app.run(host='0.0.0.0', port=8000, debug=True) 

GradeScraperアプリで呼び出される私が書かれているだけでウェブスクレーパー、です。そのファイルが私の問題の原因だとは思わない。

私は外部IPアドレスからアプリに接続しようとしましたが、「接続を拒否しました」と表示されています。私はthis StackOverflowページに行きました。その答えはセキュリティ設定について何か言いました。私はそれらを変える方法を全く理解していませんでした。この質問をした人は、「セキュリティ設定で遊んで、ついにそれを稼働させた」とコメントし、私は同じことをすべきだという結論に至りました。残念ながら、私はそれをどうやって行うのか分かりません。誰かが正しい方向に私を指すことができますか?必要なすべての追加情報を提供します。

おかげで、
ミー

+2

ルーターでポートフォワードしましたか?あなたが見つけた投稿は、あなたの事件に関連していない、アマゾンのウェブサービスに関するものです。ポート転送なしでは、パブリックインターネットは内部ローカルエリアネットワークコンピュータのポートにアクセスできません。 –

+0

@ThuYeinTunによれば、ポート転送なしでは、ネットワークの外部からマシンにアクセスする方法はありません。 Wi-Fiルーターで弱い設定にする必要があります。間違いなくハードウェアの質問ではなく、関連するコーディング。 – dda

+0

ああ、私はほとんど忘れてしまった:あなたが何をしても、**セキュリティの脆弱性であるNAT **を設定するときに 'debug = True'のままにしておかないで、攻撃者が任意のPythonコードをあなたのプロセス内で。 – Marco

答えて

0
おそらく開始のために

(うまく行けば!)あなたのルータはすべての着信接続をブロックしています。そうでない場合でも、コンピュータの「内部IPアドレス」(Wi-Fi経由で接続するもの)はネットワーク外から到達できないだけでなく、ルーティング不可能です(つまり、携帯電話のオペレータネットワークでは、それ)。

ルーターでNAT(ネットワークアドレス変換)機能を探し、外部ポートを選択してください(1024以上のポートを推奨)。

ポート番号をコンピュータのIPアドレスにマッピングします。

あなたが何をしているのかわからない場合、それは本当に悪い考えです - あなたは脆弱性を探しているポートスキャナのターゲットにすぐになります。 192.168/16スペースは「プライベートIPスペースとみなされている - あなたのルータが192.168.1.1のようなものかもしれないが、あなたのコンピュータのIPは、192.168.1.101のようになります...話題に

を拡大する

携帯電話には2つの無線が搭載されています(したがって、論理的には2つの無線機能がありますが、物理的には2つのNIC):Wi-Fi(ルーターのDHCPサーバーからアドレスを取得する192.168.1.102など)とLTE/4Gラジオ(プロバイダーから選択したIPアドレスを使用します。 174.94.66.23、または、poss IPv6):前者はローカルサーバーに接続できますが、後者は接続できません。

あなたのISPはルータのWANポートにこれらの「パブリックIP」の1つを割り当てます(静的IPアドレスを支払っていない限り、通常はそれらをローテーションします)。 http://formyip.comが最も簡単な方法です)、携帯電話(または外部のコンピュータなど)からその場所をポイントします。

ルーティングとNATについて教えてください:あなたのネットワークを開放し、パブリックネットワークでサーバを稼働させ続けることは、最近はかなり怖いものです。私は以前はGoogleにいましたが、今は別の大手有名企業と一緒にいます:)

また、ルータで許可されている場合は、OpenVPN接続を設定することができます。しかし、他のすべてのレベルの複雑さ。

これが役に立ちます。

関連する問題