无法在 VirtualBox VM 上访问 Apache(使用 NAT + 仅主机)

无法在 VirtualBox VM 上访问 Apache(使用 NAT + 仅主机)

简短的介绍:

我的主机操作系统是 Ubuntu-12.04,我使用 VirtualBox 设置了 Oracle Linux 6.4(基于 RHEL)虚拟机和 Apache httpd Web 服务器。我需要从主机 Ubuntu 访问虚拟机提供的网页。


额外细节:

配置如下:

  • VM 的第一个网络适配器配置为NAT,因为我需要它使用主机的 Internet 连接。参见下图:

    第一个适配器的 NAT 配置: 第一个适配器的 NAT 配置

  • 我已将第二个适配器启用为仅主机,因此我可以从主机访问 VM(sshscp从主机访问客户 VM,等等)。这工作正常。客户 VM 的 IP 已手动设置为10.10.10.15,我可以成功访问客户 VM pingssh并且scp没有任何问题。见下文:

    第二个适配器的仅主机配置: 第二个适配器的仅主机配置

在虚拟机内部,我已经成功设置了 Apache,并且它可以正常工作,localhost但是当我尝试通过输入 Chromium 或 Firefox 从主机访问页面时10.10.10.15,却无法连接! :(

我也尝试过/etc/hosts如下方式在里面添加一个条目,但是test-website.net在 Chromium 或 Firefox 中输入仍然会出现同样的错误! :(

10.10.10.15    test-website.net

还有一件事需要注意SELinux。您可能知道,SELinux在基于 RHEL 的发行版(例如 CentOS 和 Oracle-Linux)上默认启用。为了确保 SELinux 不会弄乱我的工作,我已将其配置为permissive模式/etc/selinux/config,并在重启后使用确认效果sestatus

SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   permissive
Mode from config file:          permissive
Policy version:                 26
Policy from config file:        targeted

这听起来像是以下问题的重复,但这些问题的答案建议为Host-only客户机设置一个适配器并/etc/hosts在主机中进行配置,这我已经测试过了,但对我不起作用

有什么帮助吗?!

答案1

我弄清楚了问题的原因是什么......iptables

我为虚拟机设置的配置应该可以正常工作。

如果具有相同设置的人遇到问题,请查看以下内容:

  • 系统防火墙(即iptables)配置;
  • SELinux配置;

干杯:)

答案2

您是否将 apache 绑定到所有接口或仅仅lo

顺便说一句:您不必使用第二个网络(仅主机)来访问访客服务。

通过使用NAT 端口转发,您可以设置规则来映射 web 和 ssh/sftp/ftp 端口,以便您可以通过访问主机上的 localhost:PORT 来访问这些端口。

例如要将客户 ssh 映射到主机端口 2222,您可以通过以下方式访问ssh -p 2222 user@localhost

VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,,22"

笔记:转发主机端口 < 1024 是不可能的,这是一个 NAT 限制。

相关内容