如何使虚拟机对网络公开?

如何使虚拟机对网络公开?

进一步了解我在 Askubuntu 上的问题https://askubuntu.com/questions/1025100/i-want-to-use-vm-like-a-localhost-serve

如何使该虚拟机对所有网络公开?

换句话说,如何从手机访问安装在VM上的本地服务器?

答案1

从您最初的问题来看,您似乎正在使用 VirtualBox NAT 适配器作为 Guest 的适配器之一。

使用此 NAT 适配器,您应该能够通过 VirtualBox 设置从主机到客户机的端口转发。完成此操作后,任何可以访问您的主机(和相应端口)的设备都应该能够访问您的客户机的服务(VirtualBox 在此实例中实质上充当路由器)。


请注意,如果您决定使用桥接适配器,则下面给出的 NAT 端口转发步骤是不必要的。因此,桥接适配器将有自己的转发端口按钮已禁用。


VirtualBox NAT 的端口转发

  1. 在VirualBox Manager界面中选择相应的虚拟机(例如Ubuntu 服务器 16.4)。

  2. 在下面设置...网络,使用 NAT 选择正确的虚拟适配器。

  3. 展开先进的设置并按下转发端口按钮(位于电缆已连接复选框)。

    例如 VirtualBox NAT 适配器设置

    VirtualBox NAT 适配器设置 - 屏幕截图

  4. 在里面端口转发规则窗口中,创建一个或多个新的转发规则(使用右侧的绿色“加号”图标)。输入以下项目:

    • 规则名称— 这可以是任何你喜欢的东西。

    • 协议— 根据需要设置您的客户机服务的协议(TCP 用于 HTTP、SSH 和 FTP)。

    • 主机端口— VirtualBox 在主机上监听的用于重定向流量的端口(即,这是用于与客户机服务交互的“外部”端口)。

    • 来宾港— VirtualBox 为您的 Guest 重定向流量的端口(即您的 Guest 服务监听的“内部”端口)。

  5. 如上所述,您可以根据需要添加任意数量的规则。按好的等结束了。

    例如 VirtualBox NAT 的端口转发规则

    VirtualBox NAT 的端口转发规则 - 屏幕截图

一旦正确设置了此端口转发,除非出现任何其他问题,您的访客服务应该可以通过主机IP:主机端口. 然后,您可以根据需要(重新)重定向网络上的设备以访问此 IP/端口组合。

例如,我如何通过手机访问作为虚拟机安装的本地服务器?

如果您的手机与主机位于同一个本地 WiFi 网络上(例如1.2.3.4),根据上面的示例规则,您可以访问例如1.2.3.4:8080在手机的浏览器上。

对于远程访问(即从手机的移动网络访问),你需要通过路由器进行额外的端口转发,以将来自本地网络外部的请求转发到例如1.2.3.4:8080(然后转发给您的客人)。

注意事项

如果您在连接访客服务时遇到问题:

  • 您可能需要配置本地防火墙(在主机、客户机或网络的其他地方)。

  • 可能需要在 VirtualBox 之外进行额外的端口转发(例如,用于 LAN 之外的访问)。

  • 您可能需要在 VirtualBox 中转发其他端口或配置您的 Guest 服务器软件(特别是 FTP 可能是合适的选择)。

如果你想让名称解析起作用(例如www.yoursite.com),您还需要一个正确配置的 DNS 服务器。

相关内容