Бродяга: медленное подключение к интернету в гостевой

23

Я пытаюсь создать бродягу. Хост 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 маршрута к месту назначения по умолчанию, хотя на том же NIC и к тому же шлюзу. Но, возможно, это вызывает проблему. По крайней мере, я так думал, но удаление первого маршрута по умолчанию не помогает.

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

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

Сара
источник

Ответы:

28

Запуск версии 2 конфигурации Vagrant?

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

Тем не менее, во второй версии vagrant config, которую сейчас использует большинство людей, вы должны добавить следующее в ваш 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|
Джуджар Сингх
источник
2
Это должен быть правильный ответ
Энрике Морено Палатка
Я попытался увеличить свою бродячую сеть, и это сработало, но у меня были проблемы, например, с извлечением образов докера из-за слишком большого количества поисков DNS. Таким образом, мне пришлось удалить эту строку, v.customize ["modifyvm", :id, "--natdnsproxy1", "on"] значит, я просто добавил это в свой Vagrantfile v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] внешний вид. Похоже, что преобразователь хоста повышает производительность сети по какой-то причине, а прокси-сервер DNS отбрасывает некоторые инструменты.
xh3b4sd
1
СПАСИБО! Мой виртуальный виртуальный компьютер взял навсегда и ssh в - это обычно просто тайм-аут - при подключении к Интернету / сети. Это исправило это.
UnsettlingTrend
21

Ответ:

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

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

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

Сара
источник
3
Это почти исправило это для меня, за исключением того, что не было никакого customizeметода config.vm. Вместо этого в разделе `config.vm.provider: virtualbox do | vb |` я добавил следующее: vb.customize ["modifyvm",: id, "--natdnshostresolver1", "on"]
Ovid
1
Ответ, предоставленный 'sarah', относится к старому синтаксису конфигурации VagrantFile, а ответ, предоставленный 'Ovid', к более новому синтаксису конфигурации. Вы можете определить, используете ли вы более новый синтаксис, посмотрев, находится ли ваш файл конфигурации Vagrant.configure(2)вверху (обратите внимание на 2)
caseyamcl
почти. это работает для меня github.com/mitchellh/vagrant/issues/1807#issuecomment-19132198
vagrant
Я использую Fedora 22, и это "off"было моим решением.
Кристофер Маркиета
1

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

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

config.vm.provider "virtualbox" do |vb|
  vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
end
hennr
источник