Vagrant / VirtualBox DNS 10.0.2.3 funktioniert nicht


78

Ich starte eine Neuinstallation von Linux Mint Nadia (14). Ich folge den Anweisungen in Vagrant Getting Started , bin aber bei der Bereitstellung hängen geblieben . Es scheint, dass die Vagrant-Box keine Verbindung nach außen herstellen kann und ich daher weder mit Chefkoch noch mit Puppet etwas installieren kann.

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

Wenn ich es in ändere, 8.8.8.8kann ich einen Ping-Befehl senden us.archive.ubuntu.com, der jedoch nicht aktiviert bleibt. Nach einem Neustart wird der Ping- Befehl auf zurückgesetzt, 10.0.2.3sodass die Bereitstellung erneut fehlschlägt.

Idealerweise möchte ich 10.0.2.3an meinem Setup arbeiten. Gelingt dies nicht, möchte ich eine Möglichkeit zur dauerhaften Änderung, resolv.confdamit ich die Bereitstellung durchführen kann.


2
Zu Ihrer Information, dass ich gerade dasselbe Problem mit der ubuntu/xenial64Box hatte und es sich als Fehler mit der Box herausstellte .
Aidan Feldman

@AidanFeldman das gleiche für mich. Nur umgeschaltet bento/ubuntu-16.04und DNS funktioniert ohne weitere Korrekturen.
HenningCash

Antworten:


84

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

DNS-Proxy im NAT-Modus aktivieren

Die NAT-Engine bietet dem Gast standardmäßig dieselben DNS-Server an, die auf dem Host konfiguriert sind. In einigen Szenarien kann es wünschenswert sein, die DNS-Server-IPs vor dem Gast auszublenden, z. B. wenn sich diese Informationen auf dem Host aufgrund ablaufender DHCP-Leases ändern können. In diesem Fall können Sie die NAT-Engine anweisen, mit dem folgenden Befehl als DNS-Proxy zu fungieren:

VBoxManage modifyvm "VM name" --natdnsproxy1 on

Verwenden des Host-Resolvers 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 an. Wenn Sie diese DNS-Serverliste aus irgendeinem Grund ausblenden und die Resolver-Einstellungen des Hosts verwenden müssen, um die VirtualBox NAT-Engine zu zwingen, DNS-Anforderungen abzufangen und an den Resolver des Hosts weiterzuleiten, verwenden Sie den folgenden Befehl:

VBoxManage modifyvm "VM name" --natdnshostresolver1 on

Beachten Sie, dass diese Einstellung dem DNS-Proxy-Modus ähnlich ist. Während der Proxy-Modus DNS-Anforderungen nur an die entsprechenden Server weiterleitet, interpretiert der Resolver-Modus die DNS-Anforderungen und verwendet die DNS-API des Hosts, um die Informationen abzufragen und an den Gast zurückzugeben .


1
Danke. "Den Resolver des Hosts als DNS-Proxy im NAT-Modus verwenden" hat den Trick getan. Es ist nur schade, dass ich dies für jede Vagrant-Installation tun muss.
Rudolf Vavruch

1
Ich verwende fast immer den Bridged-Modus für VMs, wodurch das Problem (und eine ganze Reihe anderer Probleme) behoben wird.
Michael Hampton

3
Hatte gerade das Problem mit einem Upgrade auf 4.2.20, "Den Resolver des Hosts als DNS-Proxy im NAT-Modus verwenden", den Trick auch für mich. Vielen Dank !
Edomaur

73

Im Anschluss an https://serverfault.com/a/453260/14832 , wenn Sie eine Version 2 Vagrantfile Config - Format, die eine , die beginnt:

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

Dann möchten Sie vielleicht Folgendes 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

2
Das Hinzufügen dieses zu meinem Vagrantfilereparierte das Problem, in dem ich nicht laufen konnte, gem install...ohne dumme DNS-Störungen zu erhalten :) Dank!
Nick
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.