logo logo
关于我们

技术分享

技术分享 SSH连接使用NAT模式的Virtualbox虚拟机

SSH连接使用NAT模式的Virtualbox虚拟机

2019-06-11

需求

在Virtualbox中虚拟安装了Linux服务器,Linux服务器提供Web服务。物理主机没有连接路由器或交换机等设备。现有如下需求:

  • 在物理主机Windows系统里通过SSH连接Linux服务器。

  • 可访问Linux提供的Web服务。

前言

在Windows下使用Virtualbox虚拟出一台Linux虚拟机,一般情况下,将Linux虚拟机的网络方式设置为桥接模式,这样Linux虚拟机就相当于独立与PC并行存在,两个系统处于同一局域网,可以相互ping通。但是前提是当前PC连接在路由器或者交换机。如果没有路由器或者交换机等设备使两个系统处于同一局域网,这两个系统就没办法简单地ping通了。

既然目前Linux虚拟机不能使用桥接模式,那就设置成NAT模式(网络地址转换NAT)了吧。NAT模式即虚拟机的网络是完全依赖于物理主机的的网络。在这种模式下,两个系统并不是处理同一局域网,不能简单地直接ping通。但是Virtualbox可以设置在NAT模式下的端口转发规则,通过设置规则使PC可以连接上Virtualbox里的虚拟机。

实践

打开Virtualbox,右击Linux虚拟机,选择设置选项。在设备面板中,选择网络,网卡1连接方式为网络地址转换NAT,点击高级,显示高级设置,如下图:

SSH连接使用NAT模式的Virtualbox虚拟机

点击端口转发按钮打开端口转发规则列表,可以添加或删除规则。

规则中一些术语的解释:

  • 主机:物理主机系统。

  • 子系统:Virtualbox虚拟出来的系统。

  • 主机端口:物理主机系统的端口,将此端口转发到子系统端口。

  • 子系统端口:虚拟机子系统的端口。

下面以添加SSH连接规则为例。

点击右边的绿色加号按钮,规则列表中就会添加一条规则。更改其名称为ssh(这个名称可以随便写的)。协议选择TCP主机IP子系统IP留空不用填写。主机端口填写2222,也可以更改为其它端口,只要不与其它端口冲突即可,物理主机SSH连接虚拟机时将使用此端口。子系统端口填写22,因为SSH连接默认是使用22端口的,所以这个是不能随意填写的,例如最常用的像http协议的话默认是80端口,而ftp协议默认是21端口。填写完毕,点击确定按钮保存设置。

打开Linux虚拟机,安装SSH服务并开启,关闭防火墙。在物理主机Windows系统里就可以使用Putty或者SecureCRT等软件连接Linux虚拟机了,SSH地址写localhost127.0.0.1,端口填写刚才在Virtualbox设置端口转发规则中的主机端口,上例中是使用了2222。如果没有连接成功,请检查Linux虚拟机是否已经安装并开启SSH服务,并要关闭防火墙。

我在Linux虚拟机里安装了Apache和VSFTP,设置Virtualbox端口转发规则如下图所示。在物理主机Windows中,通过localhost:8008127.0.0.1:8008可以访问web网页,通过localhost:2121127.0.0.1:2121可以连接FTP。

SSH连接使用NAT模式的Virtualbox虚拟机

命令行

上面说的是直接在图形化界面设置端口转发规则的,还有一种是使用命令设置的。

打开CMD,定位到你的 VirtualBox 安装目录,例如 “C:\Program Files\Oracle\VirtualBox”。例如我的Linux虚拟机在Virtualbox中的名称为Ubuntu,要添加上例中SSH端口转发规则,则输入如下命令:


1
VBoxManage modifyvm "Ubuntu" --natpf1 "ssh,tcp,,2222,,22"


此命令解析如下:


1
VBoxManage modifyvm "Linux虚拟机名称" --natpf1 "规则名称,协议,主机IP,主机端口,子系统IP,子系统端口"


参考


云祺备份软件,云祺容灾备份系统,虚拟机备份,数据库备份,文件备份,实时备份,勒索软件,美国,图书馆
  • 标签:
  • 云计算

您可能感兴趣的新闻 换一批

现在下载,可享30天免费试用

立即下载

请添加好友为您提供支持
jia7jia_7

请拨打电话
为您提供支持

400-9955-698