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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

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

Q&A

解決済

2回答

4167閲覧

ポートフォワーディングしてるのに、外部からのみサイト表示されないのです・・・

bin_300K

総合スコア56

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

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

1グッド

0クリップ

投稿2016/05/09 08:50

編集2016/05/09 12:31

###前提・実現したいこと
ラズパイ(Raspbian)でミニwebサーバーを作っています。
外部からアクセスできなくなったのを改善したい。

###発生している問題・エラーメッセージ
iptableなどの設定後、ポートフォワーディングでグローバルIPアドレスから、LAN内につないだラズパイにアクセスできるようにしました。

apache2のテストhtmlや自作のhelloworld表示htmlではきちんと表示されたのに、次の作業後に問題が発生しました。

mod_wsgiをapache2に導入後、pythonスクリプトを表示させるテストをしたところ、LAN内では、’ラズパイのIP(固定されている)/test’とブラウザに入れればpythonのテストスクリプトが出力されるように設定し、うまくいったのです。

しかし、iPadやAndroid携帯などの携帯キャリアの回線から、グローバルIPアドレスを入れ込んだところ、

ページを開けません。サーバーが応答を停止しています。

と出てしまい、閲覧ができなくなってしまいました。これはなぜ起きているのかわかりますでしょうか?もし解決策が分かる方、アドバイスいただけますと、大変助かります。

<ご指示いただき状況追記>

ご関心お寄せいただきありがとうございます!まとめますと、下記のような状況です。

(最初) 構成 ハード:自宅内LANークライアントPC2台ーサーバー用ラズパイ1台

ポートフォワーディング グローバルIP- ポートフォワーディング→ラズパイプライベートIP(固定)

apache2 でweb公開 ファイアウォールは80番解放 HTTPは80番ポート

(昨日まで)

自宅内LANクライアントPC2台 見ているIP:(ラズパイ個別)/(状況):helloworld.html見える
ソフトバンク回線iPad,Android 見ているIP:(グローバルIP)/(状況):helloworld.html見える

(今日、mod_wsgi をapache2に導入 /var/www/html にhelloworld.py実装後)
自宅内LANクライアントPC2台 見ているIP:(ラズパイ個別)/(状況):helloworld.html見える・helloworld.py見える

ソフトバンク回線iPad,Android 見ているIP:(グローバルIP)/:helloworld.html見えない・helloworld.py見えない です。

ご関心お寄せいただきありがとうございます。

ikuwow👍を押しています

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

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

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

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

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

lightson

2016/05/09 10:46

最初の段階でグローバルIPからhelloworldが読めたというのは、iPadやAndroidを携帯キャリアから使ってのことでしょうか? また、現時点で、helloworldはiPadやAndroidから読めますか?
bin_300K

2016/05/09 12:27

lightsonさん ご関心お寄せいただきありがとうございます!まとめますと、下記のような状況です。 (最初) 構成  ハード:自宅内LANークライアントPC2台ーサーバー用ラズパイ1台 ポートフォワーディング グローバルIP- ポートフォワーディング→ラズパイプライベートIP(固定) apache2 でweb公開 ファイアウォールは80番解放 HTTPは80番ポート (昨日まで) 自宅内LANクライアントPC2台 見ているIP:(ラズパイ個別)/(状況):helloworld.html見える  ソフトバンク回線iPad,Android 見ているIP:(グローバルIP)/(状況):helloworld.html見える 自宅内LAN 見ているIP:(ラズパイ個別)/(状況):helloworld.html見える (今日、mod_wsgi をapache2に導入 /var/www/html にhelloworld.py実装後) 自宅内LANクライアントPC2台 見ているIP:(ラズパイ個別)/(状況):helloworld.html見える・helloworld.py見える ソフトバンク回線iPad,Android 見ているIP:(グローバルIP)/:helloworld.html見えない・helloworld.py見えない です。ご関心お寄せいただきありがとうございます。
bin_300K

2016/05/09 12:31

lightsonさん すみません。直接返信すると、改行が反映されていないため、質問コラムに改行したものを転載しています。
lightson

2016/05/09 13:11

状況はよく分かりました。今日の段階で、グローバルIPでhelloworld.html,helloworld.pyにアクセスした時のAapcheのログはどうなっているでしょうか? ローカルからのアクセスとの違いもあると原因が絞れるかもしれません。
bin_300K

2016/05/09 14:12

lightsonさん ありがとうございます!今、ログを確認します!確認しましたら、こちらに掲載します!すみません。
bin_300K

2016/05/09 14:15

まず、helloworld.py ローカルからうまく表示されたときのログです。"GET / HTTP/1.1" 200 313 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36"
bin_300K

2016/05/09 14:17

