戦場のプログラマー

名前は誰も知らない。

VirtualBoxでポートフォワーディングするときの注意点

Vagrantとかでもポートフォワーディング多用してるっぽいし、いつもブリッジして甘えてた自分にさよならバイバイして、VirtualBoxにNATかませてビッグウェーブに乗ることにしました。

目標

localhostでポート指定してゲストOSのWebがみれて、SSHできるようにする。

NATの設定をする

NATにしなくちゃ話が始まらない。

f:id:wnoguchi0727:20140620231607p:plain

ではポートフォワーディングの設定をします。

悪い例

f:id:wnoguchi0727:20140620234312p:plain

  • MacでやってるとMac標準のApacheが返事をして It Works! とか意味分かんない感じで言われると思います。
sudo apachectl stop

でプロセスを殺してもあまり変わらず。代わりにシークレットウィンドウ立ち上げるのですが、これでもアクセスできない。

SSHも駄目です。

$ ssh -p 222 vagrant@localhost
ssh: connect to host localhost port 222: Connection refused

良い例

f:id:wnoguchi0727:20140620234337p:plain

待てよ、と思い直してみました。
Tomcatとかのトラブルでウェルノンポートで立ち上げようとしたらroot権限が必要だったこと思い出して、これかなあと思いウェルノンポートから外したところでリッスンするようにしてみました。

バッチリでした。

これでブラウザ起動して http://localhost:8888/ でゲストOSのコンテンツが表示できればOKです(たぶんキャッシュ効いちゃってるからシークレットウィンドウでやったほうが確実)。
ついでに以下の様な感じでSSHも通ります。

$ ssh -p 2222 vagrant@localhost

いい感じにVagrantっぽくなりました。

まとめ

  • フォワーディング便利。
  • ウェルノンポートじゃフォワーディングできない。
  • シークレットモード便利。

参考文献