因此,我尝试将客户机端口 80 转发到我的主机端口 80,以便我可以在我的主机的浏览器中查看在我的客户机上运行的 apache。
如果我设置以下内容:(8080/80),我可以查看 localhost:8080 并查看客户 apache 服务器。
当我将主机设置为 80 并将来宾设置为 80 时,它不起作用。我该如何让来宾 80 直接访问主机 80?
假设在 NAT 模式下运行是强制的。
答案1
从您的屏幕截图来看,您正在 OS X 上运行 VirtualBox - 对吗?
如果是这样,默认情况下 - 用户帐户无法创建侦听 1024 以下端口的 IP 端点。如果您确实需要在低端口号上进行侦听,则您有两个选择:
- 您可以以 root(或其他特权帐户)身份运行 VirtualBox - 但这不是一个推荐的解决方案,因为它往往会绕过许多安全限制。
您可以向防火墙添加转发规则,例如从端口 8080 到 80,以静默地重定向流量。您的 VirtualBox 仍将配置为转发端口 8080。简而言之:
- 打开终端,然后输入
sudo vi /etc/ipfilter/ipfw.conf
- 添加此行:
add 12001 fwd 127.0.0.1,8080 tcp from any to me dst-port 80
- 保存并关闭文件:
:wq
- 打开终端,然后输入
免责声明:我面前没有 Mac,更不用说最新的 OS X 副本了 - 因此虽然高级思想仍然适用,但配置防火墙转发规则的实际细节可能会略有不同,具体取决于您当前运行的版本。
可能还有更好的方法来处理这个问题。例如,如果您为客户机配置第二个虚拟适配器并将其配置为“仅主机”,那么您可以从主机访问客户机上的任何端口,而无需转发任何端口。如果您需要在网络上共享客户机,这可能没有意义 - 在这种情况下,“桥接”虚拟适配器可能更有意义。我建议阅读 VirtualBox 手册第 6 章中有关不同网络模式的内容:https://www.virtualbox.org/manual/ch06.html
答案2
您的 ISP 可能阻止了端口 80,但它在 VirtualBox 上运行良好,您如何检查?提供更多详细信息。