次に helloworld.html ローカルからうまく表示されたときのログです。"GET / HTTP/1.1" 200 313 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36"
bin_300K

2016/05/09 14:27

↑のログは、/var/log/apache2/access.log にあったものです。error.logを確認したのですが、エラーログらしきものがありませんでした。[wsgi.error]というものはたくさんあるのですが、時間帯からして、Djangoのitwork!を出そうとしたときに表示できずにでたエラーと思われます。logファイルはapache2にいくつかありますが、確認するファイルが異なっているのでしょうか??質問ばかりですみません。
guest

回答2

0

グローバルIPからApacheにアクセスしたログが残っていないようですね。
そうすると可能性が高いのはChironian さんの書かれた順番になると思います。
まずはグローバルIPの確認から始めてはいかがでしょうか?

投稿2016/05/09 14:36

lightson

総合スコア553

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

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

bin_300K

2016/05/09 15:00

lightsonさん ありがとうございます!Chironianさんに提示していただいた可能性を明日またひとつひとつ追って行こうと思います。迅速なアドバイス大変助かりました、ありがとうございます!
bin_300K

2016/05/10 02:12

lightsonさん  皆様のアドバイスにしたがい、グローバルIPアドレスを確認したら、変わっていたので、そこからアクセスしなおすと、無事全部表示されました! 先入観で、プロバイダと契約したときにグローバルIPも固有のものをもらえて、社内LANのように変化しないのかなと勘違いしていました。勉強になりました。 迅速にアドバイスいただけて、本当に助かりました!ありがとうございました!
guest

0

ベストアンサー

こんにちは。

LAN側からなら応答があるのに、WAN側からは応答が得られないということは、WAN側からの経路のどこかが途切れている筈です。

下記の可能性はあると思います。(他にもあると思いますが、これくらいしか思いつきませんでした。)

①ルータが再起動したなどで、WAN側IPアドレスがいつの間にか変わっていた
②何かのミスでルータの設定が変わっていた
③iPad,Androidをsoftbank回線で使っているつもりが、実はWiFiがONになっていた。
(LAN側から自WAN側IPへバケットを投げた時に中継しないルータは少なくないようです。)
④ラズパイ側(apache2含む)のセキュリティ設定が変わり、グローバルIPに応答しなくなっている
(そんな設定はないかも知れません。可能性を想定してみただけです。)
ラズパイ側からの応答が届いていない可能性を思いつかなかったので④はちょっと無理やりです。

①②③を確認しても正常でしたら、ラズパイへバケットが届いているかどうかは追加装置無しで確認できます。
ルータのポートフォワーディング設定をPC側へ一時的に変更し、Wireshark等パケットキャプチャソフトを使ってPCに届くパケットを監視します。(Wiresharkは無償で使えます。)
そして、iPad等から自宅IPへブラウズしてみてください。80番ポートへ届くパケットの有無とその内容で届いているかどうか確認できると思います。

届いていないようでしたら、ルータをWAN側からのpingに応答する設定にして、PingTools等で自宅あてpingを打ってみることが考えられます。

もし、リピータハブを入手できるようでしたら、ルータ、ラズパイ、PCをリピータハブに繋いでWiresharkで確認すればラズパイからの応答の具合も監視できます。

これらの作業で絞り込んで行けばいつか原因に到達する筈です。

投稿2016/05/09 13:40

Chironian

総合スコア23272

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

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

bin_300K

2016/05/09 14:12

Chironianさん 大変丁寧なご回答ありがとうございます!早速明日、試してみたいと思います!
bin_300K

2016/05/09 14:32

今、他の回答者様のアドバイスでログを確認してみましたが、①~③は正常の可能性があるかなと思われます(しかし、私がlogチェックに習熟していないので、自信がないです・・・)pingを打ってサーバー応答を確認してみる方法を考えたいと思います。pingToolなど、ググってみます!本当にありがとうございます。
Chironian

2016/05/09 14:56

ログについては、ローカルからのログについてのみ記載されているように見えます。 WAN側からのログが存在しないようなら、パケットが届いていないことになりますので、①~③は疑った方が良いと思います。
bin_300K

2016/05/09 14:59

Chironianさん ありがとうございます!早とちりしてしまったようですみません!明日またアドバイスに沿って再チャレンジしてみます!本当にありがとうございます!
bin_300K

2016/05/10 02:11

Chironianさん  グローバルIPアドレスを確認したら、変わっていました!ので、そこからアクセスしなおすと、無事全部表示されました! 先入観で、プロバイダと契約したときにグローバルIPも固有のものをもらえて、社内LANのように変化しないのかなと勘違いしていました。勉強になりました。 本当に助かりました!ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問