Virtualbox: 호스트 OS에서 게스트 OS의 웹 서버에 액세스하는 방법은 무엇입니까?

Virtualbox: 호스트 OS에서 게스트 OS의 웹 서버에 액세스하는 방법은 무엇입니까?

많은 RTFM 및 독서 포럼 후에도 여전히 문제가 있으며 조언이 필요합니다. Ubuntu에서 Virtualbox를 사용하고 Centos 서버를 게스트로 설치했습니다. 내 문제는 호스트 OS에서 게스트 OS의 웹 서버에 액세스할 수 없다는 것입니다.

세부 정보는 다음과 같습니다. 호스트 OS는 Ubuntu 12.04 LTS(커널 3.2.0-24-generic) 64비트입니다.

Virtualbox 4.1.12를 사용합니다.

무선 라우터에서 IP 주소를 얻습니다.

eth0      Link encap:Ethernet  HWaddr 18:03:73:42:3d:ac  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:47 Base address:0xe000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:3784 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3784 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:378673 (378.6 KB)  TX bytes:378673 (378.6 KB)

wlan0     Link encap:Ethernet  HWaddr 64:27:37:69:c5:d2  
          inet addr:192.168.1.15  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::6627:37ff:fe69:c5d2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:124013 errors:0 dropped:0 overruns:0 frame:0
          TX packets:82469 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:164307087 (164.3 MB)  TX bytes:9744555 (9.7 MB)

그래서 CentOS를 게스트 OS로 설치하고 CentOS의 http 서버에 액세스하려고 합니다. Virtualbox의 네트워크 설정에는 다음이 있습니다: 브리지 어댑터에 연결됨

이름: wlan0

VM에 무차별 모드를 허용합니다.

그리고 '케이블 연결됨'이 선택되었습니다.

CentOS 시스템에서 eth0 인터페이스는 255.255.255.0 마스크를 사용하여 192.168.1.20 IP 주소를 선택했습니다. 지금까지는 모든 것이 괜찮아 보이며 두 시스템이 서로 ping할 수 있습니다. 웹 서버를 시작했는데 포트 80에서 수신 대기 중입니다. netstat로 확인했습니다. (단, 웹서버의 기본 설정 파일은 변경하지 않았습니다.)

CentOS 시스템의 웹 서버에 연결하고 싶은데 연결할 수 없습니다. Firefox는 '연결할 수 없습니다'라고 말합니다. Chrome도 불행합니다. Chrome은 192.168.1.20에 연결할 수 없습니다. (여기에서는 프록시를 사용하지 않습니다.)

게스트 시스템의 포트 80에 텔넷을 시도했지만 즐겁지 않았습니다.

:~$ telnet 192.168.1.20 80
Trying 192.168.1.20...
telnet: Unable to connect to remote host: No route to host

중요한지 확실하지 않지만 게스트 OS의 라우팅 테이블은 다음과 같습니다.

[root@centos ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
link-local      *               255.255.0.0     U     1002   0        0 eth0
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

(재밌네요. Ubuntu에서 CentOS로 SSH를 통해 연결할 수 있다는 사실을 방금 알아냈습니다.)

Virtualbox에서 다른 설정을 시도했지만 위의 내용은 사람들이 다른 포럼에서 제안한 내용과 가장 가깝습니다. 포트 전달, 호스트 전용 어댑터를 사용하여 NAT를 시도했지만 수정하지 못했습니다.

누군가 나에게 빛을 비춰줄 수 있나요? 건배

답변1

해결책은 여기에 설명된 대로 게스트 OS의 방화벽에서 포트를 여는 것이었습니다. http://wiki.centos.org/HowTos/Network/IPTables

Virtualbox의 네트워크 설정이 정상이었습니다. 브리지된 네트워크가 올바른 설정입니다.

답변2

아래와 같이 게스트 OS 내부 방화벽을 비활성화하면 액세스가 허용됩니다. 유형

service iptables stop
chkconfig iptables off

게스트 OS에 있을 때 명령줄에서.

관련 정보