質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

2回答

7913閲覧

Flaskで外部pcからアクセスできない

pinokionokio

総合スコア28

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1グッド

4クリップ

投稿2019/09/01 01:13

編集2022/01/12 10:55

Macbookでプログラムを起動してipadから接続をしていますが、応答時間が長いと怒られます。
イメージ説明

Ipは下のページでMacBookのipを調べてそこにipadでアクセスしています。
MacBookは家のWi-Fi、ipadはsimのデータ通信を使用しているので、同じネットワークがどうのこうのみたいな事も無いはずです。
https://www.cman.jp/network/support/go_access.cgi

idleではアクセス要求の表示は出ていないです。
イメージ説明

ファイアウォールは無効、全ての通信が許可されています。

以上の条件で足りないものは何でしょうか?
よろしくお願いいたします。

python

1from flask import Flask 2 3app = Flask(__name__) 4 5@app.route('/') 6def hello(): 7 name = "Hello World" 8 return name 9 10if __name__ == "__main__": 11 app.run(host='0.0.0.0')

因みにhost指定なしでMacBook自身から接続するとhelloworldできます。
が、最終的にはサーバーに置かれたプログラムと通信したいので意味ないですね。

python

1if __name__ == "__main__": 2 app.run()

ーーーーーーーーーーーーーーーーーーーー

このような設定を加えてみましたが状況は変わりませんでした。
MacBookのIPv4アドレスは192.168.11.2なのでipも合ってます。
(TCP/UDPの設定は現在「任意のTCPポート」になっています。投稿直前にUDPになっているのに気づいたので画像はそのまま投稿します)
イメージ説明
※BUFFALOのルーター設定です。

ーーーーーーーーーーーーーーーーーーーー
問題特定のために質問を追加します。
自宅ルーターに対して外部からアクセスされたという履歴を見ることは可能ですか?

調べ方が悪いので「ルーター 履歴」と検索してもサイトの観覧履歴を消したいとかそんなページばかり出てきます。

よろしくお願いします。


webブラウザでグローバルIPにアクセスした時のエラーコードは504(time out)でした。
やはりルーターには繋がっているがレスポンスが帰らないということでしょうか。
また詳細ですが、「インターネット接続を確認してください」と出ています。

自宅wifi内からmacbookのプライベートIPへの接続はできます。

自宅ルーターのグローバルIPだと思っているものをIPから住所を調べてみたら大阪の郵便局にヒットしました。(ここは愛知)
日本だと全部ここにヒットするとかそんなのですかね?

現状報告でした。
よろしくお願いします。


ネットワークのイメージを作ってみましたが伝わるでしょうか。
イメージ説明
緑の矢印はアクセス成功
黄色は不明
赤はエラー504が帰ってきます。

ipad⇨ルーターが黄色になっていますが、ipadがどこまで到達できているかを調べられなかったので不明にしました。

図を描きながらhttp://0.0.0.0:5000で公開しているときにスマホ(wifi)から接続を試していないことに気づきましたが、結果はNGでした。

yodel👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2019/09/01 01:31

ファイアウォールは無効とのことですが、iPadのデータ通信経由でインターネット側からmacbook上のサーバー、TCPポート5000番に接続しようとするので、ルーターで外からの5000番を開放しないといけないはずですが、それはできていますか。
pinokionokio

2019/09/03 10:53

本文追記しました。 画像にある設定であってますか?
FiroProchainezo

2019/09/12 02:52

Webを解放するなら、解放するのはTCPなのでは? ネットワーク的な関係がわかりにくいので、図を作成して追加いただけませんか? Flaskが起動しているPCはどこにあって、アクセスしようとしているPCはどこにあってといった図です。 (自宅にあって、は不要です。どのネットワークに所属しているかが知りたいです。)
pinokionokio

2019/09/12 12:52

