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


18

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

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

搜索网络只会使我了解到该解决方案该解决方案建议删除Vagrant和Virtual框,然后重新安装它们,只需确保先安装Vagrant。我已经尝试过此解决方案,但仍能得到相同的结果。

我还能尝试什么使其工作?


1
我的服务器客户端获取DNS时出现问题。使用谷歌DNS,更改/etc/resolv.conf并添加以/etc/network/interfaces解决该问题。
Shahar Galukman 2013年

我可以问您正在使用哪个教程吗?只是一个猜测:django开始了吗?如果是这样,我将联系作者以解决当前问题。如果没有,我将删除此评论。
don.joey 2013年

我没有使用您提到的教程。使用常识发现了该解决方案,但bayoffire解决方案要好得多,这也是他提到的已知错误,因此我相信它将在将来的版本中修复。
Shahar Galukman 2013年

Answers:


30

我在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


很高兴知道它是一个已知的错误,即使我自己没有设法找到它。我在上面的评论中提到的解决方法虽然为我解决了。至少具有相同错误的其他人将有两种不同的方法来解决此问题。谢谢。
Shahar Galukman

关于此问题的更多信息。您的解决方案将更加合适,因为每次启动虚拟机时都会删除手动进行的DNS配置(如我上面的建议)
Shahar Galukman 2013年

1
请参见以下答案,以获取有关Vagrant较新版本的解决方案: askubuntu.com/a/296796/122097
Brad

6

对于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/


这样可以修复以下错误:无法添加PPA:'ppa:brightbox / ruby​​-ng'。请检查PPA名称或格式是否正确。在Ubuntu 14上具有流浪汉1.7.2和macOS上的virtualbox。
2015年

5

您可以通过在〜/ .vagrant.d / Vagrantfile中放置一个代码段,使一次修改后的Vvmrant虚拟机在所有Vagrant VM上都能正常工作,例如:

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

2

(新的)默认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,可能没有所有其他示例;在这种情况下,您需要添加该行代码。


如果NAT不起作用,我只会使用它。如果您从HDCP获得IP到虚拟机的IP,则桥接网络才起作用。看到这个:docs.vagrantup.com/v1/docs/bridged_networking.html(并非所有网络都起作用!)
lukassteiner 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.