ローカルPCとVirtual Boxの仮想マシンとのネットワーク接続、どうなってる?

ローカルPCとVirtual Boxの仮想マシンとのネットワーク接続、どうなってる?

1台のPCの中に何台も仮想マシンを立てれるVirtual Box。
サーバー持ちになることを夢見ながら、初めてVirtual Boxをインストールしました。

1.まずは、仮想マシンを立てよう♪

Now Searching, Downloading, installing, loading…(準備段階は省略します ;;)

・動作環境: HostOSはwindows 7、GuestOSはubuntuです。

Virtual BoxでGuestOSを起動すると、下のような画面が表示されます。

image08
GuestOSの画面をクリックすると、マウスのcursorがGuestOSへ移り、HostOSの操作ができなくなります。HostOSの画面操作をしようとしたら、Ctrl + Altキーを押します。

またGuestOSをクリックし、HostOSを操作するためCtrl + Altキーを押す・・・

面倒くさいですね。

HostOSからteratermでGuestOSへSSH接続することを決意しました。
(別の方法もありますよね、たぶん)

Guest OSに早速SSH接続を試みたら、time out発生!!

2.【問題】あら?HostOSからGuestOSへ接続できない・・

通信確認のため、HostOSとGuestOS両方からそれぞれpingを打ちました。
GuestOSからHostOSのIPアドレス宛てのpingは通るのに、その反対は通信できません。

image14

そもそもGuestOSとHostOSはどう繋がっているのか?

ポイントは、Virtual boxで作成した仮想マシンのネットワーク設定です。
デフォルト設定は割り当て方式がNATであり、論理的には以下のようなネットワーク構成です。

image11

上記の図で通信は以下の通りです。

・内部 → 外部への通信: Virtual Boxにてxxx.xxx.xxx.xxxにNATされ、通信が行われる。
・外部 → 内部への通信: デフォルトの設定だと、通信不可である。

3.【解決策】方法は三つ

割り当て方式を以下三つのどれかにすれば、HostOSからGuestOSへの通信が可能です。

  • i.NAT + 通信したいポートそれぞれにポートフォワーディング設定
  • ii.ホストオンリーアダプター
  • iii.ブリッジアダプター

i. 割り当て方式はNATのまま、ポートフォワーディングを追加設定

デフォルト設定に比べ、論理的なネットワーク構成の変更はありません。
手順は以下の通りです。
1)仮想マシンの「設定」 > 「ネットワーク」 > 「アダプター1」タブの「ポートフォワーディング」をクリックする。

2)ポートフォワーディングのルールを記載し、OKボタンを押す。
下図はHostOSからGuestOSへのSSH接続を追加した例。
SSH clientにてIPアドレス「127.0.0.1」、ポート番号「2222」宛に接続すると、 GuestOSへSSH接続できる。

image09

ii. アダプターを追加し、割り当て方式をホストオンリーアダプターに設定

Virtual BoxにてHostOSとGuestOS間に外部とは隔離されたネットワークを作成します。

手順は以下の通りです。
1)仮想マシンの「設定」 > 「ネットワーク」 > 「アダプター2」タブをクリックする。
2)アダプター2の設定画面にて、以下を設定しOKボタンを押す。
 ・ネットワークアダプターを有効化: チェックを入れる。
 ・割り当て: ホストオンリーアダプター
 ・名前: 「VirtualBox Host-Only Ethernet Adapter」を選択する。

iii. 割り当て方式をブリッジアダプターに設定

注: HostOSが接続しているネットワーク上に新しいマシンを追加することになるので、自己責任でやってください! 社内など、公的なネットワークに接続している場合は、お勧めしません;;

論理的なネットワーク構成は以下の通りです。

image15

手順は以下の通りです。
1)仮想マシンの「設定」 > 「ネットワーク」 > 「アダプター1」タブをクリックする。
2)アダプター1の設定画面にて、以下を設定しOKボタンを押す。
 ・割り当て: 「ブリッジアダプター」を選択する。

4.最後に

これでHostOSとGuestOS間でネットワーク接続ができるようになりました。
(GuestOS側の設定ももちろん必要ですが、ここでは割愛します。; 😉

これを読んだ初心者の方は、ぜひGuestOSを複数作成し、多数の仮想サーバーの村を作ってみましょう♪

※Virtual boxのネットワーク設定について詳細な説明は、以下のURLをご参考ください。
https://www.virtualbox.org/manual/ch06.html#nichardware

コメント