Vagrant: Повільне підключення до Інтернету в гостях


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

Є два маршрути до пункту призначення за замовчуванням, хоча на той самий NIC і на той самий шлюз. Але, можливо, це викликає проблему. Принаймні, це я вважав, але видалення першого маршруту за замовчуванням не допомагає.

Мені потрібна мережа лише для хостів, щоб поділка nfs працювала. NAT використовується для переадресації портів, і я додав з'єднану мережу, щоб спробувати надати цьому гостю доступ до Інтернету.

Хтось має ідею, що не так? DNS дуже повільний для вирішення, і повільно завантажувати що-небудь з Інтернету.

Відповіді:


28

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

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

Однак у версії 2 бродяжного конфігурації, яку зараз використовують більшість людей, вам доведеться додати наступне у вашому «Vagrantfile», яке змусить ВМ використовувати NATD DNS:

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
ДЯКУЮ ТОБІ! Моя vm приймала FOREVER, щоб піднятись і ввімкнути - звичайно це був би просто тайм-аут - при підключенні до Інтернету / мережі. Це і виправило.
UnsettlingTrend

21

Відповідь:

Додайте до конфігурації бродяга:

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/isissue/1807#issuecomment-19132198 vagrant 1.4.3
choonkeat

Я на Fedora 22, і встановити це "off"було моїм рішенням.
Крістофер Маркієта

1

Налаштування NAT не покращили швидкість мого завантаження.

Мені довелося скористатися наведеними нижче параметрами, щоб отримати належну швидкість завантаження.

config.vm.provider "virtualbox" do |vb|
  vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
end
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.