从主机访问在 Fedora 客户机 VirtualBox 中运行的 Apache 服务器

从主机访问在 Fedora 客户机 VirtualBox 中运行的 Apache 服务器

我无法从主机访问 Apache 服务器。

我在 Windows 7 上安装了 Fedora 15 VM VirtualBox。在此 VM 中,我的客户机中的 Apache 服务器正在运行并且工作正常。

不确定我还能做什么来让它工作。

以下是我的配置。主机操作系统 IP:

   IPv4 Address. . . . . . . . . . . : 192.168.0.10
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.0.2

对于虚拟机我安装了两个网络适配器:

  1. NAT 使得虚拟机可以访问互联网,它可以工作。
  2. 仅主机适配器。

仅主机网络详细信息 仅主机 DHCP 服务器

以下是来宾上的配置:

[root@localhost network-scripts]# ifconfig
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:14 errors:0 dropped:0 overruns:0 frame:0
          TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1394 (1.3 KiB)  TX bytes:1394 (1.3 KiB)

p2p1      Link encap:Ethernet  HWaddr 08:00:27:DD:DD:EA  
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fedd:ddea/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1289 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1207 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:936406 (914.4 KiB)  TX bytes:137003 (133.7 KiB)

p7p1      Link encap:Ethernet  HWaddr 08:00:27:44:A3:DB  
          inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe44:a3db/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:313 errors:0 dropped:0 overruns:0 frame:0
          TX packets:386 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:30505 (29.7 KiB)  TX bytes:44783 (43.7 KiB)

当我ping 192.168.56.101从主机执行此操作时,我得到了正确的响应,但所有访问 Web 服务的尝试都失败了。我收到超时错误。

答案1

通常,当允许 ICMP 流量(例如 ping)到虚拟化客户机但阻止 TCP 流量(例如 HTTP 请求)时,问题就出在客户机操作系统上运行的软件防火墙上。

笔记:本说明中的命令语法是 Fedora Core 特有的,但可以抽象出一般步骤以供在其他 Linux 发行版上使用。

Fedora Core 的默认安装已启用 IPTables。检查 IPTables 服务的状态以查看其是否处于“活动”状态。

[root@gauss ~]# /bin/systemctl status iptables.service

此外,要查看当前活动的 IPTables 规则,请检查 IPTables 初始化脚本的状态。

[root@gauss ~]# /usr/libexec/iptables.init status

如果 INPUT 链中存在与下面类似的 IPTables 规则,则它负责阻止到主机的 TCP/IP 和 UDP 流量。

REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

关于如何启用 HTTP 流量,有多种选项(例如,在 INPUT 链中添加 IPTables 规则,以明确接受来自虚拟机管理程序的仅主机网络 IP 192.168.56.1 的端口 80 上的 TCP 流量,删除 INPUT 链中的通用 DROP 规则等)。

由于客户机不面向外界并且处于仅主机网络上,因此最简单的选择是停止 IPTables 并禁用它,以便它不会在重启时自动启动。

[root@gauss ~]# /bin/systemctl stop  iptables.service
[root@gauss ~]# /bin/systemctl disable iptables.service

一旦完成后,Fedora Core 客户机将能够通过其公共接口提供 HTTP 请求,并且可以通过在浏览器或任何其他 HTTP 客户端中访问 192.168.56.101 在 Windows 7 虚拟机管理程序上查看页面。

相关内容