it-swarm.com.de

Wie können VirtualBox-VMs das DNS des Hosts verwenden?

Ich benutze VirtualBox für meine VMs. Mein Büronetzwerk ist drahtlos eingerichtet, d. H. Ich verbinde mich mit dem WiFi-Netzwerk meines Unternehmens, das über einen lokalen DNS verfügt, um lokale Namen aufzulösen (z. B. something.mycompany.com going to 123.45.67.89). Wenn ich eine neue VM erstelle, kann diese eine Verbindung zum externen Internet herstellen, wobei die Verbindung des Hosts übernommen wird. Lokale Namen werden jedoch nicht mithilfe des lokalen DNS aufgelöst. Also muss ich /etc/hosts auf dem VM aufrufen und manuell einen Eintrag vornehmen, nachdem ich den Namen auf dem Host aufgelöst habe, was ärgerlich ist.

Gibt es eine Möglichkeit, dass VirtualBox den Gast automatisch mit dem DNS des Hosts verbindet, sodass ich diesen manuellen Schritt nicht ausführen muss? Mein Host ist OSX Mountain Lion , die VMs sind normalerweise Ubuntu , aber ich bezweifle, dass das eine Rolle spielen sollte.

64
amphibient

Führen Sie den folgenden Befehl aus, um den DNS-Proxy-Modus mit dem Resolver des Hosts zu aktivieren:

VBoxManage modifyvm " <VM-Name> " --natdnshostresolver1 on

Infolgedessen werden DNS-Anforderungen des Gastbetriebssystems mithilfe der Host-DNS-API abgefangen und aufgelöst, anstatt wie bei --natdnsproxy1 on eine Verbindung des Gastbetriebssystems mit externen DNS-Servern herzustellen.

Sie können den Namen des VM abrufen, indem Sie VBoxManage list runningvms ausführen.

92
Josiah

Ja, es ist möglich. In VirtualBox stehen viele Modi zur Verfügung, um eine Netzwerkverbindung zwischen dem Gast und dem Host herzustellen. Anstatt den NAT -Modus (der Standard ist) zu verwenden, können Sie den Bridge-Modus verwenden, in dem Ihr Gastcomputer als vollständig separate Entität in Ihrem Netzwerk behandelt werden kann. Daher wird Ihr Gast nicht nur von Ihrem Host, sondern auch von jedem anderen Computer (z. B. Ihrem DNS-Server) als separater Computer betrachtet.

Sobald Sie den Bridge-Modus eingerichtet haben, rufen Sie einfach Ihren Ubuntu-Gast auf und lassen Sie ihn den DNS-Servernamen oder die IP Ihres Unternehmens verwenden. Lesen Sie dieses Tutorial für weitere Informationen: http://prahladyeri.wordpress.com/2012/08/02/how-to-setup-a-virtual-lan-on-your-machine-using-Oracle-virtualbox/

5
Prahlad Yeri

Dies war ein Top-Google-Ergebnis, deshalb wollte ich es für andere klarstellen. Josiahs Lösung funktionierte für mich mit der Hinzufügung der Zeile:

"hosts: files dns" in /etc/nsswitch.conf

Wie bereits erwähnt, funktioniert die ursprüngliche Lösung nicht über Ubuntu 16.04. Mein Gast VM ist Ubuntu 16.04.

Referenz Linux Server erstellen

5
pretzel11

Ich habe auch bemerkt, dass meine VPN-Verbindung die Internetverbindung stört.

Dank dieses Stapelaustauschs konnte ich das Problem lösen, indem ich es in meine Vagrant-Datei einbettete

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

Und vermieden die Mühe, die Box herunterzufahren, um Änderungen über die Befehlszeile vorzunehmen, und sie dann erneut bereitzustellen

export PATH=$PATH:/c/Program\ Files/Oracle/VirtualBox/
VBoxManage list runningvms
export vbox=`VBoxManage list runningvms | cut -d '"' -f 2`
VBoxManage controlvm $vbox poweroff
VBoxManage modifyvm $vbox --natdnshostresolver1 on
vagrant.exe up --provision
1