应用概览
在Windows系统上,有时候我们虽然本地安装了Linux虚拟机系统,但是由于特殊原因导致虚拟机与主体机之间无法复制粘贴文本和文件,但是却有基本的联网功能,此时就可以用本方案解决,即:本地远程桌面方案。
本人由于大作业,需要利用P4编写设计路由协议,老师给的虚拟机文件功能缺失,只能正常联网,无法实现主体机与虚拟机之间文本与文件复制粘贴(主要是影响到我Ctrl+C和Ctrl+V了,hhh),想想这个头疼的问题如果不解决,那我得一点点的手敲命令和借助网络传输文件,那估计得崩溃。。。
主要思路就是,虚拟机上面部署远程桌面,然后利用NAT端口映射实现虚拟机环境和主体机环境的网络交互,最后利用主体机的远程桌面连接Linux虚拟机,利用远程软件实现文件文本的复制粘贴,并且相当程度上还提升了视觉体验(想想虚拟机那破烂界面能跟正统的远程桌面比么?)
由于是本地网络之间交互,所以几乎没有网络延迟。当然,如果是利用远程物理机和虚拟化软件实现的Linux系统,也可以参考本方案进行部署,商业前景可观!
第一步:主体机利用虚拟化软件创建虚拟机
虚拟化软件用老大哥VMware(优点功能强大,缺点软件收费,得找破解版),或者开源软件VirtualBox都可以(优点开源免费,缺点可能功能稍弱)
此次演示,主体机使用win10或者win11系统,虚拟机使用ubuntu系统,虚拟化软件使用VirtualBox,创建虚拟机后界面如下所示:
VMware的操作也是类似的,得先有虚拟机。
第二步:主体机与虚拟机之间网络环境NAT
主体机和虚拟机并不在同一个子网内,主体机使用外部的真实子网,虚拟机使用的内部虚拟子网,我这主体机的子网是10.192.0.0/16的真实子网,而虚拟机的子网是192.168.65.0/24的虚拟子网。为了能够进行远程桌面的正常通信,必须进行NAT地址端口映射。
点击虚拟机设置界面,里面有一个设置是针对网络配置的(VMvare需要编辑–>网络编辑器进去设置):
VirtualBox对应界面:
VMware对应界面:
点击端口转发或者NAT设置,里面添加NAT端口映射,将虚拟机的远程桌面端口(端口号为3389)映射出来。此处外部的端口号我随便设置为6666,主体机远程桌面时用它。
VMware对应界面:
VirtualBox对应界面:
第三步 Ubuntu虚拟机配置远程服务
sudo apt install xrdp
sudo systemctl enable --now xrdp
sudo ufw allow from any to any port 3389 proto tcp
以上指令分别实现:安装远程桌面服务器程序xrdp,安装完成后启动xrdp程序,打开防火墙端口3389
注意,执行完上述步骤后,退出Ubuntu当前账户(注意是Log out,而不是shutdown直接关机了),退出账户后远程服务进程依然会后台运行的。Ubuntu账号没退出桌面显示会异常
退出后,界面大概这样子:
第四步:主体机执行远程桌面连接
此后,我们再也不用管虚拟机里面那一堆破烂玩意了,只有它开机着就行。
进去后,大概这样子:
输入用户名和密码就可以了。
遇到桌面异常,重启桌面服务进程就行(或者重启系统):
sudo systemctl restart xrdp.service