首先我们需要安装 VirtualBox
sudo wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
echo "deb [arch=amd64] https://download.virtualbox.org/virtualbox/debian focal contrib" \
| sudo tee /etc/apt/sources.list.d/virtualbox.list
sudo apt update
sudo apt-get install --yes virtualbox-6.1
sudo systemctl status vboxdrv
sudo usermod -aG vboxusers $USER
由于服务器版未安装GUI,因此我们需要远程访问。这需要安装支持 RDP 的VirtualBox扩展包。如果自用这样安装很合适 ,如果安装在生产环境需要许可证。
VBOXVER=`vboxmanage -v | cut -dr -f1`
wget -P /tmp \
https://download.virtualbox.org/virtualbox/$VBOXVER/Oracle_VM_VirtualBox_Extension_Pack-$VBOXVER.vbox-extpack
sudo vboxmanage extpack install /tmp/Oracle_VM_VirtualBox_Extension_Pack-$VBOXVER.vbox-extpack
VirtualBox安装完毕后,我们可以开始创建虚拟机了。下面以安装Ubuntu桌面版为例演示,只要VirtualBox的操作系统都可以安装。
mkdir -p /srv/virtualbox
vboxmanage createvm \
--ostype Ubuntu_64 \
--basefolder "/srv/virtualbox" \
--register \
--name "Test"
vboxmanage modifyvm "Test" \
--memory 1024 \
--nic1 nat \
--vrde on --vrdeport 33890
vboxmanage createhd \
--filename "/srv/virtualbox/Test/Test.vdi" \
--format VDI --size 10240
vboxmanage storagectl "Test" \
--name "SATA" \
--add sata
vboxmanage storageattach "Test" \
--storagectl SATA --port 0 --type hdd \
--medium "/srv/virtualbox/Test/Test.vdi"
vboxmanage storageattach "Test" \
--storagectl SATA --port 15 --type dvddrive \
--medium /tmp/ubuntu-20.04-desktop-amd64.iso
如果宿主机启用了防火墙,需要打开上面例子中设置的端口(33890)。例如,iptables需要做如下调整。
iptables -A INPUT -p tcp --dport 33890 -j ACCEPT
至此,我们可以启动虚拟机了。
vboxmanage startvm "Test" --type headless
然后通过RDP工具连接到虚拟机即可。
另外: 强烈建议对RDP进行身份验证,以确保安全。
=============================
其他参考:
https://ostechnix.com/install-oracle-virtualbox-ubuntu-16-04-headless-server/
https://www.thomas-krenn.com/en/wiki/Headless_Mode_for_Virtual_Machines_of_VirtualBox
https://gist.github.com/elasticskyx/3497312
https://linuxiac.com/how-to-setup-and-manage-remote-virtualbox-headless-server/
https://www.virtualbox.org/manual/ch07.html#idp8971072
https://www.linuxfordevices.com/tutorials/linux/ubuntu-server-on-virtual-box