다음과 같은 시나리오가 있습니다: 호스트 머신(OS X)과 게스트 머신(Ubuntu). 게스트는 Virtual Box를 통해 실행 중이며 네트워크 구성은 "브리지 어댑터"로 설정되어 있습니다. 두 시스템 모두 호스트 이름, 즉 호스트의 경우 host.local, 게스트의 경우 guest.local이 있습니다. 호스트 이름(예: )을 사용하여 서로 통신할 수 있습니다 ping host.local
.
게스트 머신을 웹사이트용 개발 서버로 사용하고 싶습니다. 사이트는 호스트에 위치하며 공유 폴더를 사용하여 게스트가 액세스할 수 있습니다. 가상 문서 루트를 사용하도록 Apache를 구성했는데, 그러면 site.guest.local에서 사이트를 사용할 수 있게 됩니다. 그러나 이를 위해서는 호스트 파일에 site.guest.local, site2.guest.local 등을 설정하여 게스트의 IP를 가리켜야 합니다.
컴퓨터가 때때로 다른 IP 주소를 사용하여 다른 네트워크에 연결될 수 있으므로 게스트의 IP 주소에 의존하고 싶지 않습니다.
저는 로컬 DNS 서버, 특히 DNSMasq를 다루면서 CNAME 레코드 등을 생성하려고 시도했지만 이를 달성하는 적절한 방법을 찾을 수 없습니다.
간단히 말해서, guest.local을 가리키는 로컬 별칭을 만들고 싶습니다.
답변1
VirtualBox VM을 관리하기 위해 vagrant를 사용합니다. 모두 호스트 전용 네트워킹, 고정 IP 및 /etc/hosts의 항목으로 설정되어 있습니다. VirtualBox의 호스트 전용 네트워크가 NAT(VirtualBox / Preferences / Network)로 설정되어 있는지 확인하세요.
게스트는 외부에 액세스할 수 있으며(네트워킹이 올바르게 구성되었다고 가정) 가상 인터페이스는 NAT로 변환되므로 자신의 IP를 선택할 수 있습니다.
도움이 되지 않을 수도 있지만 다음은 내 Vagrantfile 중 하나의 줄입니다.
config.vm.network :hostonly, "10.11.12.13", :auto_config => true
게스트의 IP가 네트워크의 다른 장치와 충돌하는 경우 호스트 전용 어댑터(VirtualBox / Preferences / Network)의 IP 주소와 VM의 고정 IP를 업데이트하세요.