主机连接到 wifi 时网络访问 vagrant VM 速度慢

Slow network access to vagrant VM when host connected to wifi

我有一个基于 Ubuntu 12.04 的 VirtualBox 映像,它以以下 Vagrantfile 启动:

Vagrant.configure("2") do |config|
  config.vm.box     = "mybox"
  config.vm.box_url = "mybox.box"
  config.vm.network :forwarded_port, guest: 8000, host: 8000
  config.vm.network :private_network, type: "dhcp"
  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--memory", "2048"]
    vb.customize ["modifyvm", :id, "--cpus", "2"]
    vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
    vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
  end
end

在端口 8000(转发端口)上访问访客 Web 服务器可能会非常慢 (~45 kb/s):

curl http://172.28.128.3:8000/file.css > /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  454k  100  454k    0     0  46316      0  0:00:10  0:00:10 --:--:--  118k

但是,一旦我在主机上禁用 wifi 访问,下载速度就会大大提高:

curl http://172.28.128.3:800/file.css > /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  454k  100  454k    0     0  23.5M      0 --:--:-- --:--:-- --:--:-- 24.6M

这是我的主机网络配置(当 wifi 打开时):

$ ifconfig 
docker0   Link encap:Ethernet  HWaddr 56:84:7a:fe:97:99  
          inet addr:172.17.42.1  Bcast:0.0.0.0  Mask:255.255.0.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth0      Link encap:Ethernet  HWaddr 28:80:23:0a:3b:f7  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:20 Memory:d0700000-d0720000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:121430 errors:0 dropped:0 overruns:0 frame:0
          TX packets:121430 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:71329608 (71.3 MB)  TX bytes:71329608 (71.3 MB)

vboxnet10 Link encap:Ethernet  HWaddr 0a:00:27:00:00:0a  
          inet addr:172.28.128.1  Bcast:172.28.128.255  Mask:255.255.255.0
          inet6 addr: fe80::800:27ff:fe00:a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:616 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:169030 (169.0 KB)

wlan0     Link encap:Ethernet  HWaddr e8:2a:ea:97:84:ed  
          inet addr:192.168.0.102  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::ea2a:eaff:fe97:84ed/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1429759 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1428388 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:507751022 (507.7 MB)  TX bytes:878353259 (878.3 MB)

我做错了什么?

这实际上是

的副本

tl;dr:这是一个 Django 1.4.18 问题,在我的虚拟机中将网关 IP 添加到 /etc/hosts 解决了我的问题。

自从在 /etc/hosts 中共享 nfs、virtio、dnsproxy 和网关 ip 以来,我测试了所有建议,但没有任何效果,这让我很感兴趣,因为我使用 php + mysql + apache / nginx多年来一直使用 vagrant 和 virtualbox 的环境,让我快速检查防病毒软件是否在干扰,瞧,我禁用了 Avast 的互联网模块,我正在开发的网站开始立即响应。小贴士,希望对大家有帮助。