VM上で立ち上げたローカルホストをホストから見る方法
環境
ホスト:Windows8 64bit
ゲスト:(VirtualBox) CentOS6.7, Ruby on Rails
やりたいこと:
ゲストOSのRails上でlocalhostを立ち上げ、
ホストOSのブラウザで確認する。
手順:
VirtualBoxにネットワーク設定を2つ用意しておく。
① ブリッジアダプター
→ ゲストOSがホストOSと同じネットワークを使用するので、ゲスト側が外と繋がるために必要。
② ホストオンリー アダプター
→ ホストとゲストの間で通信する(外部に出ない通信)。
もしホストオンリーアダプターが立ち上がらなかったら、
コントロールパネル→ネットワークでvirtualboxのネットワークのプロパティを開き、NISC6が無効化(チェックなし)だったらチェックを入れて有効化する。
次にゲストOSを立ち上げてIPアドレスを確認。
ifconfig
eth1のアドレスをメモる。
恐らくローカルとグローバルアドレスとホスト通信の3つあると思われるが、
192.168.x.xのアドレスを使用する。
次にiptablesの設定を行い、ゲストOSのポートを開ける。
sudo vi /etc/sysconfig/iptables
Railsのサーバ(Webrick)の場合、3000番ポートを使用するので、3000番を開ける。
-A INPUT -p tcp -m tcp --dport 3000 -j ACCEPT
変更したら更新内容を反映させる。
iptables restart
次にwebrickを立ち上げる。
※事前にアプリがあると仮定
rails s -b 0.0.0.0
これでゲスト側はオッケー。
次にホストのブラウザを立ち上げ、最初に調べたIPアドレス:ポートを指定する。
確認できたらオッケー。
番外編:
FTPクライアントも入れたいという場合には、ここまでくれば設定はすぐできる。
たとえば、WinSCPの場合、設定のホスト名にゲスト側のIPアドレス、SFTPにしてゲストのユーザーでログインすればオッケー。