幻魔ナイトブログ

主に絵、音楽、プログラミングなどについて書きます。

Flaskで作成したウェブページに外からアクセスする方法

私は普段、家のPCでなく喫茶店などで開発を行うことが多いので、母艦として家に置いているパソコンにipadからアクセスすると言う方法をよく行っています。

Flaskで開発したアプリを起動した時に外からアクセスできない事象が起こったので解決方法を載せておきます。

原因:ローカルホストからしかアクセスできない。

起動したときのメッセージのIPが127.0.0.1のときはローカルホストからのアクセスしか許していない。

 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [24/Dec/2020 22:44:02] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [24/Dec/2020 22:44:03] "GET /favicon.ico HTTP/1.1" 404 -

この「127.0.0.1」はループバックアドレスと呼ばれて自分自身を示す、かつ同一ホスト内でしか扱えないアドレスです。localhostはこのアドレスを示すホスト名です。 Flaskを普通に立ち上げると同一ドメインからのアクセスだけを待ち受けることとなり、外のネットワークからアクセスすることはできません。

これを「0.0.0.0」とし、どのネットワークからでもアクセスできるようにする必要があります。

これを解消するには。Flaskのpythonファイルを以下のように変更します。

# ↓元々こんな感じ
app.run()

# 外からもアクセスできるようにするために引数の「host」を設定。ポートはデフォルトのまま5000
app.run(host='0.0.0.0')

# さらにポート番号も指定する場合。
app.run(host='0.0.0.0', port='7777')

お問合わせはこちら