无法 ping 通 vagrant box

无法 ping 通 vagrant box

我正在尝试根据以下两个资源创建一个 Vagrant 基础框:

使用 Ubuntu 12.10 (带 LAMP) 作为操作系统,我遇到了一个问题。我无法 ping 通 vagrant IP 10.0.2.15,尽管我可以通过 SSH 进行连接vagrant ssh

我该如何设置才能从我的主机访问 Web 服务器?

VirtualBox:4.2.10
客户机操作系统:Ubuntu12.10
主机:OSX 10.8.3

答案1

您不能仅通过主机系统的 IP 地址访问 Vagrant 盒。Vagrant 的网络旨在定义一个可跨多个提供商工作的抽象层。

访问 Vagrant 框上的服务的最简单方法是配置端口转发。在您的 Vagrantfile 中,请参阅部分Vagrant.configure并设置 的值config.vm.network :forwarded_port。例如,以下配置将本地系统上的端口 4567 转发到 Vagrant 框上的端口 80:

Vagrant.configure("2") do |config|
  config.vm.box = "precise32"
  config.vm.provision :shell, :path => "bootstrap.sh"
  config.vm.network :forwarded_port, host: 4567, guest: 80
end

完成此更改后,运行vagrant reload以应用更改。应用更改后,您应该能够将 Web 浏览器指向,http://127.0.0.1:4567让 Vagrant Apache 实例提供网页。您可以在Vagrant V2 文档Vagrant 网络页面

答案2

我遇到了类似的问题,只是使用私有网络设置和静态 IP。我使用了几个月的 IP 地址 ( 192.168.10.10) 突然无法访问,尽管我可以使用 访问虚拟机vagrant ssh

更改静态 IP192.168.10.192解决了该问题。这里的解决方案是更改 IP,使其不会与同一网络上的任何其他机器发生冲突。

这里您可以找到以下注释:

用户必须确保静态 IP 不会与同一网络上的任何其他机器发生冲突。

虽然你可以选择任何你喜欢的 IP,但你应该使用保留的私有地址空间中的 IP。这些 IP 保证永远不会被公开路由,而且大多数路由器实际上会阻止来自外界的流量进入它们。

对于某些操作系统,可以使用静态 IP 地址的附加配置选项,例如设置默认网关或 MTU。

警告!不要选择与系统上任何其他 IP 空间重叠的 IP。这可能会导致网络无法访问。

在 Vagrantfile 中,你可以像这样配置静态 IP

Vagrant.configure("2") do |config|
  config.vm.network "private_network", ip: "192.168.10.192"
end

或者,如果您像我一样使用 Homestead,只需更新您的Homestead.yaml配置文件:

---
ip: "192.168.10.192"
# the rest of the configuration...

最后要简短说明一下 - 我的问题可能与这里的问题不同,但由于我偶然发现了这个问题,所以其他用户可能也会遇到。

答案3

我必须在主机系统上手动启动网络,因为ip addr显示它已关闭:

sudo ip link set up dev vboxnet0

答案4

我认为这个来源可以提供帮助:http://docs-v1.vagrantup.com/v1/docs/host_only_networking.html

祝你好运 ;)

相关内容