如何修复极慢的Virtualbox网络下载速度?


37

我正在通过Vagrant / Virtualbox使用Ubuntu 12.04 VM(hashicorp / precise32)。与我的主机系统相比,它的下载速度似乎非常慢。这是我通过speedtest-cli通过主机系统(OSX)获得的:

Testing download speed........................................
Download: 845.62 Mbits/s
Testing upload speed..................................................
Upload: 296.03 Mbits/s

这就是我在来宾操作系统(Ubuntu 12.04)中得到的:

Testing download speed........................................
Download: 12.41 Mbits/s
Testing upload speed..................................................
Upload: 247.64 Mbits/s

因此主机下载速度快70倍!对这些问题的通常反应是:

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

但是我已经将它配置为我的Vagrantfile。

我还使用普通的Virtualbox和12.04(无游民)对其进行了测试。当我使用NAT接口时,会发生相同的问题。但是,切换到桥接模式会使下载速度提高20倍。这很讨厌,因为Vagrant依赖NAT接口始终为eth0。

我使用OSX Mavericks作为主机系统。Virtualbox版本为4.3.18。

有任何想法吗?

Answers:


30

对于无业游民的用户,将以下内容添加到您的无业游民的文件中:

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

我将速度提高了约15倍。在VirtualBox GUI上,我现在为我的NAT接口看到一个不同的适配器类型:半虚拟化网络(virtio-net)。


1
我遇到了同样的问题:使用speedtest-cli测得,在Vagrant上运行的Boot2Docker映像上的上传速度为0(太慢了,无法测量吗?)。添加此设置后,上传速度便与主机操作系统的速度相匹配。谢谢!
叶夫根尼·布里克曼

有谁知道其他所有可能的值是什么?任何链接到文档?
2015年

恐怕对我来说没有改善。游民1.7.4,Virtualbox 5.0.4
lsh 2015年

所有可能的选项都在这里:virtualbox.org/manual/ch08.html#idp46730496367936Am79C973如果您对遇到问题,也可以尝试virtio
Juliusz Gonera'2

2
VBoxManage Modifyvm YourMachineName --nictype1 virtio
Brian Low

17

我为我找到了更简单的解决方案

  • 主机Ubuntu 14.04
  • 访客Ubuntu 14.04
  • Nat与端口转发
  • 来宾上传速度极慢。它是如此之慢,以至于速度测试甚至无法测量。

我刚刚切换到PCNet-Fast III适配器。速度对我来说已经足够好(40 Mb / s)


1
与我一起使用Host Ubuntu 14.04和Guest Ubuntu 12.04。
罗斯,2015年

1
要在Vagrantfile中切换到PCNet Fast III,请使用v.customize ["modifyvm", :id, "--nictype1", "Am79C973"]
Juliusz Gonera '16

这很棒!我apt-get在尝试下载时无法挂起。最终它可以工作,但是如上所述更改网络适配器可以解决问题。
布伦登·缪尔

与运行Ubuntu 16.10的Win10主机一起使用。
robsn

0

@auramo的答案很有用,但是请注意,它指定了特定的NIC:#1。例如,在我的系统中,我有许多网络接口。我必须指定--nictype4

同时,其他人报告的好处指定的其他地方natdnshostresolver#,并natdnsproxy#在那里#是一个数字识别你的网卡。在我的情况下,看起来像这样:

config.vm.provider "virtualbox" do |v|
  v.customize ["modifyvm", :id, "--nictype4", "virtio"]
  v.customize ["modifyvm", :id, "--natdnshostresolver4", "on"]
  v.customize ["modifyvm", :id, "--natdnsproxy4", "on"]
end
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.