メモ > サーバ > 各論: Vagrant > IPアドレスの指定
IPアドレスの指定
Vagrantfileの「config.vm.network」で、IPアドレスを指定できる(HTTPアクセスなどに使用するアドレス)
いずれの場合も、SSHでのアクセスは 127.0.0.1 で行う
Vagrantでpingが通らない!ゆえにVagrantネットワークを学び直したよ | ITかあさん
http://www.kaasan.info/archives/3665
Vagrant 初心者 Network 設定 - Qiita
https://qiita.com/yusk24/items/e43b25ce4eeda69b4b57
LAN内の他端末からvagrantの仮想マシンにsshする - Qiita
https://qiita.com/teratsyk/items/10bf89422ce98265c8a8
よく使うVagrantfileの設定のまとめ
https://www.virment.com/vagrantfile-settings/
■forwarded_port
config.vm.network "forwarded_port", guest: 80, host: 8080
ホストマシンから http://localhost:8080/ でアクセスできる
PCのIPアドレスを指定すれば、同一LAN内からVagrantにアクセスできる
詳細はこのドキュメントの「環境構築」の「localhostでアクセスする&同一LAN内からアクセスする」を参照
■private_network
config.vm.network "private_network", ip: "192.168.33.10"
ホストマシンから 192.168.33.10 にアクセスできる
サーバ内でIPアドレスを確認すると、以下のようになっている
$ 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
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:cb:d7:28 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
inet6 fe80::a00:27ff:fecb:d728/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:ae:64:f9 brd ff:ff:ff:ff:ff:ff
inet 192.168.33.10/24 brd 192.168.33.255 scope global eth1
inet6 fe80::a00:27ff:feae:64f9/64 scope link
valid_lft forever preferred_lft forever
■public_network(DHCP)
config.vm.network "public_network"
以下の場合、ホストマシンから 192.168.1.105 にアクセスできる(毎回IPアドレスの確認が必要)
同一LAN内の他マシンからもアクセスできる
$ ip addr
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
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:cb:d7:28 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
inet6 fe80::a00:27ff:fecb:d728/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:ae:64:f9 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.105/24 brd 192.168.1.255 scope global eth1
inet6 fe80::a00:27ff:feae:64f9/64 scope link
valid_lft forever preferred_lft forever
$ ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:CB:D7:28
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fecb:d728/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:868 errors:0 dropped:0 overruns:0 frame:0
TX packets:579 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:90222 (88.1 KiB) TX bytes:82612 (80.6 KiB)
eth1 Link encap:Ethernet HWaddr 08:00:27:AE:64:F9
inet addr:192.168.1.105 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:feae:64f9/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:510 errors:0 dropped:0 overruns:0 frame:0
TX packets:37 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:39865 (38.9 KiB) TX bytes:4801 (4.6 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:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
■両方を指定
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.network "public_network"
以下の場合、ホストマシンから 192.168.33.10 にアクセスできる
192.168.1.106 でもアクセスでき、このアドレスなら他マシンからもアクセスできる(毎回IPアドレスの確認が必要)
$ 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
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:cb:d7:28 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
inet6 fe80::a00:27ff:fecb:d728/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:ae:64:f9 brd ff:ff:ff:ff:ff:ff
inet 192.168.33.10/24 brd 192.168.33.255 scope global eth1
inet6 fe80::a00:27ff:feae:64f9/64 scope link
valid_lft forever preferred_lft forever
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:71:6d:ff brd ff:ff:ff:ff:ff:ff
inet 192.168.1.106/24 brd 192.168.1.255 scope global eth2
inet6 fe80::a00:27ff:fe71:6dff/64 scope link
valid_lft forever preferred_lft forever
■public_network(IP固定)
config.vm.network "public_network", ip: "192.168.1.10", bridge: "en0: Wi-Fi (AirPort)"
IPアドレスの重複があると、Vagrant起動時にエラーになる
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!
/sbin/ifdown 'eth1'
mv -f '/tmp/vagrant-network-entry-eth1-1526521968-0' '/etc/sysconfig/network-scripts/ifcfg-eth1'
/sbin/ifup 'eth1'
Stdout from the command:
Determining if ip address 192.168.1.10 is already in use for device eth1...
Error, some other host (60:F8:1D:BA:9D:46) already uses address 192.168.1.10.
Stderr from the command:
config.vm.network "public_network", ip: "192.168.33.101", bridge: "en0: Wi-Fi (AirPort)"
他のアドレスを指定すればエラーが解消された
…が、ブラウザから接続できない
試したネットワークのセグメントが 192.168.1.0/24 のため、192.168.33.0/24 だと通信できなかったのだと思われる
また改めて検証したい