Skip to content

VirtualBoxネットワーク設定のまとめ(Vagrant)

Vagrant1.8.4で作成したVirtualBox5.0.20の仮想マシンにWindows10のブラウザからアクセスできなかったところを、設定を変更してアクセスできるようにしました。

VirtualBoxマネージャを確認

とりあえずVirtualBoxマネージャの「設定」→「ネットワーク」を確認してみます。

NATに割り当てられたアダプター1だけが有効になっていました。

ポートフォワードもSSHしか設定されていませんでした。

NATというのは、VMからどこかへはアクセスできるが、その逆はできない、というような状態です。

例外的に、ポートフォワードが設定されている2020ポートからはSSHでゲストマシンに接続することができますが、ブラウザからアクセスすることはできません。

VirtualBoxマネージャでポートフォワードの設定をしてみてもいいと思うのですが、Vagrantでの管理と不整合が生まれてしまうといやなのでここでは何もせず、Vagrantの設定を変更する方法を探したいと思います。

Vagrantfileを確認

Vagrantの設定といってまず最初に思いつくのはVagrantfileなので、それを確認してみます。

シャープはコメントアウトなので、その行を無視すると以下のようになりました。

よくわかりませんが、おそらくboxが指定してあるだけで、それ以外はデフォルトということでしょう。

次に、”net”でファイル内を検索してみます。

すると、以下のあたりに”network”という記述がちらほら見つかりました。

この辺が怪しいです。

ネットワーク設定を変更

Vagrantfileのnetwork周りには、3つのキーワードがあります。

  • forwarded_port
  • private_network
  • public_network

おそらくforwarded_portがポートフォワードの設定、private_networkはホストオンリーアダプタの設定、public_networkはブリッジアダプタの設定と思われます。

forwarded_port

forwarded_portはポートフォワードの設定のようなので、たとえばこのようにしてvagrant upします。

すると、ホストの127.0.0.1:1234でゲストの127.0.0.1:1234にアクセスできるようになります。

「127.0.0.1」は”自分自身”を指す特別なIPなので、ホストマシン自身のポート1234がゲストマシン自身のポート1234につながった、ということになります。

private_network

次にprivate_networkですが、これはホストオンリーアダプタの設定で、ホストOSからのみアクセスできるIPを設定します。

例えば次のように設定してvagrant upすると、ホストの192.168.33.10:1234でゲストの127.0.0.1:1234にアクセスできるようになります。

ネットワーク設定が変更されるので、管理者権限による認証を求められる場合もあると思います。

自分の環境では2度ほど要求されました。

public_network

最後にpublic_networkです。

ブリッジアダプタの設定ですが、これはよほど必要に迫られていない限り基本的に設定しないほうがよいと思います。

というのも、全くの外部から、IPさえあっていればアクセスできるようになってしまいます。

利用するとしたら、例えば、そもそもアクセスできる人が限られているイントラネット環境で設定することになるでしょう。

まとめ

Vagrantfileを利用したネットワーク設定の変更を一通り確認しました。

自分の場合、ゲストマシンでNode.jsを使った開発をしており、ポート番号を頻繁に変えることが想定されるので、ホストオンリーアダプタでホストマシンからアクセスすることにしようと思います。

Comments are closed.