Virtualbox Webサーバーが外部から接続できないときに確認したいこと
はい。
Virtualboxで作ったWebサーバーで外部ネットワークから接続できないという問題で見事に詰んでました。一日半かけてやっと原因がわかったので紹介します
私がしたかったこと
①ローカル環境だけじゃなく外部からもVirtualBoxで作ったゲストOSのWebサーバーを見れるようにする
②NATを使わずブリッジアダプタだけで何とかする
です。結論から言うといけました。他にもっといい方法があるとは思うのですがなぜかブリッジアダプタにこだわっていましたw
ローカルでは接続できるのに
なぜ外部からはみれないんだーーーーー!
と途中で叫びそうになりましたがこれは自分の知識不足が原因でした。
原因はルーター側の設定を直すことで解決することが出来ました。いわゆるポート開放ってやつですね。
わたしがやったことをまとめると(環境CentOS6.9 , apache 2.2)
0.当たり前ですがゲストOSでのポート80をあける
1.ファイアウォールを消す
/etc/init.d/iptables stop
ファイアウォール消しても直らなかったので次
2.ゲストOSのポートも開いてましたので次
3.ルーター側でポートフォワーディングをさっそく行った
私はバッファローのルーターを使っていたのでグローバルIPアドレスで接続してきたリクエストをVirtualboxのゲストOSに飛ばす設定を行いました。ここら辺の知識が弱かったのでだいぶ迷いました。
やるべきことを全部やったのに外部から接続出来ないという方はルーターのポートフォワーディングについて調べてみましょう
私は以下のサイトを参考にしました。
http://buffalo.jp/download/manual/html/air1200/router/whrg300n/chapter16.html
ブリッジアダプタの場合
外部ネットワーク ---> グローバルIPアドレス ----> VirtualBoxのゲストOS
でしかリクエストが送ることができないということが判明しました。
直接外部ネットワークからゲストOSにはリクエストが行かないんですね。(グローバルIPアドレスがないため)
これ理解するのに一日かかりました。
なぜこんなに時間がかかったかというともうひとつ問題があって私が使っていたルーターの特徴なのか知りませんがグローバルIPアドレスを入力するとルーターの設定画面に飛ばされてしまうんですね。
グローバルIPって何?おいしいの?くらいしか思っていなかった私はこれで一日ずっとプライベートIPアドレスをURLに打ち続けることになります。
いい勉強になったっちゃなりましたが高い代償でしたねw