Come ottenere VM VirtualBox per utilizzare il DNS dell'host?


69

Uso VirtualBox per le mie macchine virtuali. La mia configurazione rete aziendale è senza fili, cioè mi collego alla rete WiFi della mia azienda, che ha un DNS locale per risolvere i nomi locali (come ad esempio something.mycompany.com andare a 123.45.67.89). Quando creo una nuova macchina virtuale, può connettersi a Internet esterno ereditando la connessione dell'host ma non risolve i nomi locali utilizzando il DNS locale. Quindi devo entrare nella /etc/hostsVM e inserire manualmente una voce dopo aver risolto il nome sull'host, il che è fastidioso.

Esiste un modo per consentire a VirtualBox di connettere automaticamente il guest al DNS dell'host in modo che non sia necessario eseguire questo passaggio manuale? Il mio host è OSX Mountain Lion , le macchine virtuali sono in genere Ubuntu ma dubito che dovrebbe importare.

Risposte:


99

Per abilitare la modalità proxy DNS utilizzando il resolver dell'host , eseguire il comando seguente:

VBoxManage editvm " <nome VM> " --natdnshostresolver1 on

Di conseguenza, le richieste DNS del sistema operativo guest verranno intercettate e risolte utilizzando l'API DNS host, anziché disporre del sistema operativo guest connesso ai server DNS esterni --natdnsproxy1 on.

È possibile ottenere il nome della VM eseguendo VBoxManage list runningvms.


9
Per ulteriori informazioni per gli altri: questo deve essere eseguito dall'host. Se il tuo host è Windows, apri un Prompt dei comandi, cd in "C: \ Programmi \ Oracle \ VirtualBox" ed esegui quel comando. Non sembra esserci alcuna opzione nella GUI di VirtualBox Manager (almeno in tutte le versioni da 4. * a 5.0.20) che ti permetta di impostare questo in altro modo.
Graham,

Vorrei aggiungere che è necessario eseguire questo comando come amministratore. L'ho provato dal mio cmd e non ha funzionato per me, ma poi ho eseguito cmd come amministratore e tutto ha funzionato perfettamente.
SergeyOvchinnik,

3
Questo funzionava per me, ma non con Ubuntu 16.04 e l'ultima virtualbox per Windows
Shanteva,

Non funziona anche per me :(
Pavel Durov il

1
Funziona ancora con MacO High Sierra come host, VirtualBox 5.2.6, che esegue Windows 7 nella VM.
John Eikenberry,

6

Sì, è possibile. Esistono molte modalità disponibili in VirtualBox per stabilire reti tra guest e host. Anziché utilizzare la modalità NAT (impostazione predefinita), è possibile utilizzare la modalità bridge in cui la macchina ospite può essere trattata come entità completamente separata sulla rete. Quindi, non solo il tuo host, ma qualsiasi altra macchina (come il tuo server DNS) vedrà il tuo ospite come una macchina separata.

Una volta impostata la modalità bridge, vai al tuo guest ubuntu e falla usare il nome del server DNS o l'ip della tua azienda. Leggi questo tutorial per maggiori informazioni: http://prahladyeri.wordpress.com/2012/08/02/how-to-setup-a-virtual-lan-on-your-machine-using-oracle-virtualbox/


5

Questo è stato un ottimo risultato di Google, quindi volevo chiarire per gli altri. La soluzione di Josiah ha funzionato per me con l'aggiunta dell'aggiunta della linea:

hosts: files dns per /etc/nsswitch.conf

Come altri hanno sottolineato, la soluzione originale non funziona sopra Ubuntu 16.04. La mia VM ospite è Ubuntu 16.04.

Riferimento Creazione di server Linux


2
Benvenuto in Super User! Potresti proporlo come una modifica alla risposta di Josiah, che aiuterebbe coloro che guardano :)
bertieb

Grazie per il consiglio! Ho provato ad aggiungere solo un commento, ma non era permesso. Ho inviato invece la modifica.
pretzel11,

1

Ho anche notato che la mia connessione VPN interferisce con la connessione internet vagabonda.

Grazie a questo stackexchange, sono stato in grado di risolvere incorporando nel mio file Vagrant

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

Ed evitato il tedio di dover chiudere la scatola per modificare tramite riga di comando, quindi riprovision

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

0

Per me ha aiutato ad aggiungere un altro adattatore con adattatore solo host mantenendo anche lì il primo (modalità NAT).

[screenshot1]

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.