我是 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
答案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,它可能不包含所有额外的示例;在这种情况下,您需要添加该行代码。