前回、VagrantでAmazonLinuxのBoxを使ってOSを立ち上げました。
本当にやりたかったのは
外部からVagrant上に立ち上げたBoxに対してアクセスがしたい
でした。
今回はそれをやってみようと思います。
そもそもなぜこのようなことを?
先ほど書いた通り、LAN内の他のPCから自分のPC内の仮想OSにアクセスしたいということをしたくてやっていたのですが、出来なかったのが事の発端です。
改めて家のPCで確認してみるかという流れから今に至ります。
やりかた
やり方自体は結構簡単で、Vagrantfileの以下の部分をコメントインするだけです。
# Create a public network, which generally matched to bridged network. # Bridged networks make the machine appear as another physical device on # your network. config.vm.network "public_network"★←ここ
config.vm.network "public_network"
をコメントインしたら、あとはvagrant up
起動中にやってしまった場合はvagrant reload
するだけです。
ただ、これは特に設定も変えておらずやりだした場合にはスムーズにいきます。
すでにネットワークの設定を変えたりしていると、立ち上がったOS側でのネットワーク設定が残っていたりしてうまくいかない場合があります。
その場合は最初にOSにログインして、ネットワーク設定を消してから実施してあげましょう。
ちゃんと設定できたか確認する
では、ちゃんとできたかどうか確認。
OSが立ち上がったら、ifconfigで確認します。
[vagrant@localhost ~]$ ifconfig eth0 Link encap:Ethernet HWaddr 08:00:27:11:71:AE inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe11:71ae/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:656 errors:0 dropped:0 overruns:0 frame:0 TX packets:721 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:74803 (73.0 KiB) TX bytes:75741 (73.9 KiB) eth1 Link encap:Ethernet HWaddr 08:00:27:C4:EE:01 inet addr:192.168.33.72 Bcast:192.168.33.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fec4:ee01/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:16 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:519 (519.0 b) TX bytes:1048 (1.0 KiB) eth2 Link encap:Ethernet HWaddr 08:00:27:12:06:DB inet addr:192.168.11.9 Bcast:192.168.11.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe12:6db/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:79 errors:0 dropped:0 overruns:0 frame:0 TX packets:59 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:18381 (17.9 KiB) TX bytes:5134 (5.0 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:565 errors:0 dropped:0 overruns:0 frame:0 TX packets:565 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:49684 (48.5 KiB) TX bytes:49684 (48.5 KiB) [vagrant@localhost ~]$
eth2 として追加されていますね。
ついでにrouteも確認。
[vagrant@localhost ~]$ [vagrant@localhost ~]$ route route route53 route53-2.7 routef routel [vagrant@localhost ~]$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.11.1 0.0.0.0 UG 0 0 0 eth2 10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.169.254 0.0.0.0 255.255.255.255 UH 0 0 0 eth0 192.168.11.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2 192.168.33.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 [vagrant@localhost ~]$
routeも設定されていますね。問題なさげ。
終わりに
今回は、public_network・・・・VirtualBox的にはBridgeの設定をしたことになります。
うーむ・・・・出来てしまった。
ほかのLAN内にいるPCでやったときはできなくて、家のLANだとできる・・・・
家でできるということは、LANを束ねているルータのほうでDHCPが無効になっているとかそういう理由な気がしてきました。
Box側の問題なのかどうかの切り分けをするという意味でも今回の検証は無意味なものではなかったのかなと思っています。
ちなみに、Vagrantのネットワーク設定は、BridgeだったりPrivateだったりpublicだったりNATだったりいろいろとあります。
その辺の違いは以下のサイトが一番わかりやすかったです。
出来なかった環境のほうで実現しようと考えたら、DHCPが無効になっているとしたら、これはもうポート転送でどうにかするしかないな。
それではー。