Guest系统端口映射
在VirtualBox NAT网络模式下面,Guest系统对Host系统和局域网内其他的机器都是不可见的,所以Guest上面的任何服务都不能被外界访问到。这样很多情况下,是不能接受的,比如想在Guest系统为Ubuntu的虚拟机上面开启SSH服务,怎么办呢?两个方法:
- 把网络连接方式改成Bridge模式,这样虚拟机的Guest系统就有了自己的IP地址,相当于局域网内的一台主机,这样Host系统和局域网内的其他机器都可以访问他了。
- 在NAT网络模式下,开启端口映射,需要什么服务就映射什么端口数据。
端口映射优缺点
首先介绍一下NAT网络模式下端口映射的优点,首先节省一个IP地址(有些情况下,IP地址资源比较宝贵);其次,这样可以避免Server暴露过多的接口,提供什么服务暴露什么接口,这样保证Server安全性。当然这种方式也有一定的局限性,服务的端口必须是固定的,假如服务的端口是动态的,那么这种方式就没有办法了,比如NFS服务就不能用端口映射来实现。
端口映射启用SSH服务
- Guest系统: Ubuntu
- Host系统: Windows
SSH服务的端口是22端口,理论上可以把Host系统Windows的22端口映射到Ubuntu的22端口。这样做不好,假如有一天Host系统Windows也要在22端口上提供服务就没有办法了,所以我们准备用Host系统的2222端口,映射到Ubuntu的22端口。具体的配置步骤:
- 在Ubuntu中安装ssh server:
sudo apt-get install openssh-server
- 在VirtualBox中配置端口映射:打开设置界面,选择网络选项卡,打开Port forwarding界面:
- 端口映射规则的配置:
SSH服务的使用
在使用SSH服务时,主机参数使用Host主机的IP地址,端口使用映射规则中配置的主机端口,而不是Guest系统的ip和端口。