VirtualBox VM'lerinin ana bilgisayarın DNS'sini kullanmalarını nasıl sağlarım?


69

Sanal Kutularım için VirtualBox kullanıyorum . Ofis ağımın kurulumu kablosuz, yani yerel adları çözmek için yerel bir DNS'ye sahip olan şirketimin WiFi ağına bağlanıyorum (örneğin, bir şey.mycompany.com, 123.45.67.89'a gidiyor). Yeni bir VM oluşturduğumda, ana bilgisayarın bağlantısını devralarak dış internete bağlanabilir, ancak yerel DNS'yi kullanarak yerel adları çözemez. Bu yüzden /etc/hosts, sanal makineye girmem ve ana bilgisayardaki adı düzelttikten sonra elle sıkıcı bir giriş yaptık .

VirtualBox'ın konuğu otomatik olarak ana bilgisayarın DNS'sine bağlaması için bir yol var mı, böylece bu manuel adımı atmam gerekmiyor mu? Ev sahibim OSX Mountain Lion , VM'ler genellikle Ubuntu'dur, ancak bunun önemi olması gerektiğinden şüpheliyim.

Yanıtlar:


99

Ana makinenin çözümleyicisini kullanarak DNS Proxy Modu'nu etkinleştirmek için aşağıdaki komutu çalıştırın:

VBoxManage configurevm " <VM name> " --natdnshostresolver1 on

Sonuç olarak, konuk işletim sistemi DNS istekleri durdurulacak ve konuk işletim sistemi işletim sistemiyle olduğu gibi dış DNS sunucularına bağlanmak yerine ana bilgisayar DNS API'si kullanılarak çözümlenecektir --natdnsproxy1 on.

VM'in ismini çalıştırarak alabilirsiniz VBoxManage list runningvms.


9
Diğerleri hakkında daha fazla bilgi için: Bunun ana bilgisayardan çalıştırılması gerekir. Ana makineniz Windows ise, bir Komut İstemi açın, "C: \ Program Files \ Oracle \ VirtualBox" a cd yapın ve bu komutu çalıştırın. VirtualBox Manager GUI'de (en azından 4. * ile 5.0.20 arasındaki tüm sürümlerde) herhangi bir seçenek görünmüyor, bu da başka bir şekilde ayarlamanıza izin veriyor.
Graham

Bu komutu yönetici olarak çalıştırmanız gerektiğini eklemek isterim. Cmd'den denedim ve benim için işe yaramadı, ancak daha sonra cmd'yi yönetici olarak koştum ve hepsi gayet iyi çalışıyordu.
SergeyOvchinnik

3
Bu benim için çalışıyordu, ama Ubuntu 16.04 ve Windows için en yeni sanal kutu ile değil
Shanteva

Benim için de çalışmıyor :(
Pavel Durov

1
Bu hala ana bilgisayarda MacOs High Sierra ile çalışmakta, VM'de Windows 7 çalıştıran VirtualBox 5.2.6.
John Eikenberry

6

Evet mümkün. VirtualBox'da konuk ve ev sahibi arasında ağ kurmak için birçok mod vardır. NAT modunu (varsayılan) kullanmak yerine, konuk makinenizin ağınızdaki tamamen ayrı bir varlık olarak değerlendirilebileceği köprü modunu kullanabilirsiniz. Bu nedenle, yalnızca ana makineniz değil, başka herhangi bir makine (DNS sunucunuz gibi) konuklarınızı ayrı bir makine olarak görecektir.

Köprü modunu ayarladıktan sonra, ubuntu konunuza gidin ve şirketinizin DNS sunucusu adını veya ipini kullanın. Daha fazla bilgi için bu öğreticiyi okuyun: http://prahladyeri.wordpress.com/2012/08/02/how-to-setup-a-virtual-lan-on-your-machine-using-oracle-virtualbox/


5

Bu çok iyi bir Google sonucuydu, bu yüzden başkaları için netleştirmek istedim. Josiah'ın çözümü benim için yeni bir çizgi ekleyerek çalıştı:

hosts: files dns için /etc/nsswitch.conf

Diğerlerinin de belirttiği gibi, orijinal çözüm Ubuntu 16.04'ün üzerinde çalışmıyor. Konuk VM'im Ubuntu 16.04.

Referans Linux Sunucusu Yaratma


2
Süper Kullanıcıya Hoşgeldiniz!
Josiah'ın

Bahşiş için teşekkürler! Sadece bir yorum eklemeye çalıştım, ancak izin verilmedi. Bunun yerine düzenlemeyi gönderdim.
pretzel11

1

Ayrıca VPN bağlantımın sersem internet bağlantısına müdahale ettiğini de fark ettim.

Bu stackexchange sayesinde Vagrant dosyamı ekleyerek çözebildim.

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

Komut satırı üzerinden değişiklik yapmak için kapatma kutusunu kapatmak zorunda kaldıktan ve ardından reprovision'dan kaçınıldı

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

Benim için orada ilk (NAT modu) tutarken sadece ana bilgisayar adaptörüyle başka bir adaptör eklemeye yardımcı oldu.

[screenshot1]

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.