WSL是不支持显示图形界面的,目前只支持命令行。WSL内部使用的是VM,运行真实的linux内核,所以可以运行KDE、Gnome、xfce、lxde等桌面环境的程序包,但是无法直接显示。据说微软会在后续退出WSL的图形界面,在目前,我们可以通过远程连接的方式来访问子系统的图形界面。
这里会在Ubuntu上以Gnome为例,使用xrdp远程共享桌面,在windows上用自带的远程桌面软件访问Gnome图形界面。
WSL的安装以及其他问题参照我的这篇博客:
https://blog.csdn.net/qq_43878324/article/details/113608382
启用systemd服务(非必选)
后面的Gnome和xrdp可能需要用到systemctl,虽然有替代方法,但是建议还是一次性搞到位。
参阅:https://blog.csdn.net/qq_43878324/article/details/113621364?spm=1001.2014.3001.5501
设置Ubuntu国内下载源
下载的东西会比较多,默认的源是外国的,下载速度很慢,这里建议换成国内的源,参见我的这篇博客:
https://blog.csdn.net/qq_43878324/article/details/113619644
安装Ubuntu桌面环境
可以根据自己的喜好安装 KDE、Gnome、xfce、lxde 等桌面环境。Gnome是 Ubuntu 的默认桌面上环境,也是多数发行版的默认桌面环境,我对 Gnome 更熟悉一点,所以这里以Gnome
为例进行安装:
WSL Ubuntu命令行输入:
sudo apt install ubuntu-desktop
安装其他桌面:
#KDE
sudo apt install kubuntu-desktop
#Xfce
sudo apt install xubuntu-desktop
其他桌面可以去百度,理论上Ubuntu系统可以装的桌面环境都可以在WSL2 Ubuntu上装。
安装完可能需要几分钟,中间按照提示操作就可以了。
安装XRDP
sudo apt install -y xrdp
xrdp服务会自动启动,可以通过以下命令查看:
sudo systemctl status xrdp
将xrdp添加到sll-cert
用户组:
sudo adduser xrdp ssl-cert
重启 Xrdp 服务,让刚才的设置生效:
sudo systemctl restart xrdp
连接远程桌面
先在子系统上运行以下命令,查看下虚拟机的IP地址
ip addr | grep eth0
上面选中的部分就是子系统虚拟机的 IP 地址,复制下来。
新版本的windows系统已经支持用localhost来访问子系统了,详见:微软官网
win+R,运行mstsc:
输入刚刚复制的ip地址,端口号默认为3389(ip地址我抹掉了,将就着看):
如果你是Windows 18945以后的版本,可以直接输入
localhost:3389
,强烈建议更新下系统,不然每次子系统重启后都得ip addr | grep eth0
重新获取IP地址。
点击连接后如果出现错误提示弹窗,参见文末的问题排查1进行解决。
输入登录的用户名密码:
如果不能正常显示如下桌面,尝试看看文尾的问题排查2。
注意:wsl2暂时还不支持硬件加速绘图,所以你是在用cpu跑gnome图形界面,可能会比较卡。cpu不太给力的机器,甚至有可能进去后一片漆黑。
问题排查
就一些常见问题给出相关解决办法:
1. 远程桌面点击连接后显示连接失败:
- 如果弹窗说你正在运行一个控制台会话,说明xrdp默认的3389端口已经被其他(控制台)应用占用了,尝试修改xrdp监听的端口
sudo vim /etc/xrdp/xrdp.ini
,修改文件中的port。 - 如果弹窗说无法连接到远程计算机,IP地址不对或者xrdp没有正常运行。使用
ip addr | grep eth0
命令重新看下IP地址,因为每次WSL重启后IP地址都会变(Windows 18945 以上版本直接用localhost就好)。尝试sudo systemctl restart xrdp
重启 xrdp 服务。
2. 可以连接,但是进去后桌面一片漆黑:
- 第一次进入桌面会比较卡,稍等一会看看
- 尝试重启wsl(cmd管理员运行:
net stop LxssManager
和net start LxssManager
) - 尝试
sudo apt install ubuntu-desktop
重新安装下桌面
3.闪退
- 应该是权限的问题,不要用root登录。
关于xrdp
xrdp 配置文件在/etc/xrdp目录。一般不需要对配置文件进行修改。
使用sudo vim /etc/xrdp/xrdp.ini
对配置文件进行修改。
默认的端口号是3389。
xrdp 使用startwm.sh文件启动 X 会话,可以通过编辑 /etc/xrdp/startwm.sh
来使用其他X Window 桌面。
其他
可参照下面的连接查看更多关于WSL Ubuntu:
https://blog.csdn.net/qq_43878324/article/details/113608382