Windows, Vagrant: LAN内の機器から仮想マシンへのアクセスを可能にする
目次
要望
あるPC内の仮想マシンに置いたWebページを、LAN内の別の機器のブラウザで開いて表示を確認したいです。
環境
- ホストPCのOS: Windows7 64bit
- VirtualBox 4.3.12
- Vagrant 1.7.2
- 我が家のLANの範囲: 192.168.1.0/24 (192.168.1.0 255.255.255.0)
手順
まず、仮想マシンに割り当てるIPアドレスを決めます。
既存の機器のIPアドレスと被らないように注意します。
下記のソフトはLAN内の機器を一括検知できるので便利です。
あとは、Vagrantfile
にvm.network "public_network"
を追記するだけです。
私はプライベートネットワークの設定を削除して、上記のパブリックのみにしました。
(削除した行: config.vm.network 'private_network', ip: '192.168.33.10'
)
共有フォルダを有効にするにはプライベートが必要だという情報も見かけましたが、私が使っているバージョンでは必要ありませんでした。
実際のVagrantfileは下記のとおりです。
# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure(2) do |config| config.vm.box = 'centos65-x86_64-20140116' config.vm.network 'public_network', ip: '192.168.1.100' config.vm.synced_folder '../../server', '/var/www/html' config.vm.provision :chef_zero do |chef| chef.cookbooks_path = './' chef.run_list = 'recipe[my-lamp::default]' chef.json = { :php => { :timezone => 'Asia/Tokyo', :allow_from => '192.168.' } } end end
余談: ブリッジアダプターを確認
VirtualBoxの設定画面のネットワーク
の項目を確認すると、ホストオンリーアダプター
が消えてブリッジアダプター
が追加されています。
Vagrantを使わない場合でも、ブリッジアダプターとして実際にホストPCがネット接続に使用しているアダプタを選ぶと、仮想マシンもLANの一員として認められます。…というのを一昨年の講師研修で教わりました。
懐かしい… (遠い目)
余談: XAMPP for Windowsの場合
XAMPPの場合は簡単です。
自分のPCのIPアドレスをipconfig
コマンドで調べて、スマホからそこにアクセスするだけです。
たとえば下記のように表示されたならhttp://192.168.1.20
へアクセスします。
> ipconfig イーサネット アダプター イーサネット: 接続固有の DNS サフィックス . . . . .: リンクローカル IPv6 アドレス. . . . .: fe80::2596:6fa0:28fc:bb86%9 IPv4 アドレス . . . . . . . . . . . .: 192.168.1.20 サブネット マスク . . . . . . . . . .: 255.255.255.0 デフォルト ゲートウェイ . . . . . . .: 192.168.1.1