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上および同じゲートウェイ上にありますが、デフォルトの宛先への2つのルートがあります。しかし、おそらくこれが問題を引き起こしています。少なくともそれは私が考えたものですが、最初のデフォルトルートを削除しても役に立ちません。

nfs共有が機能するように、ホストオンリーネットワークが必要です。NATはポートフォワーディングに使用され、このゲストにインターネットへのアクセスを許可するために、ブリッジネットワークを追加しました。

誰が何が間違っているのか考えていますか?DNSの解決には非常に時間がかかり、インターネットからのダウンロードには時間がかかります。

回答:


28

Vagrant構成のバージョン2を実行していますか?

Sarahは、NATホストのDNSリゾルバーを使用することで、より高速で高速化に役立つという答えを提供しました。

ただし、ほとんどの人が現在使用しているvagrant configのバージョン2では、「Vagrantfile」内に次を追加する必要があります。

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

次の行または何かがトップにある場合、v2 configを使用しているかどうかを確認できます Vagrantfile

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

2
これは正しい答えであるはずです
エンリケモレノテント14

迷走ネットワークをブーストしようとしましたが、うまくいきましたが、DNSルックアップが多すぎるため、ドッカーイメージをプルするなどの問題がありました。したがって、この行を削除する必要がありました。 v.customize ["modifyvm", :id, "--natdnsproxy1", "on"] つまりVagrantfile v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] 、ホストリゾルバが何らかの理由でネットワークパフォーマンスを向上させ、DNSプロキシがいくつかのツールを破壊しているように見えるのです。
xh3b4sd

1
ありがとうございました!私の仮想マシンは、インターネット/ネットワークに接続すると、FOREVERを起動してsshを実行しました(通常はタイムアウトになります)。これで修正されました。
-UnsettlingTrend

21

回答:

vagrant configに次を追加します。

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浮浪者1.4.3
choonkeat

私はFedora 22で、これを設定すること"off"が私のソリューションでした。
クリストファーマルキエータ

1

NAT設定はダウンロード速度を改善しませんでした。

適切なダウンロード速度を得るには、次の設定を使用する必要がありました。

config.vm.provider "virtualbox" do |vb|
  vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
end
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.