如何修复 Vagrant 客户端的名称服务?

如何修复 Vagrant 客户端的名称服务?

我是 Ubuntu 新手(刚刚安装了 Ubuntu 12.10),想开始使用它进行开发。因此,我安装了 Vagrant,下载lucid64.box、初始化、启动并通过 ssh 访问它。

为了测试客户端上的 Internet 连接,我已完成ping google.com 并收到unknown host: google.com。(主机当然已 ping 通。)

搜索网络只让我此解决方案建议删除 Vagrant 和 Virtual Box,然后重新安装它们,只需确保先安装 Vagrant。我试过这个解决方案,但仍然得到相同的结果。

我还能尝试什么来让它工作?

答案1

我在 Ubuntu 12.10 上遇到了同样的问题,并找到了解决方案。只需将这些行添加到您的 Vagrantfile 中:

config.vm.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
config.vm.customize ["modifyvm", :id, "--natdnsproxy1", "on"]

对于 Vagrant 1.1+,你将需要(感谢 farooqsadiq)

config.vm.provider "virtualbox" do |v| 
  v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end

这似乎是 Ubuntu 12.10 上 VirtualBox 中的一个已知错误:

https://bugs.launchpad.net/ubuntu/+source/virtualbox/+bug/1048783

https://www.virtualbox.org/ticket/10864

答案2

对于 Vagrant 1.1+,你需要

config.vm.provider "virtualbox" do |v| 
  v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end

在 Vagrant 1.2.2 上测试

在 Lyte 的博客上发现http://lyte.id.au/tag/vagrant/

答案3

您可以通过将代码片段放入 ~/.vagrant.d/Vagrantfile 中,一次性使modifyvm技巧在所有Vagrant VM 上发挥作用,例如:

Vagrant::Config.run do |config|
    config.vm.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end

答案4

(新的) 默认 Vagrantfile* 包含一堆注释掉的示例,其中一个如下:

  # Assign this VM to a bridged network, allowing you to connect directly to a
  # network using the host's network device. This makes the VM appear as another
  # physical device on your network.
  # config.vm.network :bridged

确保取消注释此行:

conig.vm.network :bridged

这将使您的虚拟机可以访问网络/Internet。

* 截至版本 1.0.6。截至此答案时,存储库中的最新版本为 1.0.3,它可能不包含所有额外的示例;在这种情况下,您需要添加该行代码。

相关内容