端くれプログラマの備忘録 Vagrant [Vagrant] LAN内の別マシンから仮想マシンにアクセスする

[Vagrant] LAN内の別マシンから仮想マシンにアクセスする

仮想マシンでウェブサーバーを稼動させ、LAN内の別マシンからアクセスしたい。環境を作って実験してみよう。

プライベートネットワークの設定

テスト用にCentOS 7ベースの仮想マシンを構築してApacheを稼動させる。Vagrantでプライベートネットワークを設定することで、ホストOSのブラウザが仮想マシンのサーバーにアクセスできる。

$ vagrant init centos-7.1
$ vim Vagrantfile
config.vm.network "private_network", ip: "192.168.33.10"
$ vagrant up
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:51:d1:5e brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3
       valid_lft 86350sec preferred_lft 86350sec
    inet6 fe80::a00:27ff:fe51:d15e/64 scope link
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:b4:45:7d brd ff:ff:ff:ff:ff:ff
    inet 192.168.33.10/24 brd 192.168.33.255 scope global enp0s8
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:feb4:457d/64 scope link
       valid_lft forever preferred_lft forever

$ sudo yum update -y
$ sudo yum install -y httpd
$ sudo systemctl enable httpd.service
$ sudo apachectl restart

ホストOSから http://192.168.33.10/ にアクセスしてページが表示されればOK。

0019

パブリックネットワークの設定

Vagrantでパブリックネットワークも設定することで、LAN上の他マシンから仮想マシンのサーバーにアクセスできるようになる。

$ vim Vagrantfile
config.vm.network "public_network"
$ vagrant reload
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:51:d1:5e brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3
       valid_lft 86241sec preferred_lft 86241sec
    inet6 fe80::a00:27ff:fe51:d15e/64 scope link
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:b4:45:7d brd ff:ff:ff:ff:ff:ff
    inet 192.168.33.10/24 brd 192.168.33.255 scope global enp0s8
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:feb4:457d/64 scope link
       valid_lft forever preferred_lft forever
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:68:16:01 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.18/24 brd 192.168.1.255 scope global dynamic enp0s9
       valid_lft 86259sec preferred_lft 86259sec
    inet6 fe80::a00:27ff:fe68:1601/64 scope link tentative dadfailed
       valid_lft forever preferred_lft forever

新しいNICが割り当てられてる。アドレスはDHCPで振られたのだろう。

LAN上の他マシンから http://192.168.1.18/ にアクセスしてページが表示されればOK。

追加設定

IPアドレスやNICを固定で指定することもできるらしい。

$ vim Vagrantfile
config.vm.network "public_network", ip: "192.168.1.151", bridge: "en1: Wi-Fi (AirPort)"

参考サイト

Public Networks – Networking – Vagrant by HashiCorp
https://www.vagrantup.com/docs/networking/public_network.html

[Vagrant]LAN内の別マシンから仮想マシンにアクセスする
http://big1to.com/development-note/828

Vagrant: 同じLAN内の端末から仮想マシンにアクセスする | deadwood
http://www.d-wood.com/blog/2014/06/13_6344.html