VirtualBoxでホストOS<->ゲストOS間 ゲストOS->インターネット間の通信を行う方法
基本的にWeb開発はバーチャル環境でやりたい派なのだけれど、バーチャルマシン上のWebサーバに接続したい時とか
SSHで操作したい場合なんかは、ホストOS・ゲストOS間での通信が必要になる。
けれど、開発中のWebシステムが外部のサービスを利用する場合や、リポジトリがインターネット上だったりする場合は、
ゲストOSからインターネットに出ていく通信が必要になる。
今回は、VirtualBoxでどういう設定をすれば良いかというお話。
先に、VirtualBoxが仮想OSに割り当てるネットワークアダプタにはいくつか種類があるので簡単に説明。
1.NAT
アドレス変換。ゲストOS・インターネット間の通信ができる。
ホストOSからゲストOSへアクセスできない。
2.ブリッジアダプタ
ホスト端末が複数NICを備えている場合なんかに、一つのNICをゲストOSに割り当てる。
バーチャル上のWebサーバを外部に公開したい場合なんかはこれを使うのかな?
3.内部ネットワーク
ゲストOS「同士」で通信できるようになる。
ホストOSからゲストOSへはアクセス出来ない。
4.ホストオンリーアダプタ
ホストOS・ゲストOS間で通信可能。
ゲストOSからインターネットには出られない。
で、結論から言うと、
ゲストOSにNATとホストオンリーアダプタの両方を設定する
ことで、解決できる。
つまり、ゲストOSがインターネットに出ていく時はNATアダプタで通信して、
ホストOSと通信する時はホストオンリーアダプタで通信するということ。
以下、手順。
1.VirtualBoxにホストオンリーネットワークを追加(実OS内部に仮想ネットワークを作るようなイメージかな?)
[VirtualBox] - [環境設定] から[ネットワーク]タブを選択。
右側にある「+」ボタンを押下。以上。IPアドレスとかを変えたければ、ドライバアイコンを押下すればOK。
だけど、基本的にはデフォルトのままでいいと思う。
2.ゲストOSにアダプタを設定する。
VirtualBoxマネージャーからゲストOSの[設定]タブを選択。
[ネットワーク]タブを選択。
アダプタ1に「NAT」を設定。
アダプタ2に「ホストオンリーネットワーク」を設定。
以上
雑記
一時、「ぼくのかんがえたさいきょうの仮想OSぐんだん」みたいな感じで、色んなディストリのLinuxを集めてはバーチャル化していたり
したなぁと思い出した。別に何に使うってわけでもないんだけど。
お気に入りはPuppy Linux。理由。軽い。可愛い。
ローカルで複数Linuxサーバを建てたい時に重宝した。