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

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

经过大量阅读和论坛后,我仍然遇到问题,需要一些建议。我在 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)

因此,我将 CentOS 安装为客户操作系统,并希望访问其 http 服务器。在 Virtualbox 的网络设置中,我有以下内容:连接到桥接适配器

名称:wlan0

我允许虚拟机采用混杂模式。

并且“电缆已连接”已勾选。

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

当我想连接到 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

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

[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 ssh 到 CentOS。)

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

有人能帮我解释一下吗?谢谢

答案1

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

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

答案2

按照以下方法禁用客户操作系统内部防火墙应该可以让你访问。输入

service iptables stop
chkconfig iptables off

在客户操作系统中的命令行中。

相关内容