ホストオンリー
概要
- ホスト~ゲスト間のみ通信が可能
- 仮想環境起動時にゲスト側のプライベートアドレス(固定IP)を指定
- 指定したIPでゲスト側に新たなインターフェイス(eth)が加わる
- ゲスト側のサーバーでポートを指定して開き、ホスト側から固定IPとそのポートで接続
設定
Vagrantfileの以下のコメントアウトを外す。
1 2 3 |
# Create a private network, which allows host-only access to the machine # using a specific IP. config.vm.network "private_network", ip: "192.168.33.10" |
設定状況の確認。指定したIPアドレスでeth1が設定されていてる。
- ゲスト側のサーバーでeth1のIPアドレス(192.168.33.10)と任意のポート指定
- ホスト側からそのIPアドレスポートで接続
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
[vagrant@localhost ~]$ ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255 inet6 fe80::10ae:de8c:87bc:71ab prefixlen 64 scopeid 0x20<link> ether 08:00:27:0e:4e:dd txqueuelen 1000 (Ethernet) RX packets 858 bytes 102424 (100.0 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 696 bytes 116213 (113.4 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.33.10 netmask 255.255.255.0 broadcast 192.168.33.255 inet6 fe80::a00:27ff:fee3:4137 prefixlen 64 scopeid 0x20<link> ether 08:00:27:e3:41:37 txqueuelen 1000 (Ethernet) RX packets 140 bytes 12880 (12.5 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 19 bytes 1462 (1.4 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 12 bytes 984 (984.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 12 bytes 984 (984.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 |
接続例
たとえばPHPのビルトインサーバーを以下のように起動し、ホストのブラウザーのURLに192.168.33.10:8080/test.php
などと指定。
ポート番号8080は任意の値を設定でき、ゲスト側のサーバーで指定した番号と同じものをホスト側のブラウザー等でも指定。
1 2 3 4 5 6 7 |
[vagrant@localhost ~]$ php -S 192.168.33.10:8080 -t /home/vagrant/app PHP 7.3.28 Development Server started at Fri Jun 25 01:34:59 2021 Listening on http://192.168.33.10:8080 Document root is /home/vagrant/app/php Press Ctrl-C to quit. [Fri Jun 25 01:35:11 2021] 192.168.33.1:59811 [200]: /test.php [Fri Jun 25 01:35:11 2021] 192.168.33.1:65378 [404]: /favicon.ico - No such file or directory |
ポートフォワーディング
概要
- ゲストとホストそれぞれのポート番号を指定する
- ゲスト側ではeth0のIPアドレスとゲストに指定されたポート番号でサーバを起動
- ホスト側ではlocalhost(127.0.0.1)とホストに指定されたポート番号でゲスト側に接続
設定
Vagrantfileの以下のコメントアウトを外す。
1 2 3 4 5 6 |
# Create a forwarded port mapping which allows access to a specific port # within the machine from a port on the host machine. In the example below, # accessing "localhost:8080" will access port 80 on the guest machine. # NOTE: This will enable public access to the opened port # config.vm.network "forwarded_port", guest: 80, host: 8080 config.vm.network "forwarded_port", guest: 3000, host: 3000 |
設定状況の確認。
- ゲスト側ではeth0のIPアドレス(10.0.2.15)とVagrantfileのguestで指定したポート(3000)でサーバーを起動
- ホスト側からはlocalhost(または127.0.0.1)とVagrantfileのhostで指定したポートで接続
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
[vagrant@localhost ~]$ ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255 inet6 fe80::10ae:de8c:87bc:71ab prefixlen 64 scopeid 0x20<link> ether 08:00:27:0e:4e:dd txqueuelen 1000 (Ethernet) RX packets 1036 bytes 111836 (109.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 776 bytes 120609 (117.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 68 bytes 5896 (5.7 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 68 bytes 5896 (5.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 |
接続例
たとえばPHPのビルトインサーバーを以下のように起動し、ホストのブラウザーのURLにlocalhost:3000/test.php
あるいは127.0.0.1:3000/test.php
などと指定。
1 2 3 4 5 6 |
[vagrant@localhost app]$ php -S 10.0.2.15:3000 -t ~/app PHP 7.3.28 Development Server started at Fri Jun 25 10:33:58 2021 Listening on http://10.0.2.15:3000 Document root is /home/vagrant/app Press Ctrl-C to quit. [Fri Jun 25 10:34:04 2021] 10.0.2.2:57777 [200]: /test.php |
異なるポート番号の場合
ホスト側とゲスト側のポート番号は異なってもよい。たとえばVagrantfileの先ほどの1行上の方をコメントアウトする。
1 |
config.vm.network "forwarded_port", guest: 80, host: 8080 |
この場合はゲスト側でサーバーを起動する場合にポート80で起動する(注:ポート80を使う場合はroot権限が必要)。たとえばPHPのビルトインサーバーの場合は以下のとおり。
1 2 3 4 5 6 |
[vagrant@localhost app]$ sudo php -S 10.0.2.15:80 -t ~/app PHP 7.3.28 Development Server started at Fri Jun 25 11:01:00 2021 Listening on http://10.0.2.15:80 Document root is /home/vagrant/app Press Ctrl-C to quit. [Fri Jun 25 11:01:18 2021] 10.0.2.2:64663 [200]: /test.php |
そしてホスト側のブラウザーからは以下で接続する。
localhost:8080/test.php
または127.0.0.1:8080/test.php