23 votos

Vagante: Conexión a Internet lenta en el huésped

Estoy tratando de montar un vagabundo. El host es Ubuntu 12.10. Aquí está mi archivo 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

El problema es que mi acceso a internet desde el vagrant es terrible. Es muy lento. Creo que las tablas de enrutamiento pueden estar desordenadas. Aquí está la salida de 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

Hay 2 rutas hacia el destino por defecto, aunque en la misma NIC y hacia la misma puerta de enlace. Pero tal vez esto está causando un problema. Al menos eso es lo que pensé, pero borrar la primera ruta por defecto no ayuda.

Necesito una red sólo para hosts para que el recurso compartido nfs funcione. NAT se utiliza para el reenvío de puertos, y he añadido la red puente para tratar de dar a este invitado el acceso a Internet.

¿Alguien tiene idea de lo que pasa? El DNS es muy lento para resolver, y es lento para descargar cualquier cosa de Internet.

29voto

Jujhar Singh Puntos 290

¿Ejecutando la versión 2 de la configuración de Vagrant?

Sarah's proporcionó la respuesta, que es utilizar el resolver DNS de los hosts NAT, ya que es más rápido y ayudará a acelerar las cosas.

Sin embargo, en la versión 2 de la configuración de vagrant, que es lo que la mayoría de la gente está utilizando ahora, tendrá que añadir lo siguiente dentro de su 'Vagrantfile' que obligará a la VM a utilizar NAT'd DNS:

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

Puedes saber si estás usando la configuración v2 si tienes las siguientes líneas o algo en la parte superior de tu Vagrantfile

VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

2 votos

Esta debería ser la respuesta correcta

0 votos

Traté de aumentar mi red vagrant y funcionó, pero tuve problemas con, por ejemplo, tirar de imágenes docker debido a demasiadas búsquedas de DNS. Así que tuve que eliminar esta línea v.customize ["modifyvm", :id, "--natdnsproxy1", "on"] significa que sólo tengo esto añadido a mi Vagrantfile v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] Parece que el resolver host está aumentando el rendimiento de la red por alguna razón y el proxy DNS fragmenta algunas herramientas.

1 votos

¡GRACIAS! Mi vm estaba tomando una eternidad para arriba y ssh en - por lo general sólo el tiempo de espera - cuando se conecta a Internet / la red. Esto lo arregló.

21voto

sarah Puntos 281

Respuesta:

Añade lo siguiente a la configuración de vagrant:

config.vm.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]

Consulte aquí para saber más: Vagrant / VirtualBox DNS 10.0.2.3 no funciona

3 votos

Esto casi lo arregló para mí, excepto que no había un customize método en config.vm . En su lugar, en mi sección ` config.vm.provider :virtualbox do |vb|`, he añadido esto: vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"].

1 votos

La respuesta proporcionada por 'sarah' es para la antigua sintaxis de configuración de VagrantFile, y la proporcionada por 'Ovid' es para la nueva sintaxis de configuración. Puedes saber si estás usando la nueva sintaxis viendo si tu archivo de configuración incluye Vagrant.configure(2) en la parte superior (observe el 2 )

0 votos

casi. esto funciona para mí github.com/mitchellh/vagrant/issues/1807#issuecomment-19132198 vagrant 1.4.3

1voto

x13 Puntos 101

La configuración de NAT no mejoró mi velocidad de descarga.

Tuve que utilizar la siguiente configuración para obtener una velocidad de descarga adecuada.

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

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: