我已经安装了 VirtualBox 和一台装有 Ubuntu 的客户机。
从我的主机 Ubuntu,我可以浏览到 192.168.56.10 并查看我的客户 Ubuntu 服务器内的网页(我也可以进入我的客户机)ssh [email protected]
现在我的问题是:
如何远程访问位于我的客户机内的这个网站?
guest static ip: 192.168.56.10
host static Internet ip: 11.11.11.11
(我确实有静态互联网 IP,但这仅作为示例)
我希望能够http://11.11.11.11
从任何计算机浏览并访问虚拟机内的该页面
答案1
在您的路由器中将端口 80 和 443 转发到 192.168.56.10
然后,当外部请求到达端口 80 或 443 http https 时,它将被路由到位于 192.168.56.10 的 VM 客户机
这可能仅当您的默认网关是 192.168.56.1 时才有效,或者您可能必须更改客户机上的静态地址以匹配网关。例如,如果您的默认网关是 192.168.1.1,那么您将需要客户机中的静态 IP 作为 192.168.1.xxx。这是最简单的设置
补充一下,我刚刚才想起..这个设置是我自己用的,但是我在 VirtualBox 中使用桥接连接,而不是默认的 NAT 连接,现在我看了一下,上面的 IP 很可能是 Vbox 中的 NAT 连接
答案2
您应该使用 VirtualBox 的端口转发功能。您可以在虚拟机的适配器属性中找到此设置。转发 80 和 443 应该就足够了。
有关更多详细信息,请参阅此处的 virtualbox 手册:https://www.virtualbox.org/manual/ch06.html#natforward
我假设您的主机有一个静态公共 IP。如果不是这样,正如约翰所说,您也需要在路由器上转发这些端口。
答案3
事实上我不需要做任何事情。
从我上面问题的配置来看,我只需要知道我的虚拟机的 IP 地址,然后从连接到我的物理网络的任何计算机,我都可以在 Web 浏览器中输入该地址。
我使用了ip addr show
,它吐出了多个 IP,一个是带有我的主机 IP 的静态 IP。另一个来自桥接适配器接口(这是我网络中其他 PC 使用的接口)。