VirtualBox VM이 호스트의 DNS를 사용하도록하는 방법은 무엇입니까? 이름을 확인하기위한 로컬 DNS가

내 VM에 VirtualBox 를 사용 합니다. 내 사무실 네트워크 설정은 무선입니다. 즉, 회사의 WiFi 네트워크에 연결하여 로컬 이름을 확인하기위한 로컬 DNS가 있습니다 (예 : something.mycompany.com 은 123.45.67.89로 이동). 새 VM을 만들면 호스트의 연결을 상속하는 외부 인터넷에 연결할 수 있지만 로컬 DNS를 사용하여 로컬 이름을 확인하지는 않습니다. 따라서 /etc/hostsVM 으로 이동 하여 호스트에서 이름을 확인한 후 수동으로 항목을 작성해야합니다.

이 수동 단계를 수행 할 필요가 없도록 VirtualBox가 게스트를 호스트의 DNS에 자동으로 연결하는 방법이 있습니까? 내 호스트는 OSX Mountain Lion 이며 VM은 일반적으로 우분투 이지만 그 점이 중요합니다.



답변

호스트의 resolver를 사용하여 DNS 프록시 모드 를 활성화하려면 다음 명령을 실행하십시오.

VBoxManage modifyvm " <VM 이름> "--natdnshostresolver1

결과적으로 게스트 OS가 외부 DNS 서버에 연결되지 않고 호스트 DNS API를 사용하여 게스트 OS DNS 요청을 가로 채서 해결합니다 --natdnsproxy1 on.

를 실행하여 VM의 이름을 얻을 수 있습니다 VBoxManage list runningvms.


답변

네 가능합니다. VirtualBox에는 게스트와 호스트간에 네트워킹을 설정하기 위해 사용할 수있는 많은 모드가 있습니다. NAT 모드 (기본값)를 사용하는 대신 게스트 시스템을 네트워크에서 완전히 별개의 엔티티로 취급 할 수있는 브리지 모드를 사용할 수 있습니다. 따라서 호스트뿐만 아니라 다른 컴퓨터 (예 : DNS 서버)는 게스트를 별도의 컴퓨터로 간주합니다.

브리지 모드를 설정하면 우분투 게스트로 이동하여 회사의 DNS 서버 이름 또는 IP를 사용하십시오. 자세한 내용은이 자습서를 참조하십시오 : http://prahladyeri.wordpress.com/2012/08/02/how-to-setup-a-virtual-lan-on-your-machine-using-oracle-virtualbox/


답변

이것은 최고의 Google 결과 였으므로 다른 사람들을 위해 명확하게 설명하고 싶었습니다. Josiah의 솔루션은 다음과 같이 추가했습니다.

hosts: files dns/etc/nsswitch.conf

다른 사람들이 지적했듯이 원래 솔루션은 Ubuntu 16.04 이상에서는 작동하지 않습니다. 내 게스트 VM은 Ubuntu 16.04입니다.

Linux 서버 만들기 참조


답변

또한 VPN 연결이 인터넷 연결을 방해하는 것으로 나타났습니다.

이 스택 교환 덕분에 Vagrantfile에 임베드하여 해결할 수있었습니다.

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

그리고 커맨드 라인을 통해 수정하기 위해 박스를 종료해야하는 지루함을 피하고 다시 프로비저닝

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


답변

나를 위해 첫 번째 (NAT 모드)를 유지하면서 호스트 전용 어댑터가있는 다른 어댑터를 추가하는 데 도움이되었습니다.

[스크린 샷 1]


답변