호스트 컴퓨터에서 가상 상자의 웹 서버에 액세스하는 방법


29

VirtualBox가 우분투를 실행하는 Windows Vista 컴퓨터가 있습니다.

우분투에서 http://127.0.0.1:3000/ 주소로 웹 서버를 실행 중입니다.

호스트 컴퓨터 (Windows 박스)에서이 주소에 어떻게 액세스합니까?


가장 간단한 옵션은 포트 전달을 사용하는 것입니다. 설정-> 네트워크에서 구성 할 수 있습니다. 이 링크
스파르타

게스트의 웹 서버를 127.0.0.1로 실제로 구성한 경우 게스트 외부에서 액세스 할 수 없습니다. localhost / 127.0.0.1은 루프백 어댑터 (메모리 내)이며 네트워크 카드를 설치하지 않아도 제대로 작동합니다. 웹 서버의 IP를 루프백 이외의 다른 것으로 변경하면 아래 답변이 도움이 될 것입니다.
Mladen B.

답변:


28

게스트 네트워킹 모드를 NAT에서 브리지로 변경할 수 있습니다. Ubuntu 게스트를 닫고 VirtualBox의 설정 페이지로 이동하여 네트워크 범주를 선택한 다음 연결 대상 목록 상자를 NAT에서 브리지 모드로 변경하십시오.

편집하다:

위의 단계를 수행 한 후 Ubuntu를 다시 시작하면로드 후 할당 된 IP가 시작 화면에 표시됩니다. 즉, 환영 메시지에서 다음과 같이 말해야합니다.

eth0의 IP 주소 : 192.168.1.3

호스트 컴퓨터의 브라우저 표시 줄에서이 주소를 사용하고 사용중인 포트를 사용하십시오. 포트 80 이외의 다른 포트 인 경우, 즉 포트 666을 사용하도록 설정 한 경우 주소는 192.168.1.3:666입니다.

IP를 찾는 다른 방법은 라우터에 내장 된 HTTP 서버에 연결하고 LAN 설정을 보는 것입니다. 네트워크의 모든 컴퓨터는 호스트 이름과 IP로 나열되어야합니다. 내가 가진 다른 대부분의 라우터에서는 주소 표시 줄에 192.168.1.1을 입력하여이 작업을 수행 할 수 있습니다. 실패하면 포트 81에서 같은 주소로 시도하십시오. 실패하면 매뉴얼을 읽으십시오.


그러나 IP 주소가 무엇인지 어떻게 알 수 있습니까? Thx
SSH 이번

작동하지만 호스트 전용 옵션은 해당 vm을 회사 네트워크에 노출시키지
Carlos Garcia

2
게스트의 엔드 포인트 127.0.0.1이 게스트 내에서만 도달 할 수 있다고 생각하는 유일한 사람입니까 (로컬 호스트의 요점)? 루프백 어댑터이므로 설치된 네트워크 카드가 필요하지 않기 때문에 게스트 컴퓨터 외부에서 이러한 종류의 엔드 포인트에 액세스 할 수있는 방법이 없어야합니다.
Mladen B.

이 192.1681.3을 Godaddy의 A 레코드에 대한 IP로 입력하면 작동하지 않습니다. 분명히 외부 IP 주소를 기대합니다. EC2에 계속
PirateApp

10

Ubuntu 게스트 OS에서 네트워킹을 설정하는 방법에 따라 다릅니다. NAT를 사용하도록 설정하고 네트워크에서 DHCP 서버를 실행중인 경우 다음을 실행하십시오.

ifconfig | grep inet

Ubuntu 상자에-Ubuntu 게스트에 할당 된 IP 주소가 표시됩니다.

예:

#ifconfig | grep inet
  inet addr:10.0.0.2  Bcast:10.255.255.255  Mask:255.255.255.0
  inet addr:127.0.0.1  Mask:255.0.0.0

그런 다음 http://10.0.0.2:3000


