本文将会介绍从虚拟机的新建到ubuntu server
的安装,不是桌面版,不包含GUI。并将其置于后台运行的全过程。因为操作差别很小,所以无论是使用windows
还是mac
系统的人都可以通过本文来快速部署一个ubuntu
虚拟机。本文包含以下内容:
-
VirtualBox
新建虚拟机并安装Ubuntu
- 配置
Ubuntu
的远程连接 -
VirtualBox
后台运行Ubutnu
新建虚拟机
VirtualBox
的安装这里就不再赘述了,直接用后面的链接下载安装就行 下载 - VirtualBox ,下面讲一下如何新建一个虚拟机。
其实新建虚拟机和安装虚拟机总结一个子就是 莽,过程非常简单,基本就是无脑下一步,下面我就把新建虚拟机的截图放一下,大部分都可以通过下面的图片名字知道怎么做,有需要操作的地方我会做具体讲解:
新建虚拟机
下面教程将以 mac 系统来演示,不过 windows 和 mac 的差别除了长得不一样没什么区别了。所以,做就完事了。首先打开VirtualBox
,点击这个巨大醒目的 新建 按钮。
设置虚拟机名称及类型
然后这一步怕不是操作最多的一步了,填写好名字之后选择系统类型为 Linux,再选择版本为 Ubuntu(64-bit)即可,这里需要注意如下两点:
- 该步骤并不会去具体安装虚拟机,而是 将虚拟机自动设置为最适合安装你选择的系统的状态。
- 选择的版本位数要和你下一步下载的
Ubuntu
镜像位数保持一致,但这都 9102 年了,我不信还有人会去安 32 位的系统。
选择内存
选择虚拟机内存,除非电脑太弱,否则直接默认
选择硬盘
选择虚拟机硬盘,直接默认
选择硬盘类型
选择要创建的新硬盘类型,依旧默认
选择存储方式
动态,果断动态
选择存储位置
这里选择存储的位置,在 windows 下,如果你 c 盘空间太小,我才会建议你换到其他盘上,不然一律选择默认位置。
创建完啦
然后就完事了,下一步咱们来装系统
安装 ubuntu
首先去 ubuntu
官网上下载稳定版LTS
的镜像。链接在这 下载 - Ubuntu 18.04 Server。注意!本教程安装的是Server 版本的 ubuntu!所以在网上搜的桌面版的教程或者问题解决不一定会适用!出问题了请在搜索时加上 server。然后,启动虚拟机,选择刚才下载的镜像:
之后?点回车就完事了。真的是一直点,不信就去看官方文档 [tutorial-install-ubuntu-server](https://tutorials.ubuntu.com/tutorial/tutorial-install-ubuntu-server?_ga=2.29582839.936945077.1561361562- 762545357.1561361562#2)。回车到下面这一步的时候你可能会发现回车不动了,按 下键 选择continue
再回车。
然后就到这一步了,分别填写下面的内容之后Done
一下:
- 你的名字 随便
- 你服务器名字 随便
- 你的登录用户名
- 你的密码
- 重复你的密码
安装 openssh-server
这个是用来远程连接的,安就完事了,只选第一个就行。
安装额外软件
然后它会让你选是不是要安装额外的常用服务器软件,想装啥装啥,我啥都不想装,所以我直接点了Done
:
等待安装完成
等有三五分钟,安装完成,在Reboot Now
上回车:
移除安装介质
重启之后显示如下画面,问题不大,不用回车,直接用power off
关闭虚拟机,然后啥都不用干直接重启虚拟机,你就会发现,诶~进去了:
然后呢,我们配置下安装好的虚拟机,让他可以进行远程连接。
ubuntu 远程连接
做一步操作是因为,在virtual box
中打开的命令行窗口他真的是个纯粹的命令行窗口,平时常用的鼠标复制一行指令或者上文刷出的信息然后粘贴他就完全做不到,只能手打。这谁顶得住。而且用了远程连接之后就可以让virtual box
后台运行,这样就舒服多了。
安装完成后启动虚拟机,等他刷完一大堆OK之后就可以看到停留在了如下界面:
ubuntu 18.04.2 LTS worker1 tty1
worker1 login: _
然后输入你在安装时配置的用户名,再输入密码时就可以成功登陆系统了。
安装open-ssh
这个咱们安装系统的时候已经安好了,这里也顺便提一下。远程连接需要安装open-ssh
服务,依次执行下列三条命令即可。
# 切换为 root 权限 需要输入当前用户密码
sudo -s
# 安装 ssh 服务
apt-get install ssh
# 安装 openssh-server 服务
apt-get install openssh-server
开放 root 用户
首先要说的是,这个教程安装的是ubuntu server
版本,网上的那些教程里用/usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf
或者/etc/lightdm/lightdm.conf
来配置root
用户的都不用看,人家是desktop
版本的,咱们服务器版没这玩意。
好,下面回归正题,开放root
用户首先需要配置root
的密码,然后在ssh
的配置文件里启用root
登录就可以了。下面的命令可以修改root
的密码:
sudo passwd root
回车之后他会弹出来让你输入密码并确认,正常确认即可。然后需要配置ssh
连接。首先打开配置文件,这一步如果找不到的话回头看一下ssh
服务有没有正确安装:
sudo vi /etc/ssh/sshd_config
然后做如下修改,如果没有找到对应配置项直接在文件末尾输入即可:
# 允许 root 登录
PermitRootLogin yes
# 允许密码登录
PasswordAuthentication yes
修改完了:wq
保存退出,然后重启ssh
服务即可
sudo service sshd restart
确认网络正常
ok,到此服务器中的配置就已经完成了,接下来需要确认虚拟机和宿主机之间的网络连接情况。怎么确认呢,首先要保证虚拟机可以访问到宿主机:
虚拟机访问宿主机
- 宿主机打开命令行,获取自己的 ip 地址。
- windows 使用
ipconfig
- mac 使用
ifconfig
- windows 使用
- 打开虚拟机
ping
刚才拿到的 ip 地址。
宿主机访问虚拟机
宿主机访问虚拟机有两种方式 NAT网络地址转换 和 桥接网卡。这里推荐第一种 NAT网络地址转换,注意!下面的配置不支持多虚拟机之间相互访问,要想完成该功能可以参考 virtualbox 虚拟机组网。
- 关闭虚拟机,打开虚拟机配置,依次选择 网络地址转换 > 高级 > 端口转发。
- 在端口转发页面将 虚拟机的 22 端口 转发到宿主机的 2201 端口。之所以这么搞,是因为我们只需要虚拟机的 22 端口进行
ssh
连接,所以只转发这个端口即可,至于转发到宿主机的 2201 端口,这个可以随便填,只要不占用就行。
- 设置完成后一路确认回去,然后重启虚拟机获取 ip 地址,如果发现虚拟机的 ip 变成了
10.0.xxx.xxx
的形式,就说明修改成功了。
这里要提一下,虚拟机是使用网络地址转换模式配置网络的话,宿主机是无法使用虚拟机的 ip 地址访问到对应的虚拟机的。好了下面说一下为什么不推荐使用 桥接网卡 模式配置连接。
使用桥接网卡
启用桥接网卡只需要将网络模式设置为桥接网卡即可。桥接网卡可以把虚拟机映射到局域网的一个真实 ip 地址之上,和宿主机在网络上属于同一层,所以可以相互ping
通。
那为什么不用桥接网卡呢?因为,这个 ip 地址可能会随着网络环境的变化而发生改变。如果你不想之后使用过程中出现莫名其妙的访问不到的问题的话,就老老实实用网络地址转换模式就好。
连接
上面这几步做完了之后就可以直接在宿主机上进行连接了,无论是putty
、Xshell
还是SecureCRT
都可以,因为新建连接的过程大同小异,所以下面就简单放出要配置的数据:
- 登录协议:SSH2
- IP地址(host主机):127.0.0.1 因为使用了NAT转换将虚拟机端口转发到了本机上
- 端口号:2201 这个填上一步在端口转发里配置的主机端口,不一定是2201
- 登录用户名:root
然后 输入密码 并 确认连接密钥 既可成功连接:
到此连接成功,下一步就是将虚拟机放到后台执行,这里贴一个apt
换国内源的教程 apt切换为清华源 ,推荐换一下。
后台执行 ubuntu
其实VirtualBox
自带了一套命令行工具,所以我们就可以通过该工具快速的进行部署,想要使用该工具:
-
windows 上需要先切换至
VirtualBox
根目录下,然后即可使用VBoxManage.exe
调起命令行,使用VBoxManage.exe -v
检查命令行是否可用 -
mac 上可以直接在全局使用
VBoxManage
进行操作,使用VBoxManage -v
检查命令行是否可用
接下来介绍几个常用的命令,我们可以通过下述几条命令让虚拟机在后台运行,注:下列命令都是mac上的使用方式,要在windows上只需将VBoxManage
替换成VBoxManage.exe
即可,(注意先切换至跟目录下):
列出虚拟机
VBoxManage list vms|runningvms
使用该命令可以显示虚拟机的名字和 uuid ,使用VBoxManage list vms
列出所有可用虚拟机,使用VBoxManage list runningvms
来列出正在运行的虚拟机。之后我们就可以通过这两者来调用虚拟机,为了方便起见,我在下文都使用<your-vm-name>
代替虚拟机名字来描述命令。
启动虚拟机
VBoxManage startvm <your-vm-name> --type headless
startvm
命令可以通过 虚拟机名称 或者 uuid 启动一台虚拟机,通过指定其type
为headless
可以让虚拟机在后台运行。
关闭虚拟机
VBoxManage controlvm <your-vm-name> acpipowerbutton|poweroff
向指定虚拟机发送信号,acpipowerbutton
是关机信号,poweroff
是强制断电信号。
掌握了上述几条命令后就可以在后台运行虚拟机了,为了方便起见还可以将其写成脚本来一键执行,windows 可以用批处理,mac 直接做shell
脚本即可,内容简单这里就不再赘述。