我正在尝试设置一个 vagrant。主机是 Ubuntu 12.10。这是我的 vagrant 文件:
Vagrant::Config.run do |config|
config.vm.share_folder("v-root", "/vagrant", ".", :nfs => true)
config.vm.network :bridged, :bridge => "eth0"
config.vm.define "restserver" do |chefs_config|
chefs_config.vm.box = "precise64"
chefs_config.vm.box_url = "http://files.vagrantup.com/precise64.box"
chefs_config.vm.host_name = "restserver"
chefs_config.vm.network :hostonly, "192.168.20.50"
chefs_config.vm.forward_port 80, 8080
config.vm.provision :chef_solo do |chef|
chef.log_level = :debug
chef.cookbooks_path = "cookbooks"
chef.run_list.clear
chef.add_recipe "apt"
chef.add_recipe "base"
chef.add_recipe "mongodb::default"
chef.add_recipe "nginx"
end
end
end
问题是我从 vagrant 内部访问互联网非常糟糕。速度非常慢。我认为路由表可能被搞乱了。以下是输出route -n
:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.2.2 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 10.0.2.2 0.0.0.0 UG 100 0 0 eth0
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.20.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
尽管在同一个 NIC 上,并且到同一个网关,但有 2 条到默认目的地的路由。但也许这会导致问题。至少我是这样认为的,但删除第一个默认路由并没有帮助。
我需要仅主机网络,这样 nfs 共享才能工作。NAT 用于端口转发,并且我添加了桥接网络以尝试让此访客访问互联网。
有人知道哪里出了问题吗?DNS 解析速度非常慢,从互联网下载任何东西的速度都很慢。
答案1
正在运行 Vagrant 配置第 2 版吗?
莎拉的给出的答案是使用 NAT 主机 DNS 解析器,因为它更快并且有助于加快速度。
然而,在大多数人现在使用的 vagrant 配置版本 2 中,您必须在“Vagrantfile”中添加以下内容,这将强制 VM 使用 NAT 的 DNS:
config.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
v.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
end
如果你的配置文件顶部有以下几行或其他内容,则可以判断你正在使用 v2 配置Vagrantfile
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
答案2
回答:
将以下内容添加到 vagrant 配置中:
config.vm.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
更多详情请参见此处:Vagrant/VirtualBox DNS 10.0.2.3 不起作用
答案3
NAT 设置并没有提高我的下载速度。
我必须使用以下设置才能获得适当的下载速率。
config.vm.provider "virtualbox" do |vb|
vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
end