小さい頃はエラ呼吸

いつのまにやら肺で呼吸をしています。


VirtualBox + UbuntuでNAT接続のポートフォワーディングを行う方法

はじめに

このエントリではVirtualBox上で動作しているUbuntuにNAT接続でポートフォワーディングするための手順について書いています。
VirtualBoxのデフォルト設定ではNAT接続が行われます。このとき、ホストOSとゲストOSは別のネットワークとなってしまうため、両者の間での接続ができません。そこでポートフォワーディングという仕組みを使って、特定のポートの接続をゲストOS側へフォワード(転送)してしまうことで、接続することが可能になります。

NAT接続は、ホストOSがルータの役割を果たしているイメージなので、通常は実ネットワーク上の別のマシンが、ゲストOSで実行しているサービスを受けることは出来ない。ゲストOSとホストOSでは、参加しているネットワークが違うものになっているからである。
仮想化された日々:VirtualBoxのNAT接続でポートフォワード - livedoor Blog(ブログ) はてなブックマーク - 仮想化された日々:VirtualBoxのNAT接続でポートフォワード - livedoor Blog(ブログ)

OSとソフトウェアのバージョン
  • Mac OS X 10.6.7
  • Oracle VM VirtualBox 4.0.4
  • Ubuntu 10.10
NAT接続のポートフォワーディングを行う

はじめにホストOS側で以下の設定を行います。
1. ゲストOSが起動中ならシャットダウンします。
2. VirtualBoxの管理画面から仮想マシンを選択し、設定ボタンをクリックします。

3. 設定画面からネットワークのアイコンをクリックします。

4. 割り当てがNATになっていることを確認した上で、ポートフォワーディングのボタンをクリックします。

5. ポートフォワーディングの設定画面ではホストOSのIPアドレス/ポート番号とゲストOSのIPアドレス/ポート番号を設定します。

上記の例では、ホストOS:3000ポートへのアクセスがゲストOSの3000ポートへのアクセスへ転送され、ゲストOSにアクセスできるようになります。たとえば、22番ポートをポートフォワーディングすることで、ホストOSからゲストOSへSSHで接続することもできます。

2011.05.01 追記

ホストOSのIPおよびゲストOSのIPは空っぽにしてください。

ゲストOS側でポートの開放を行う

ポートフォワーディングで指定したポートがゲストOS側で許可されていない場合は、ポートを開放します。

1. ゲストOSを起動します。
2. 端末を起動し、以下のコマンドを実行します。3000のところはポート番号です。

sudo ufw allow 3000/tcp
おわりに

以上でVirtualBox + Ubuntuでポートフォワーディングの設定は完了です。この状態で、ホストOS側からゲストOS側に指定したポートでの通信が可能になります。