Virtualbox:如何从主机操作系统访问来宾操作系统上的 Web 服务器?

Pet*_*aux 10 centos virtualbox routing webserver ubuntu

经过大量的 RTFM 和阅读论坛,我仍然遇到问题,需要一些建议。我在 Ubuntu 上使用 Virtualbox 并以访客身份安装了 Centos 服务器。我的问题是我无法从主机操作系统访问来宾操作系统上的 Web 服务器。

以下是详细信息:主机操作系统是 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)
Run Code Online (Sandbox Code Playgroud)

因此,我将 CentOS 安装为来宾操作系统,并且想访问其 http 服务器。在 Virtualbox 的网络设置中,我有这个:附加到桥接适配器

名称: wlan0

我允许 VM 使用混杂模式。

并勾选了“有线连接”。

在 CentOS 机器上,eth0 接口选择了 192.168.1.20 IP 地址,掩码为 255.255.255.0。目前一切正常,两个系统可以互相ping通。我启动了 Web 服务器,它正在侦听端口 80 - 使用 netstat 检查。(但是没有更改网络服务器的默认配置文件。)

当我想连接到 CentOS 机器上的 Web 服务器时,我不能。“无法连接”Firefox 说,Chrome 也很不高兴:Chrome 无法连接到 192.168.1.20。(我在这里没有使用任何代理。)

我试图 telnet 到来宾系统上的端口 80 - 没有乐趣:

:~$ telnet 192.168.1.20 80
Trying 192.168.1.20...
telnet: Unable to connect to remote host: No route to host
Run Code Online (Sandbox Code Playgroud)

不确定它是否重要,但是来宾操作系统上的路由表在这里:

[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
Run Code Online (Sandbox Code Playgroud)

(这很有趣,我发现我可以从 Ubuntu ssh 到 CentOS。)

我在 Virtualbox 中尝试了不同的设置,但上面的设置最接近人们在不同论坛上的建议。尝试使用端口转发、仅主机适配器进行 NAT,但我未能修复它。

有人可以为我点亮一些灯吗?干杯

Pet*_*aux 8

解决方案是打开来宾操作系统防火墙上的端口,如下所述:http : //wiki.centos.org/HowTos/Network/IPTables

Virtualbox 中的网络设置正常 - 桥接网络是正确的设置。