Назад | Перейти на главную страницу

Vagrant: медленное интернет-соединение в гостевой системе

Пытаюсь настроить бродягу. Хост - Ubuntu 12.10. Вот мой бродячий файл:

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

Проблема в том, что мой доступ в Интернет из бродяги ужасен. Очень медленно. Я думаю, что таблицы маршрутизации могут быть испорчены. Вот результат 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

Есть 2 маршрута к месту назначения по умолчанию, но на одной сетевой карте и к одному шлюзу. Но, возможно, это вызывает проблему. По крайней мере, я так думал, но удаление первого маршрута по умолчанию не помогает.

Мне нужна сеть только для хоста, чтобы общий ресурс nfs работал. NAT используется для переадресации портов, и я добавил мостовую сеть, чтобы попытаться предоставить гостю доступ в Интернет.

Кто-нибудь знает, что не так? DNS очень медленно разрешается, и он медленно загружает что-либо из Интернета.

Используете версию 2 конфигурации Vagrant?

Сара предоставил ответ, который заключается в использовании преобразователя DNS хостов NAT, поскольку он быстрее и поможет ускорить процесс.

Однако в версии 2 конфигурации vagrant, которую сейчас использует большинство людей, вам нужно будет добавить следующее в свой Vagrantfile, что заставит виртуальную машину использовать DNS с NAT:

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|

Ответ:

Добавьте в конфигурацию бродяги следующее:

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

Подробнее см. Здесь: Vagrant / VirtualBox DNS 10.0.2.3 не работает

Настройки NAT не улучшили мою скорость загрузки.

Мне пришлось использовать следующие настройки, чтобы получить правильную скорость загрузки.

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