게스트에서 호스트로 Virtualbox "포트 전달"[닫힘]


162

내 설정은 다음과 같습니다.

- Host: Windows XP
- Guest: Ubuntu 10.04
- Networking: NAT

게스트에서 Apache 웹 서버를 설정하고 있지만 Windows 시스템 에서이 작업을 수행 할 수 있기를 원합니다.

- go to the browser, type http://localhost:8000

또한 네트워킹을 브리지로 변경하려고 시도했으며 새 IP를 얻었습니다. 그러나 http : // : 8000을 시도하면 연결할 수 없다고 말합니다.


1
나는 같은 문제가 있었다. 게스트 OS 밝혀졌다 포트 80를 차단 된 활성 방화벽했다
니콜라스 정강이

149
일상적인 워크 플로의 일부로 VirtualBox를 사용하는 웹 개발자는 이것이 주제가 아닌 것으로 표시되는 것에 동의하지 않습니다. 다시 열 것을 고려하십시오.
sparecycle December

1
1. VM으로 이동 2. ifconfig (로컬 IP 가져 오기-10.0.2.X 여야 함) 3. ssh 10.0.2.2
Mark Roberts

@deeperDATA 웹 개발자의 작업 범위에 속할 수 있지만 스택 오버플로가 작업의 모든 부분을 캡슐화하지는 않습니다. 이 요구 사항이 여러 스택 교환 사이트에 걸쳐 있다는 것은 전문직의 복잡성을 입증합니다.
케빈 로렌스

1
작동시키는 데 시간이 오래 걸렸습니다. 우리의 문제는 게스트 시스템에서 응용 프로그램의 IP 바인딩이며, 우분투에서 127.0.1.1을 의미하는 컴퓨터 이름에 바인딩되었습니다. 바인딩을 0.0.0.0으로 변경했습니다. 포트 전달 설정 : 호스트 IP = DNS 호스트 IP, 호스트 포트 = 8080, 게스트 IP = eth0의 IP, 게스트 포트 =
8080.

답변:


222

네트워크 통신 호스트-> 게스트

게스트에 연결하고 IP 주소를 찾으십시오.

ifconfig 

결과 예 (ip 주소는 10.0.2.15 임) :

eth0      Link encap:Ethernet  HWaddr 08:00:27:AE:36:99
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0

Vbox 인스턴스 창-> 메뉴-> 네트워크 어댑터로 이동하십시오.

  • 어댑터는 NAT 여야합니다
  • "포트 포워딩"을 클릭하십시오
  • 새 레코드 삽입 (+ 아이콘)
    • 호스트 IP의 경우 127.0.0.1을 입력하고 게스트 IP 주소의 경우 이전에서 가져 왔습니다. 단계 (내 경우에는 10.0.2.15)
    • 귀하의 경우 포트는 8000입니다-둘 다 넣습니다. 그러나 원하는 경우 호스트 포트를 변경할 수 있습니다

호스트 시스템으로 이동하여 브라우저에서 시도하십시오.

http://127.0.0.1:8000

또는 네트워크 IP 주소 (ipconfig를 실행하여 호스트 시스템에서 찾으십시오).

네트워크 통신 게스트-> 호스트

이 경우 포트 전달이 필요하지 않으며 통신은 LAN을 통해 호스트로 다시 전달됩니다.

호스트 컴퓨터에서-네트워크 IP 주소를 찾으십시오.

ipconfig

결과 예 :

IP Address. . . . . . . . . . . . : 192.168.5.1

게스트 컴퓨터에서 호스트와 직접 통신 할 수 있습니다 (예 : ping으로 호스트 확인).

# ping 192.168.5.1
PING 192.168.5.1 (192.168.5.1) 56(84) bytes of data.
64 bytes from 192.168.5.1: icmp_seq=1 ttl=128 time=2.30 ms
...

11
두 포트 모두 8000이 아닙니다. 호스트 포트는 8000 이상이어야하지만 게스트 포트는 80이어야합니다.
Yasin

5
이 경우 VM으로 이동하여 ITS IP 주소 (아래와 같이 10.0.2.15)를 가져와 VM에서 호스트로 이동하는 것이 가능해야합니다. VM에서 호스트 시스템으로 이동하기 위해 IP는 10.0.2.2 (일반적으로)입니다.
Mark Roberts

5
게스트에 NAT를 사용하는 경우 ... 호스트에서 실행중인 서비스가 127.0.0.1에만 바인딩 된 경우 게스트는 호스트의 공용 IP를 사용하여 해당 서비스에 연결할 수 없습니다 (예 : 서비스 : privoxy). 대신 Mark에서 언급 한대로 10.0.2.2를 사용하거나 'route -n'(게스트에서 실행)이 기본 게이트웨이로 표시되는 모든 것을 사용해야합니다.
desm


2
호스트 또는 게스트 IP 주소를 지정할 필요가 없으며 상자를 비워 둘 수 있습니다. localhost에서만 연결하려는 경우 127.0.0.1을 호스트로 설정하는 것이 좋습니다.
mwfearnley

14

그건 불가능하다. localhost항상 로컬 운영 체제 의 루프백 장치로 기본 설정됩니다 .
가상 머신은 자체 운영 체제를 실행하므로 외부에서 액세스 할 수없는 자체 루프백 장치가 있습니다.

예를 들어 브라우저에서 액세스하려면 로컬 IP를 사용하여 연결하십시오.

http://192.168.180.1:8000

이것은 단지 예일 뿐이며 ifconfig게스트 운영 체제의 쉘에서 명령을 실행하여 실제 IP를 찾을 수 있습니다 .


나는 이것을 시도했지만 NAT와 브리지 모두에서 작동하지 않았다. 게스트의 아파치 로그에 오류가 발생하지 않으며 아파치가 게스트에서 실행 중입니다.
Carmen

올바른 IP를 사용하고 있습니까? 가상 머신 내부 에서 주소에 액세스하여이를 확인할 수 있습니다 . 실패하면 잘못된 IP를 사용 중이거나 아파치가 포트 8080에서 수신 대기하도록 설정되지 않은 것입니다.
Chris

나를 위해 일했습니다-감사합니다!
매트 Frear

나를 위해 일했습니다. 호스트 OS IP 주소 "로컬 호스트"를 교체하기 전에, 나는 항상 "서버 키를 거부"했고, / etc / ssh / sshd_config에서 LogLevel에 DEBUG3에도 불구하고 /var/log/auth.log의 설명없이 "액세스가 거부되었습니다"
VR

@Chris는 mysite.localhost호스트에서 IP 주소 만 사용하여 호스트를 참조해야하므로 가상 호스트 항목이있는 호스트 에서 게스트 시스템에 액세스 할 수 없음을 의미합니까?
danjah
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.