不慣れながらネットワークの図を書いてみました。 以前のスクショでは”任意のUDPポート"の設定が写っていますが、一度試しにUDPで設定してみたときに直すのを忘れてスクショしたものを投稿していました。 現在はTCPに設定して色々試しています。 混乱を招いしてしまって申し訳ないです。
guest

回答2

0

WiFi ということは、インターネット接続にルーター等をお使いと思いますが、ルーターの機能で外部からのアクセスを内部の PC に転送するような設定はされているでしょうか?(ほとんどのルーターは、デフォルトでは外部(インターネット)側から自宅等内部LAN側へのアクセスは無効になっています。)

自宅に設置したサーバを公開する方法 - 3. ポートフォワーディングによる公開 -

自宅に設置したサーバを公開する方法 - 2. 静的NATによる公開 -

投稿2019/09/01 01:49

編集2019/09/01 01:50
CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pinokionokio

2019/09/01 03:57

ルーターの設定はノータッチでした。 この状態だとルーターまではアクセスしているけど、さらにどのpcに行けばいいかの設定をルーターにする必要があるということですね? ルーターはBUFFALO製です。 この設定のことであっていますか? https://www.buffalo.jp/support/faq/detail/15022.html
CHERRY

2019/09/01 04:03

そうですね。 URL に ポート 5000 を設定して、アクセスするなら ルーターのインターネット側ポート 5000 を MacBook のポート5000に転送するように設定します。 iPad 側で、( http://1.1.1.1/ のように )ポートを省略した URL で、アクセスしたい場合は、 http なので、 ポート 80 にアクセスするので、 インターネット側のポート80を MacBook 側のポート 5000 に転送するように設定します。
pinokionokio

2019/09/01 07:52

ルーター設定してみましたがダメでした。(本文追記)
guest

0

MacBookのIPv4アドレスは192.168.11.2

とありますが、ネットワークのイメージ図には192.168.11.100となっており、自宅内のスマホからは192.168.11.100:5000に接続OKとなっています。

ルータの「ポート変換の修正」の「LAN側IPアドレス」が192.168.11.100の間違いでは?

後、http://0.0.0.0:5000は特殊なIPアドレスのようなので使わない方かよいようです。おそらく自分自身を指しているはず。上記の例ではスマホ(wifi)自身(内)のhttpサーバを探しに行くと思います。

投稿2019/09/17 01:47

nandymak

総合スコア799

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pinokionokio

2019/09/17 12:43

192.168.11.2ですが、最初はそのipで試していましたが、pcの設定を自動割り当て設定だったのを固定に変更し、その際自動割り当て範囲から外れる100番にしました。色々調べているうちに変えてしまった部分で、現在はルーター設定、pc設定ともに192.168.11.100となっています。 ネットワーク図のLAN内スマホからの接続NGでのアクセス先はグローバルIP(http://A.B.C.D:8000)に対してアクセスをしようとしています。最後に追加した部分で記載漏れでした。すみません。
nandymak

2019/09/17 13:09

状況を整理しますね。 ①iPadはインターネット上からルータのグローバルIPのhttp://A.B.C.D:5000にアクセス ②ルータの設定でhttp://A.B.C.D:5000はhttp://192.168.11.100:5000にフォワード ③http://192.168.11.100:5000のflaskサーバがレスポンスを返すはず ですね。 確認すべきは、 ①現状wifiに繋がっているスマホからhttp://192.168.11.100:5000がアクセスできるか?  →flaskサーバが生きていることが確認できる ②インターネット上のiPadからhttp://A.B.C.D:5000にアクセスできるか?  →多分504になる。 ③ルーターのログを調べてiPadからのアクセスが届いているか確認する(WAN側)  →届いているはず ④ルーターのログを調べていPadからのアクセスが振り向けられているか確認する。  →この辺りで設定が間違っていて届いていないのかも。 ⑤④が振り向けられていればMacBook側でアクセスログがあるか確認する  →もし残っていたらflaskサーバが拒否してるのかも知れない と言う具合に一つ一つ潰していってください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問