Puphpet/Vagrant:无法访问具有 IP 地址的 LAMP VM
Puphpet/Vagrant: Unable to access LAMP VM with IP address
我使用 Puphpet.com 使用 VirtualBox 5.1.24 部署本地 Ubuntu 16.04 LAMP 开发机器。我用 VM IP 地址 (192.168.56.101) 更新了 /etc/hosts。
$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 flippy
192.168.56.101 dev.mysite.com
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
我可以通过 SSH 进入虚拟机,但我无法通过 IP 地址 (192.168.56.101) 或域名访问它。
Ping 失败:
$ ping 192.168.56.101
PING 192.168.56.101 (192.168.56.101) 56(84) bytes of data.
^C
--- 192.168.56.101 ping statistics ---
164 packets transmitted, 0 received, 100% packet loss, time 166895ms
curl 失败:
$ curl -v 192.168.56.101
* Rebuilt URL to: 192.168.56.101/
* Trying 192.168.56.101...
* connect to 192.168.56.101 port 80 failed: Connection timed out
* Failed to connect to 192.168.56.101 port 80: Connection timed out
* Closing connection 0
curl: (7) Failed to connect to 192.168.56.101 port 80: Connection timed out
另外 netstat -rn
在主机上不显示 VM IP 地址的路由:
$ netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlp1s0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 wlp1s0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlp1s0
我还能检查什么?
我已经提供了 ,我认为这是相关的,但是我也会 post 它在这里,以防其他人想知道这个线程寻找解决方案。
这听起来很像在 5.1.26 中修复的 bug in VirtualBox 5.1.24。
问题似乎是由于 VirtualBox 未能为仅主机网络创建路由引起的。要检查是否是这种情况,请在您的主机 运行 netstat -rn
之后 运行ning vagrant up
从您的终端。这将向您显示内核 IP 路由 table 中的可用路由。将有几行输出,但在其中您应该看到您的专用网络 IP 看起来像这样:
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.56.101 0.0.0.0 255.255.255.0 U 0 0 0 vboxnet3
如果您没有看到该 IP 的路由设置,那么您可能已经被这个错误所困扰。升级到 Virtualbox 5.1.26 为我解决了这个问题(在 Linux。)但是 puphpet.com 在主页上这样说:
The official recommended Virtualbox version is 5.0.26!
所以你可能想回滚到那个版本
我使用 Puphpet.com 使用 VirtualBox 5.1.24 部署本地 Ubuntu 16.04 LAMP 开发机器。我用 VM IP 地址 (192.168.56.101) 更新了 /etc/hosts。
$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 flippy
192.168.56.101 dev.mysite.com
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
我可以通过 SSH 进入虚拟机,但我无法通过 IP 地址 (192.168.56.101) 或域名访问它。
Ping 失败:
$ ping 192.168.56.101
PING 192.168.56.101 (192.168.56.101) 56(84) bytes of data.
^C
--- 192.168.56.101 ping statistics ---
164 packets transmitted, 0 received, 100% packet loss, time 166895ms
curl 失败:
$ curl -v 192.168.56.101
* Rebuilt URL to: 192.168.56.101/
* Trying 192.168.56.101...
* connect to 192.168.56.101 port 80 failed: Connection timed out
* Failed to connect to 192.168.56.101 port 80: Connection timed out
* Closing connection 0
curl: (7) Failed to connect to 192.168.56.101 port 80: Connection timed out
另外 netstat -rn
在主机上不显示 VM IP 地址的路由:
$ netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlp1s0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 wlp1s0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlp1s0
我还能检查什么?
我已经提供了
这听起来很像在 5.1.26 中修复的 bug in VirtualBox 5.1.24。
问题似乎是由于 VirtualBox 未能为仅主机网络创建路由引起的。要检查是否是这种情况,请在您的主机 运行 netstat -rn
之后 运行ning vagrant up
从您的终端。这将向您显示内核 IP 路由 table 中的可用路由。将有几行输出,但在其中您应该看到您的专用网络 IP 看起来像这样:
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.56.101 0.0.0.0 255.255.255.0 U 0 0 0 vboxnet3
如果您没有看到该 IP 的路由设置,那么您可能已经被这个错误所困扰。升级到 Virtualbox 5.1.26 为我解决了这个问题(在 Linux。)但是 puphpet.com 在主页上这样说:
The official recommended Virtualbox version is 5.0.26!
所以你可能想回滚到那个版本