来来回回装了十几次Ubuntu虚拟机,每次都是随手百度教程,每次都会遇到各种坑,有的是软件版本问题,有的是文章本身的错误,总要浪费一些时间,所以决定自己写个教程,只要严格按照下面给出的软件版本,保证没有问题。
一、准备工作
1、Virtual Box (Ver:5.2.22)
下载地址:https://www.virtualbox.org/wiki/Downloads
安装教程请自行搜索,基本是无脑下一步
2、 Ubuntu Server(Ver:18.10)
下载地址:https://www.ubuntu.com/download/server
安装教程:https://baijiahao.baidu.com/s?id=1617759207170584976&wfr=spider&for=pc
这是别人写的,不过其实也是无脑下一步
3、XShell(Ver:5 Build 1339)
下载地址:https://www.netsarang.com/download/down_form.html?code=522
这是正版地址,破解和安装请自行百度
二、网络配置
首先安装ssh支持,这里一定记得先更新源再安装,我开始没有更新,结果ssh server正常运行但是XShell依然无法正常使用
sudo apt-get update
sudo apt-get install ssh
安装完你还是无法用XShell远程访问Ubuntu,这是由于virtualbox网络默认使用的是NAT(网络地址转换)方式联网,虚拟机并没有真正的IP供外部访问。
这时你有两个方案:
1、桥接+静态IP
如果你去百度,大部分教程会让你选择桥接方式联网
VirtualBox设置-网络,连接方式选择 桥接网卡
但是这种方式由于虚拟机IP是DHCP自动分配,每次开启服务器IP都会变动,显然很不方便
于是教程又会教你去系统中设置静态IP
这里遇到一个大坑!
由于Ubuntu Server18不仅不能像desktop版那样在图形界面里设置IP,而且18和之前的16 17 IP配置方式不同!
如果你的Ubuntu版本小于18,请参考:https://blog.csdn.net/mdw5521/article/details/79270035
如果你的Ubuntu版本大于等于18,请参考:https://blog.csdn.net/wuyoulv/article/details/81001503
2、NAT+端口转发(推荐)
桥接+静态IP改动很多,费时费力,而且博主的笔记本经常在公司和家里切换,ip段变化不得不放两个文件来回切换IP配置。
其实VirtualBox提供了端口转发方案,帮助你把指定本地端口号映射到虚拟机中的指定端口号,这样你就可以直接访问 127.0.0.1这个IP,我推荐大家使用这个方案,因为他不需要配置Ubuntu系统,用起来更方便
(这里我参考了此文:http://www.cnblogs.com/lxg0/p/6413965.html 作者在文中也尝试了配置两个网卡,切换使用静态IP和端口转发,有兴趣可以试试)
具体操作如下:
1.VirtualBox设置-网络,连接方式选择 网络地址转换
2.点击最下面的端口转发,配置你的本地转发端口号,例如9022(这个随意设置),因为我们要用ssh连接系统,这里子系统端口号设为22
三、进阶配置(后台启动虚拟机)
完成一二两步后你已经可以顺利使用XShell连接Ubuntu Server
(不会XShell连接设置可以看这里:https://jingyan.baidu.com/article/48206aeada2e41216bd6b377.html)
但是这还不够
每次启动服务器都得先双击打开virtualbox,然后双击打开你的虚拟机,等他启动了再打开XShell,这不仅操作麻烦,而且virtualbox自带的终端界面不好用还在状态栏占地方
能不能通过命令再后台启动我们的虚拟机呢?答案是肯定的
这里我参考了这篇文章:https://blog.csdn.net/kl28978113/article/details/54340683
文章中提供了很多的cmd命令来控制virtualbox,比如查询服务器列表,查询启动的服务器,后台启动服务器,关闭服务器等。
平时为了方便开启可以写个*.bat文件
@echo off
cd C:/Program Files/Oracle/VirtualBox
.\VBoxManage startvm MyServer1 -type headless
pause
但是实际操作后我遇到了三个坑
1.由于我的virtualbox装在C盘,win10下*.bat文件必须以管理员身份运行才能被正确执行
2.除了服务器列表和后台启动服务器这两个命令,其他命令并不能正确生效,尤其是关闭服务器命令,会导致服务器被锁死不能关也不能开,可以直接在任务管理器中结束虚拟机进程(virtualheadless开头的进程,很容易看到)
2.如果第二步选择了桥接联网方式,那么后台启动服务器后,本地可以ping通,但XShell无法正常访问虚拟机,这个应该是有办法解决的,但是因为我选择了端口转发方式,就没有研究解决方案
四、总结
经过漫长的配置,终于可以用XShell愉快的操作Ubuntu了,后面我也会抽时间陆续总结一些Ubuntu上常用软件的安装和使用,如果大家在安装配置中遇到什么问题,欢迎留言交流。