Bagaimana cara mendapatkan VM VirtualBox untuk menggunakan DNS host?

69

Saya menggunakan VirtualBox untuk VM saya. Pengaturan jaringan kantor saya nirkabel, yaitu saya terhubung ke jaringan WiFi perusahaan saya, yang memiliki DNS lokal untuk menyelesaikan nama-nama lokal (seperti something.mycompany.com menuju ke 123.45.67.89). Ketika saya membangun VM baru, itu dapat terhubung ke internet luar mewarisi koneksi host tetapi tidak menyelesaikan nama lokal menggunakan DNS lokal. Jadi saya harus masuk ke /etc/hostsVM dan secara manual membuat entri setelah saya menyelesaikan nama pada host, yang menjengkelkan.

Apakah ada cara agar VirtualBox menghubungkan tamu secara otomatis ke DNS host sehingga saya tidak perlu melakukan langkah manual ini? Tuan rumah saya adalah OSX Mountain Lion , VM biasanya Ubuntu tapi saya ragu itu penting.

amfibi
sumber

Jawaban:

99

Untuk mengaktifkan Mode Proxy DNS menggunakan resolver host , jalankan perintah berikut:

VBoxManage memodifikasivm " <VM name> " --natdnshostresolver1 aktif

Akibatnya, permintaan DNS OS tamu akan dicegat dan diselesaikan menggunakan host DNS API, daripada membuat OS tamu terhubung ke server DNS eksternal --natdnsproxy1 on.

Anda bisa mendapatkan nama VM dengan menjalankan VBoxManage list runningvms.

Josiah
sumber
9
Untuk informasi lebih lanjut untuk orang lain: ini perlu dijalankan dari tuan rumah. Jika host Anda adalah Windows, buka Command Prompt, cd ke "C: \ Program Files \ Oracle \ VirtualBox", dan jalankan perintah itu. Tampaknya tidak ada opsi apa pun di GUI VirtualBox Manager (setidaknya di semua versi dari 4. * hingga 5.0.20) yang memungkinkan Anda mengatur ini dengan cara lain.
Graham
Saya ingin menambahkan bahwa Anda perlu menjalankan perintah ini sebagai administrator. Saya mencobanya dari cmd saya dan tidak berhasil, tetapi kemudian saya menjalankan cmd sebagai administrator dan semuanya bekerja dengan baik.
SergeyOvchinnik
3
Ini digunakan untuk saya, tetapi tidak dengan Ubuntu 16.04 dan kotak
virtual
Tidak bekerja untuk saya juga :(
Pavel Durov
1
Ini masih berfungsi dengan MacOs High Sierra sebagai tuan rumah, VirtualBox 5.2.6, yang menjalankan Windows 7 di VM.
John Eikenberry
6

Ya itu mungkin. Ada banyak mode yang tersedia di VirtualBox untuk membangun jaringan antara tamu dan tuan rumah. Daripada menggunakan mode NAT (yang default), Anda dapat menggunakan mode jembatan di mana mesin tamu Anda dapat diperlakukan sebagai entitas yang sepenuhnya terpisah di jaringan Anda. Jadi, tidak hanya host Anda, tetapi mesin lain (seperti server DNS Anda) akan melihat tamu Anda sebagai mesin yang terpisah.

Setelah Anda mengatur mode jembatan, buka saja tamu ubuntu Anda dan gunakan untuk menggunakan nama atau DNS server DNS perusahaan Anda. Baca tutorial ini untuk info lebih lanjut: http://prahladyeri.wordpress.com/2012/08/02/how-to-setup-a-virtual-lan-on-on-your-machine-using-oracle-virtualbox/

Prahlad Yeri
sumber
5

Ini adalah hasil teratas Google, jadi saya ingin mengklarifikasi untuk orang lain. Solusi Yosia bekerja untuk saya dengan menambahkan baris:

hosts: files dns untuk /etc/nsswitch.conf

Seperti orang lain tunjukkan, solusi asli tidak berfungsi di atas Ubuntu 16.04. VM tamu saya adalah Ubuntu 16.04.

Referensi Membuat Server Linux

pretzel11
sumber
2
Selamat Datang di Pengguna Super! Anda bisa mengusulkan itu sebagai edit untuk jawaban Yosia, yang akan membantu mereka yang mencari :)
bertieb
Terima kasih atas tipnya! Saya mencoba menambahkan hanya komentar, tetapi itu tidak diizinkan. Saya mengirim suntingan sebagai gantinya.
pretzel11
1

Saya juga memperhatikan koneksi VPN saya mengganggu koneksi internet gelandangan.

Berkat stackexchange ini, saya bisa menyelesaikannya dengan menanamkan ke dalam Vagrantfile saya

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

Dan menghindari kebosanan karena harus mematikan kotak untuk memodifikasi melalui baris perintah, kemudian reprovision

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
Valdis Vitayaudom
sumber
0

Bagi saya itu membantu menambahkan adaptor lain dengan adaptor host-only sambil menjaga yang pertama (mode NAT) di sana juga.

[tangkapan layar1]

Michel Samia
sumber