VirtualBox VM이 호스트의 DNS를 사용하도록하는 방법은 무엇입니까?


69

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

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

답변:


99

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

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

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

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


9
다른 사람을위한 추가 정보 : 호스트에서 실행해야합니다. 호스트가 Windows 인 경우 명령 프롬프트를 열고 "C : \ Program Files \ Oracle \ VirtualBox"로 cd 한 다음 해당 명령을 실행하십시오. VirtualBox Manager GUI (적어도 4. *-5.0.20의 모든 버전)에는 다른 방법으로 설정할 수있는 옵션이 없습니다.
Graham

이 명령을 관리자 권한으로 실행해야한다고 덧붙이고 싶습니다. 내 cmd에서 시도했지만 작동하지 않았지만 cmd를 관리자로 실행하면 모두 완벽하게 작동했습니다.
SergeyOvchinnik

3
이것은 나를 위해 작동하는 데 사용하지만 우분투 16.04 및 Windows 용 최신 버추얼와
Shanteva

나에게도 효과가 없다 :(
Pavel Durov

1
이것은 여전히 ​​VM에서 Windows 7을 실행하는 VirtualBox 5.2.6 호스트로 MacOs High Sierra에서 작동합니다.
John Eikenberry

6

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

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


5

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

hosts: files dns/etc/nsswitch.conf

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

Linux 서버 만들기 참조


2
슈퍼 유저에 오신 것을 환영합니다! 당신은 그 찾고 :) 도움이되는, 요시야의 대답에 편집으로 그 제안 할 수
bertieb

팁 고마워! 의견을 추가하려고 시도했지만 허용되지 않았습니다. 대신 수정 사항을 제출했습니다.
pretzel11

1

또한 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

0

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

[스크린 샷 1]

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.