基于Virtual Box的私有云桌面配置
- 利用NAT技术使得虚拟机可以访问外网
- 利用host-only网卡打通虚拟机和宿主机的连通,实现ping以及ssh的互通
- 了解Virtual Box的网卡配置及联网原理
- 利用windows提供的RPC实现远程访问虚拟机
- 了解CentOS操作系统使用
- 了解ssh的工作方式
配置环境
- 宿主机:Windows(10) (x86 64bit)
- 虚拟机软件:Virtual Box 6.0
- 虚拟机操作系统:CentOS-7-x86_64-DVD-1810
- (最下面也测试除了Windows+CentOS的其他方案)
配置过程
- 安装Virtual Box
下载最新版的6.0即可
安装过程较为简单,这些不再赘述 - 下载Centos镜像文件
选择minimal ISO下载即可 - 启动Virtual Box
点击新建后按下列图示填写:
内存大小分配至少2G以上即可(2048MB)
虚拟硬盘可以使用现有的,也可以现在创建:
创建虚拟硬盘选择VDI即可
动态分配或者固定大小都可以:
虚拟硬盘大小最小30G以上,方便拓展
点击创建即可完成 - 在Virtual Box上对刚刚创建的虚拟机,右键 -> 设置 -> 存储 -> 控制器IDE处:
选择没有盘片,看到右边处的分配光驱,选择1个虚拟光盘文件,打开刚刚下载好的CentOS的镜像文件。 - 安装
Centos系统:
对刚刚已经建立好的虚拟机,双击启动
按下回车键可以会调入安装步骤,也可以自动等待60s跳入
在该安装过程中会先自动安装一部分,等到进度条到达100%以后
进入到选择语言画面,这里我选择了英语:
接下是选择配置的地方:
主要是将NETWORK里面的enp0s3开启:
其他的一些安装都是选择性的,比如software里面的development环境等,如果不安装也可以等到进入到里面在进行安装。
点完以后可能下方处的Begin installation不能点击,这时候需要把其他额外的几个选项都点一遍看一下即可。
点击begin installation以后,这里需要写入USER的信息(名字,密码等)
可以看到当前页面下的进度条(running pre-installation scripts),就会自动安装剩余部分了。
安装完成后,点击Reboot即可,即完成了系统安装
安装后打开,可以发现CentOS是终端界面,不同于ubuntu的桌面界面。
进去以后可以配置开发环境。如yum install wget
vim,g++等C++基本配置的安装等。 - 接下来需要配置虚拟机网卡
虚拟机网卡需要两个:NAT网卡和host-only网卡NAT网卡是用来让虚拟机连上外网的。本质上是虚拟机通过宿主机访问外网。host-only网卡可以使得宿主机和虚拟机连通起来,此时就可以通过ping和ssh来查看是否连通。
配置NAT网卡:- 到Virtual Box界面,点击管理 -> 全局设定 -> 网络。点击右侧的+号即可添加对应的网卡
- 接下来选择刚刚建立好的虚拟机,右键 -> 设置 -> 网络 ->网卡1,选择NAT网络,界面名称填刚刚建立的NAT网卡名称
配置host-only网卡: - 回到Virtual Box 界面,点击管理 -> 主机网络管理器 -> 点击创建。
下面的IPv4地址我写的是192.168.56.1。该地址就是宿主机新加的网卡的ip地址
在宿主机可以查看到: - 点击虚拟机 -> 右键 ->设置 -> 网络 -> 网卡2
建立host-only网卡,其中名称是刚刚建立的host-only网卡的名称
网卡就配置好了。
注意,以上过程都要在虚拟机关闭的情况下进行。
必要时可以重启virtual box或者整个宿主机
- 到Virtual Box界面,点击管理 -> 全局设定 -> 网络。点击右侧的+号即可添加对应的网卡
- 接下来启动虚拟机,验证已经装好了网卡:
输入ip add命令:(类似于ifconfig,每一部分都是1个网卡)
可以看到有三个网卡- 第一个是回环ip地址(127.0.0.1)
- 第二个是刚刚建立好的NAT网卡
- 第三个是
host-only网卡。从这里看到192.168.56.102就是本虚拟机的ip地址
现在尝试在宿主机ping该虚拟机:
可以发现联通了。
再尝试在宿主机用ssh登录该虚拟机:
发现可以登录上了。
注意,这里用ssh命令的时候,格式是ssh + 虚拟机用户名字 + @ + 虚拟机IP地址
- 利用RPC远程登录虚拟机
在利用windows的RPC的时候,需要先安装Virtual box的拓展包
下载完后,找到管理 -> 全局设定 -> 扩展,装入下载好的拓展包即可。
接着对虚拟机 右键 -> 设置 -> 显示 -> 远程桌面-> 服务器端口号设定好(要求该端口不被占用,每个需要远程登录的虚拟机各自有一个端口)
接下来启动虚拟机(可以选择无界面启动)
在宿主机打开远程桌面连接,输入192.168.56.1:2515,这里的IP地址是host-only中设定的ipv4地址,2515端口是刚刚设定好的。
可以看到,现在就可以在不用virtual box打开的情况下,远程登录到虚拟机界面上了。
其他平台
我在OS X系统上测试Ubuntu,上面的过程也是可行的
有一些地方可以有助于修改bug:
- 如果无法ssh,先看能否ping通。不能ping通有可能是因为虚拟机的ip地址和host-only的ip地址不在同一子网上,这时候需要修改或者重新创建一个host-only网卡
- 如果可以ping通,但是无法ssh。需要查看虚拟机上的ssh状态
service sshd status如果没有安装的话:sudo apt-get install openssh-server并启动即可
个人心得
该实验主要是完成虚拟机的安装,云桌面的建立,虚拟机的配置,虚拟机的网卡。
实验过程卡得比较久的主要是需要弄清楚Virtual Box网卡的配置以及作用(NAT和host only),还有最后的RPC处,需要先安装拓展包才能成功。另外作业上提供的那份教程有点久了,一是virtual box的版本已经更新了,跟上边的不太一致。二是有些步骤不详细,部分步骤并没有必要。
如果希望了解Virtual Box的网卡知识,可以了解另一篇我写的博客