제 경우에는 주소가 10.0.2.15:3000/public 이어야 하고 기본적으로 비스타는 DHCP 모드에서 실행됩니다. (우분투 컴퓨터는 NAT를 사용하도록 구성되어 있습니다) 그러나 응답이 없습니다 :(
Argh

흠 그냥 DHCP 서버가 없다는 것을 깨달았습니다-비스타 홈을 실행 중입니다 ...
Argh

VirtualBox에는 가상 컴퓨터를 처리하는 자체 DHCP 서버가 있습니다. 그렇지 않으면 가상 컴퓨터는 정적으로 설정하지 않고 자동으로 IP 주소를 얻지 못합니다. 귀하의 문제는 Apache가 모든 인터페이스에서 수신 대기하지 않는 것 같습니다-localhost (127.0.0.1). / etc / apache2 / sites-available / default에서 Listen 지시문이 help.ubuntu.com/9.04/serverguide/C/httpd.html
Cory Plastek

이것은 아마도 원인입니다.
fsckin

4

Windows 상자와 Ubuntu 상자 (실제 또는 가상 여부에 관계없이)는 모두 동일한 서브넷에 IP 주소가 있어야 TCP / IP를 통해 서로 통신 할 수 있습니다. 개인 IP 서브넷 중 하나를 사용하여 각 OS에 추가 주소를 할당 할 수 있습니다 ( RFC 1918 참조 ). 둘 다 동일한 서브넷에 주소가 있으면 웹 서버가 Ubuntu에 제공 한 주소를 수신하도록 구성한 다음 Windows 내의 브라우저에서 해당 IP를 사용하여로드하십시오.

지금 구성한 IP (127.0.0.1)는 로컬 네트워크 인터페이스의 루프백 주소입니다. 해당 주소를 사용하여 다른 시스템의 무언가에 액세스하지 않고 현재 사용중인 동일한 시스템을 다시 참조하기 만합니다. 가상 시스템을 사용할 때는 네트워킹 관점에서 별도의 컴퓨터를 사용하는 것처럼 취급하십시오.


2

문제를 해결하려면 새 네트워크 어댑터 를 추가하고 호스트 전용 어댑터 로 구성하는 것이 좋습니다.

이제 가상 상자 인스턴스를 실행 한 다음 fsckin이 중단 한 것을 실행 하여 새 네트워크IP가 무엇인지 확인 합니다 .

이 방법으로 컴퓨터와 가상 머신과 서브넷이 있습니다.


그래서 ... 당신이 내 IP 주소를 잡고 있다고했듯이 그런 다음 할당 된 IP : 3000을 사용하여 웹 서버 (게스트 내에서 127.0.0.1:3000 으로 액세스 할 수 있음)에 액세스하려고 시도했지만 응답을 얻지 못했습니다. 그러나 호스트에서 IP를 핑할 수있었습니다
Argh

포트 3000에서 방화벽을 열어야합니다.
fampinheiro


0

우선, 답변 1의 내용을 따라야합니다.

"게스트 네트워킹 모드를 NAT에서 브리지로 변경할 수 있습니다. Ubuntu 게스트를 닫고 VirtualBox의 설정 페이지로 이동하여 네트워크 범주를 선택한 다음 연결 대상 목록 상자를 NAT에서 브리지 모드로 변경하십시오."

그런 다음 IP 주소를 얻으려면

가상 머신에서 명령 프롬프트를 열고 다음을 수행하십시오.

ip addr show

다음과 같은 줄이 보일 것입니다.

inet 192.168.43.96/24 ....

그 앞에 줄도 있습니다

inet 127.0.0.1

그러나 당신은 그 것을 원하지 않습니다! 192 주소를 원합니다. 이것이 로컬 네트워크의 가상 머신 주소입니다. 동일한 로컬 네트워크에 연결된 모든 장치에서 액세스 할 수 있어야합니다.

이제 호스트 시스템에서 / etc / hosts 파일을 편집하십시오 (~ / etc 아님). 파일 이름은 hosts입니다 (폴더 이름이 아님).

다음과 같은 줄을 추가하십시오.

192.168.43.96 myvm.nameofmywebsite.com

이제 호스트 컴퓨터 브라우저로 이동하여 myvm.nameofmywebsite.com을 입력하십시오.

잘만되면 그것은 할 것이다!

그러나 로컬 주소를 보는 데 방해가되는 보안 기능이있는 라우터가있을 수 있습니다. 휴대 전화의 핫스팟을 네트워크로 사용하면됩니다. 그것은 나를 위해 작동합니다. 호스트 컴퓨터에서 네트워크를 변경할 때 virtualbox를 다시 시작해야한다는 것을 기억하십시오.

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