我需要有关如何转发到端口 80 以及如何使我的 VirtualBox 服务可供外界访问的建议。我可以使用主机和 Putty 访问 Web 服务器。
我正在学习科技艺术。
我认为我正在使用nginx而不是 apache(如教程中所建议的)。
答案1
绝对与 nginx 无关,它只是在端口 80 上监听您的客户端,就像任何 Web 服务器一样。
您应该查看客户的网络配置,包括 VirtualBox 中的机器配置级别和客户机接口配置(/etc/network/interfaces
,ifconfig
)。
事实上,您可以从主机访问它,这意味着您已经可以从 VirtualBox 外部访问它,因此主机-客户机连接是可以的/可能的。
您如何在 VirtualBox 中配置您的访客网络?
1 您的主机位于路由器/NAT 后面的网络上
桥接连接可能是最简单的设置,通过主机的卡将您的客户机直接插入主机的网络上,并获取自己的 IP 地址。这取决于您的网络控制器(交换机/集线器)是否接受它(MAC 过滤/白名单可能会阻止它)。在后者中,您应该使用 NAT 对其进行配置(见下文)。
然后你需要让你的主机可供外界使用。你需要在网络网关(路由器)上配置 NAT。
2. 你的主机直接与外界相连
您应该在 VirtualBox 中将您的客户网络配置为 NAT,并在 VirtualBox 中进行端口重定向,使其监听 TCP 端口 80 并将其转发给此客户。这是因为您的“外部世界”网络上可能只有一个 IP 地址,因此桥接连接将失败。
在这两种情况下,您都需要在主机防火墙中打开传入的 TCP 80(除非您在 Linux 上更改它,否则已经没问题),并且显然,没有任何东西监听该端口以允许 VirtualBox 执行此操作。
答案2
转发 1024 以下的端口内核阻止非 root 用户使用。 因此,将访问客户机端口 80 的尝试转发到更高的端口(例如 8080)。从 VirtualBox:
Settings (secondary click on server icon) → Network → Adapter 1 (Attached to: NAT) → Advanced → Port Forwarding
Name | Protocol | Host Port | Guest Port
HTTP | TCP | 8080 | 80