Virtualbox NAT模式下配置端口映射

转载 2012年03月27日 10:12:34

在VirtualBox NAT网络模式下面,Guest系统对Host系统和局域网内其他的机器都是不可见的,所以Guest上面的任何服务都不能被外界访问到。这样很多情况下,是不能接受的,比如想在Guest系统为Ubuntu的虚拟机上面开启SSH服务,怎么办呢?两个方法,1、把网络连接方式改成Bridge模式,这样虚拟机的Guest系统就有了自己的IP地址,相当于局域网内的一台主机,这样Host系统和局域网内的其他机器都可以访问他了。2、在NAT网络模式下,开启端口映射。需要什么服务就映射什么端口数据。今天我以VirtualBox的guest系统Ubuntu系统开启SSH服务为例来介绍怎么配置端口映射。

     首先介绍一下NAT网络模式下端口映射的优点,首先节省一个IP地址(有些情况下,IP地址资源比较宝贵);其次,这样可以避免Server暴露过多的接口,提供什么服务暴露什么接口,这样保证Server安全性。当然这种方式也有一定的局限性,服务的端口必须是固定的,假如服务的端口是动态的,那么这种方式就没有办法了,比如NFS服务就不能用端口映射来实现。

     下面介绍怎样在VirtualBox的Guest系统Ubuntu中启用SSH服务,Host系统为Windows。SSH服务的端口是22端口,理论上可以把Host系统Windows的22端口映射到Ubuntu的22端口。这样做不好,假如有一天Host系统Windows也要在22端口上提供服务就没有办法了,所以我们准备用Host系统的2222端口,映射到Ubuntu的22端口。

1、首先从命令行进入到VirtualBox安装目录。

2、在安装目录下面,目录下面有VBoxManage.exe程序。如果你的VirtualBox版本是3.2之前的版本,请执行如下的命令:

VBoxManage setextradata "Linux Guest" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP
VBoxManage setextradata "Linux Guest" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 22
VBoxManage setextradata "Linux Guest" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 2222

    其中“Linux Guest”是你虚拟机Ubuntu系统的名称,pcnet表示Ubuntu选的是PCNet的网卡,0表示第一块网卡,guestssh是自定义的名字。TCP表示只映射TCP协议的数据,当然也可以设置成UDP协议数据映射的。

    通过以上命令就可以完成Host Windows系统2222端口到Guest Ubuntu系统的端口映射了。当然需要三个命令来完成端口映射挺麻烦的,Oracle公司也这样认为。在最新的3.2版本中,VirtualBox简化了端口映射的步骤,只要一条命令就可以了。

VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,,22"

     “VM name”就是Guest系统的名字,guestssh还是用户自定义的名字。你可能发现第三个参数和第五个参数空白了,是什么意思呢?当Host系统有多块网卡的时候,通过第三个参数指定那款网卡的2222端口映射;如果Host系统有多块网卡时,通过第五个参数指定那个网卡的22端口接收数据。

VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,10.0.2.19,22"

     以上的命令式将Host系统2222端口的数据映射到Guest系统的10.0.2.10网卡的22端口。

3、已经设置好了端口映射,现在登录到Ubuntu中,安装SSH server。

sudo apt-get install openssh-server

4、在Windows平台下面用ssh工具,通过2222端口登录到Ubuntu就可以了。也可以从局域网内的机器上,用SSH工具,通过Host机器的2222端口登录到Ubuntu的ssh服务。

     至此,Ubuntu的SSH服务已经暴露在局域网了。通过上面的描述可以看到在VirtualBox3.2版本中端口映射已经做得比较简单,并且非常完善了。

     如有错误欢迎指正。

相关文章推荐

Virtualbox NAT模式下配置端口映射

在VirtualBox NAT网络模式下面,Guest系统对Host系统和局域网内其他的机器都是不可见的,所以Guest上面的任何服务都不能被外界访问到。这样很多情况下,是不能接受的,比如想在Gues...

VirtualBox下使用NAT模式实现外部访问guest(端口映射)

虚拟环境:Host是Windows XP,Guest是Fedora Linux,虚拟机是VirtualBox2.06。        用过VB都知道,默认网络配置下(NAT),Guest是对Hos...

VirtualBox网络NAT方式的端口映射

VirtualBox下安装虚拟机,使用NAT的网络方式(默认方式),使用非常简单,不需要进行额外的设置(VmWare还需要将地址修改为静态ip),也不需要使用额外的驱动。在安装完系统后,直接就可以上网...

VirtualBox虚拟机网络环境解析和搭建-NAT、桥接、Host-Only、Internal、端口映射

如果出现主机无法ping通虚拟机的情况,请首先确认虚拟机防火墙已关闭。 一、NAT模式 特点: 1、如果主机可以上网,虚拟机可以上网 2、虚拟机之间不能ping通 3...

VirtualBox虚拟机网络环境解析和搭建-NAT、桥接、Host-Only、Internal、端口映射

VirtualBox虚拟机网络环境解析和搭建-NAT、桥接、Host-Only、Internal、端口映射 由于前几天老师要检查大作业,而我们的数据库是放在虚拟机里的(不想在本机里放太多东西,保...

VirtualBox NAT 端口映射(3.2.0版本以上)搭建web服务器

VirtualBox 一直以来都是支持 NAT 端口转发,在 3.2.0 版本里,更改了设置办法,命令非常的简单:VBoxManage modifyvm "VM name" --natpf1...
  • uuleaf
  • uuleaf
  • 2011-01-27 10:13
  • 2263

【原创】Ubuntu监测动态环境(发送视频到邮箱、NAT模式下端口映射)

Step1  # apt-get install motion
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)