VirtualBoxでポートフォワーディングの設定をコマンドラインから追加、削除、表示

  • 51
    Like
  • 0
    Comment
More than 1 year has passed since last update.

ポートフォワーディングの追加

OSX上のdockerでCentOS 6.5にnginxを公式レポジトリからインストールするサンプル - Qiitaにも書きましたが、ポートフォワーディングの追加は以下のようにします。

VBoxManage controlvm "boot2docker-vm" natpf1 "nginx,tcp,127.0.0.1,8080,,80"

この例ではlocalhostの8080番ポートをboot2docker-vmの80番ポートにフォワーディングします。

ポートフォワーディングの削除

削除するには追加した時の名前を指定してdeleteします。
参考: VBoxManage controlvmのマニュアル

VBoxManage controlvm "boot2docker-vm" natpf1 delete nginx

ポートフォワーディングの変更

すでに登録済みの名前を再度追加しようとすると

VBoxManage: error: A NAT rule of this name already exists

というエラーが出ます。

ということで、変更するには一旦削除してから追加します。

ポートフォワーディングの確認

VBoxManage showvminfo boot2docker-vm | grep '^NIC'

以下の様な出力が出ます。

NIC 1:           MAC: 080027AB2BD4, Attachment: NAT, Cable connected: on, Trace: off (file: none), Type: virtio, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none
NIC 1 Settings:  MTU: 0, Socket (send: 64, receive: 64), TCP Window (send:64, receive: 64)
NIC 1 Rule(0):   name = docker, protocol = tcp, host ip = 127.0.0.1, host port = 4243, guest ip = , guest port = 4243
NIC 1 Rule(1):   name = nginx, protocol = tcp, host ip = 127.0.0.1, host port = 8080, guest ip = , guest port = 80
NIC 1 Rule(2):   name = redis, protocol = tcp, host ip = 127.0.0.1, host port = 16379, guest ip = , guest port = 6379
NIC 1 Rule(3):   name = ssh, protocol = tcp, host ip = 127.0.0.1, host port = 2022, guest ip = , guest port = 22
NIC 2:           MAC: 0800270F0BE8, Attachment: Host-only Interface 'vboxnet0', Cable connected: on, Trace: off (file: none), Type: Am79C973, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none
NIC 3:           disabled
NIC 4:           disabled
NIC 5:           disabled
NIC 6:           disabled
NIC 7:           disabled
NIC 8:           disabled