有个奇葩需求,在Linux服务器(无界面,不能上网)上使用一些新的框架(如docker等)总是出问题,于是想着在Linux上装一个高版本的Linux虚拟机,于是有了下面的折腾经历。
1. 在Linux服务器上安装VirtualBox的Linux版本
下载链接:Linux_Downloads – Oracle VM VirtualBox,可以根据自己的需求下载相应版本的virtual box。
安装命令:sudo rpm -ivh VirtualBox-xxxxx.rpm
添加用户组:sudo usermo -a -G vboxusers root
管理命令:vboxmanage
2. 在能上网的Windows机器上安装virtual box(具体不再赘述)
3. 在能上网的Windows机器上配置Linux虚拟机的基本功能(我装的是Kali虚拟机)
- 下载Kali镜像地址:Kali镜像下载地址
- 通过windows virtual box的导入卡里ova镜像。
- 通过界面方式启动虚拟机,在虚拟机上安装必要的软件环境,如docker、python等。
- 配置kali虚拟机内部的的ssh服务,并且设置为开机启动(vim /etc/rc.local 添加命令:service ssh start)
- 通过virtual box界面导出配置好的系统ova镜像
- 将导出的ova镜像,拷贝到Linux服务器上
4. 在Linux服务器上导入配置好的虚拟机ova镜像
- 导入Kali镜像:vboxmanage import kali-linux-xxx.ova提示用户进行个性化配置,我自己重新设置了一些cpu和内存,方法如下:
vboxmanage import kali-linux-xxx.ova --vsys 0 --eula accept --cpus 6 --memory 8192
- 查看是否安装成功: vboxmanage list vms(如果有刚才安装的镜像,说明安装成功)
- 可以修改虚拟机,如:
vboxmanage modifyvm kalixxvm --name kali --memory 16000 --cpus 8
- 启动系统:vboxmanage startvm xxxxvm --type headless(必须配好ssh服务,否则无法登录)
- 查看是否启动成功:vboxmanage list runningvms(如果有启动的镜像,说明启动成功)
- 关闭系统:vboxmanage controlvm xxxxvm poweroff
5. 配置端口映射实现远程登录
- 配置端口转发规则:vboxmanage modifyvm xxxxvm --natpf1 "ssh,tcp,,2222,,22"
- 在宿主机测试登录:ssh root@localhost -p 2222(如果登录成功,说明配置成功,否则可能是ssh服务没有启动)
- 如需要可以删除:vboxmanage modifyvm xxxxvm --natpf1 delete "ssh"
- 如需配置其它的端口转发策略,请按照上面方法设置
6. 在虚拟机上部署服务
在虚拟机上部署服务时,需要打开相应的端口映射,否则无法成功。
7. 设置与主机共享的文件夹
关机状态下执行:vboxmanage sharedfolder add kali --name sharedfolder --hostpath hostshare-vbox
挂载共享文件:mount -t vboxsf sharedfolder /mnt/hostshare
开机自动挂载:vim /etc/rc.local (输入上一步代码)
参考文献:
[1] Tech Article: Controlling VirtualBox from the Command Line — oracle-tech