OS X 호스트에 표시되는 고정 IP를 사용하도록 Ubuntu 게스트를 구성하고 고정 IP가 호스트의 네트워크 구성과 독립적인지 확인하려면 어떻게 해야 합니까? 이전에는 게스트에 대해 브리지 네트워킹을 사용했지만 호스트를 네트워크 간에 지속적으로 이동하므로 게스트 IP가 항상 다릅니다.
먼저 게스트 네트워크 구성을 NAT로 설정하고 호스트 포트 1022를 게스트 포트 22로 전달하여 최소한 고정 주소(localhost:1022)로 SSH를 연결할 수 있었습니다.
$ VBoxManage setextradata "Ubuntu Server" "VBoxInternal/Devices/e1000/0/LUN#0/Config/SSH/Protocol" "TCP"
$ VBoxManage setextradata "Ubuntu Server" "VBoxInternal/Devices/e1000/0/LUN#0/Config/SSH/GuestPort" 22
$ VBoxManage setextradata "Ubuntu Server" "VBoxInternal/Devices/e1000/0/LUN#0/Config/SSH/HostPort" 1022
그 다음에,
$ ssh localhost -p 1022
ssh: connect to host localhost port 1022: Connection refused
그러나 이것은 작동하지 않았습니다(보시다시피 게스트는 NAT를 통한 네트워크 액세스가 없으며 OS X는 연결을 거부했습니다).
저는 고정 IP로 손님과 통신할 수 있는 일반적인 솔루션을 원합니다.
답변1
우선, localhost는 127.0.0.1을 가리킵니다. 해당 VM이 컴퓨터에서 실행 중일 수 있지만 VM과는 별도로 처리됩니다.
VirtualBox에서 NAT 브리지를 켜면 뒤에 배치된 NAT 클라이언트의 "라우터" 역할을 하는 별도의 가상 인터페이스가 생성됩니다. localhost는 VM이 아니라 Mac이므로 VM에 연결하기 위해 localhost에 연결할 수 없습니다.
게스트를 NAT로 설정한 다음 내부에서 VM 주소를 확인합니다. 해당 주소(개인 주소인 192.168.something일 가능성이 높음)를 사용하고 호스트에서 연결을 시도합니다.
답변2
에서VirtualBox 네트워킹 매뉴얼. NAT에서 원격 데스크톱으로의 Windows 게스트에 이것을 사용하고 훌륭하게 작동하지만 호스트 자체에서는 시도하지 않았습니다.
VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,,22"
위의 예에서 호스트 인터페이스의 포트 2222에 도착하는 모든 TCP 트래픽은 게스트의 포트 22로 전달됩니다. 프로토콜 이름 tcp는 전달에 사용해야 하는 프로토콜을 정의하는 필수 속성입니다(udp도 사용할 수 있음). guestsh라는 이름은 순전히 설명을 위한 것이며 생략하면 자동 생성됩니다. --natpf 뒤의 숫자는 VBoxManage의 다른 부분과 마찬가지로 네트워크 카드를 나타냅니다.
아, 방금 질문이 얼마나 오래된 것인지 깨달았습니다. 아, 다른 사람들에게 도움이 되기를 바랍니다.