Frage Vagrant / VirtualBox DNS 10.0.2.3 funktioniert nicht


Ich betreibe eine neue Installation von Linux Mint Nadia (14). Ich folge den Anweisungen auf Vagrant Fertig machen aber sind auf dem hängen geblieben Bereitstellung. Es scheint, dass die Vagrant-Box keine Verbindung nach draußen herstellen kann und daher kann ich weder mit Chef noch mit Puppet etwas installieren.

Im grundlegenden Vagrant resolve.conf enthält nameserver 10.0.2.3. Aber mit diesem Set kann ich nicht pingen us.archive.ubuntu.com.

Wenn ich es zu ändern 8.8.8.8 dann kann ich pingen us.archive.ubuntu.com aber es bleibt nicht gesetzt, und nach einem Neustart wechselt es wieder zu 10.0.2.3 - Die Bereitstellung schlägt erneut fehl.

Idealerweise würde ich gerne für 10.0.2.3 um an meinem Setup zu arbeiten. Andernfalls würde ich gerne einen Weg finden, sich dauerhaft zu verändern resolv.conf damit ich Vorsorge treffen kann.


68
2017-11-28 20:45


Ursprung


FYI, dass ich gerade das gleiche Problem mit der ubuntu/xenial64 Box, und es stellte sich heraus, zu sein ein Fehler mit der Box selbst. - Aidan Feldman
@AidanFeldman das gleiche für mich. Gerade geschaltet auf bento/ubuntu-16.04 und DNS funktioniert gut ohne weitere Korrekturen. - HenningCash


Antworten:


Sie können dieses Problem auf eine von zwei Arten umgehen, die beide sind im VirtualBox-Handbuch:

DNS-Proxy im NAT-Modus aktivieren

Die NAT-Engine bietet standardmäßig die gleichen DNS-Server für den Gast an   die auf dem Host konfiguriert sind. In einigen Szenarien kann es sein   wünschenswert, um die DNS-Server-IPs vom Gast zu verstecken, zum Beispiel wenn   Diese Informationen können sich auf dem Host aufgrund auslaufender DHCP-Leases ändern.   In diesem Fall können Sie der NAT-Engine mitteilen, dass sie als DNS-Proxy fungiert   der folgende Befehl:

VBoxManage modifyvm "VM name" --natdnsproxy1 on

Verwenden des Resolvers des Hosts als DNS-Proxy im NAT-Modus

Zum Auflösen von Netzwerknamen bietet der DHCP-Server der NAT-Engine   eine Liste der registrierten DNS-Server des Hosts. Wenn Sie aus irgendeinem Grund   Sie müssen diese DNS-Serverliste ausblenden und den Resolver des Hosts verwenden   Einstellungen, wodurch die VirtualBox-NAT-Engine gezwungen wird, DNS abzufangen   Anfragen und leiten sie an den Resolver des Hosts weiter, verwenden Sie Folgendes   Befehl:

VBoxManage modifyvm "VM name" --natdnshostresolver1 on

Beachten Sie, dass diese Einstellung jedoch dem DNS-Proxy-Modus ähnelt   während der Proxy-Modus nur DNS-Anfragen an die entsprechenden weiterleitet   Server wird der Resolver - Modus die DNS - Anfragen interpretieren und die   DNS-API des Hosts, um die Informationen abzufragen und an den Gast zurückzugeben.


74
2017-11-29 01:36



Vielen Dank. "Den Resolver des Hosts als DNS-Proxy im NAT-Modus zu verwenden", war der Trick. Es ist nur schade, dass ich das bei jeder Vagrant-Installation machen muss. - Rudolf Vavruch
Ich benutze fast immer Bridged-Modus für VMs, die das Problem (und eine ganze Reihe anderer Probleme) beseitigt. - Michael Hampton♦
Gerade hatte das Problem mit einem Upgrade auf 4.2.20, "Verwenden des Resolvers des Hosts als DNS-Proxy im NAT-Modus" auch den Trick für mich. Vielen Dank ! - edomaur


Folgend auf https://serverfault.com/a/453260/14832, wenn Sie ein Vagrantfile-Konfigurationsformat der Version 2 verwenden, das folgende:

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

Dann möchten Sie vielleicht das zu dieser Konfigurationsdatei hinzufügen:

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

Wenn Sie das alte Konfigurationsformat verwenden, aber Vagrant 1.1+ verwenden, können Sie dies am Ende der Datei anhängen:

Vagrant.configure("2") do |config|
  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
  end
end

63
2018-05-08 22:13



Hinzufügen zu meinem Vagrantfile behebt das Problem, wo ich nicht laufen konnte gem install... ohne alberne DNS-Fehler :) Danke! - Nick