如何在 NAT 模式下访问 VirtualBox 虚拟机

Posted on Wed, 25 Dec 2024 10:32:22 +0800 by LiangMingJian


需求

在 NAT 模式下,VirtualBox 只能由虚拟机访问宿主机或者外网,宿主机以及外网都不能访问虚拟机。

NAT 模式指网络地址转换模式,在这个模式中,宿主机会充当一个网关,虚拟机自己组建一个局域网,然后通过宿主机这个网关对外网进行访问,宿主机对虚拟机所有网络请求进行转发。因此,在 NAT 模式下,虚拟机和宿主机网络是隔离的,但虚拟机仍然支持上网。

现在,用户需要在 NAT 模式下,从宿主机或外网访问虚拟机,完成如 SSH 登录,网页访问等工作,需要如何解决?

这里不讨论桥接模式,桥接模式将虚拟机视为一台独立的物理设备,允许直接连接到宿主机所在的物理网络,因此,当然可以通过外网访问宿主机。但是,在某些应用场景,比如:IP 资源受限,需要安全隔离,需要多台虚拟机内部访问时,NAT 模式就显得很有必要了。

实现

在 NAT 模式中,可以通过配置端口转发,来实现从外部访问。

在虚拟机设置中,找到:网络 > 高级 > 端口转发,填写需要映射的端口(主机是宿主机外部端口,子系统是虚拟机内部端口),点击确定后,即可通过访问宿主机 IP + 端口来间接访问虚拟机。

比如,当虚拟机开启了 ssh 服务时,需要使用端口 22,则设定子系统端口为 22,主机端口 222(随意填写),那么在虚拟机开启时,主机便可以通过访问 localhost:222 或 127.0.0.1:222,甚至主机 IP:222 来使用 ssh 访问虚拟机。