WSL2运行图像应用或图形界面
软件图形化界面运行
Windows 端配置
这里我们需要安装 VcXsrv,可以直接在官方 github 仓库中进行下载:VcXsrv
安装好之后直接启动:

这里有四个选项
-
Multiple windows 是多窗口运行,就是把 WSL 中的应用作为一个窗口应用显示到 windows 系统上
-
Fullscreen 是全屏运行,如果选择这一项,建议新建一个桌面
-
One large window 是全屏窗口运行,在我们不使用的时候直接最小化即可
-
One window without titlebar 是窗口全屏话,这样便于我们切出,同时也去掉了标题栏
这里设置显示窗口编号,-1是自动从0分配

这里就是要选择我们的连接方式,默认选择第一个就可以

这里我们要勾选第三项,WSL2 相当于是一个外部网络,所以我们要使用 ssh 进行连接
最后我们点击完成就可以了
WSL 端配置
这里我们要设置 WSL 2 的 X Server 显示设置,首先我们需要知道我们的 WSL 对应的 ip:
在 cmd 中使用 ipconfig 命令查询:

在环境变量中添加如下:
export DISPLAY=[HOST]:[DISPLAY NUMBER]

然后我们使用命令刷新环境变量即可
这样我们就实现了简单的软件图形化界面的使用
桌面环境使用
WSL 安装桌面环境(Ubuntu)
由于我们使用的是 Ubuntu 20.04 版本,所以我们选择直接安装 gnome 桌面环境
直接运行安装命令:
# 安装gnome桌面环境
sudo apt-get install ubuntu-desktop
# 安装相关工具
sudo apt-get install gnome-tweak-tool
Windows子系统下安装的分发版Ubuntu默认不支持systemctl命令,然而systemctl在原生版Ubuntu中是非常重要的,在这里手动安装
在Ubuntu命令行中依次执行如下命令:
git clone https://github.com/DamionGans/ubuntu-wsl2-systemd-script.git
cd ubuntu-wsl2-systemd-script/
bash ubuntu-wsl2-systemd-script.sh
注意:这里可能杀毒软件会出现警告,需要允许程序所有操作或者先行关闭杀毒软件,当看到下面图片所示时代表安装成功
安装成功界面如下:

这时需要重启 WSL 服务,以管理员模式打开 PowerShell,执行:
# 停止服务
net stop LxssManager
# 启动服务
net start LxssManager
# 或者直接一句话
net restart LxssManager
安装远程控制软件 xrdp:
我们每次双击打开的 Ubuntu20.04 LTS 图标都是命令行终端,无法看到桌面环境,所以需要在 Ubuntu 中安装远程控制软件,然后使用 Windows 自带的 mstsc 工具来达到可视化操作 Ubuntu 的目的
# 安装xrdp远程控制服务
sudo apt-get install xrdp
将端口从3389改为3390,因为此前默认的3389端口已保留用于ubuntu shell:
sudo sed -i 's/3389/3390/g' /etc/xrdp/xrdp.ini
配置启动 session,否则远程桌面登录输入密码之后会直接闪退
echo "gnome-session" > ~/.xsession
重新启动 xrdp 服务
sudo systemctl restart xrdp
这时可以查看 xrdp 服务状态
sudo systemctl status xrdp

如图所示,有绿色的 running 代表服务成功运行
之后我们就可以使用我们 windows 系统自带的远程桌面连接软件 mstsc 进行连接即可

这里输入账号密码点击 ok 即可
注意:这里我们一定要使用 xorg 进行连接,在上一步之后可能会有短暂的黑屏,别怕!这不是配置没成功,稍微等待一下就可以看到下面这个图片啦,到此为止说明桌面环境已经成功配置并且可以正常进入啦
这样我们就已经成功连接到了系统:

可视化环境设置中文
首先要安装中文语言包
sudo apt install language-pack-zh-hans
设置中文为默认语言
方法一:
sudo dpkg-reconfigure locales
# 选择 en_US.UTF-8 和 zh_CN.UTF-8
# 选择 zh_CN.UTF-8 为默认语言
方法二:
sudo vim /etc/locale.gen
# 找到 "# zh_CN.UTF-8 UTF-8"并取消注释,然后保存并退出
sudo locale-gen
# 设置默认语言为中文
sudo vim /etc/default/locale
# 将内容修改为
LANG=zh_CN.UTF-8
到这里,重启 WSL Ubuntu 终端即可显示中文,但是运行 gui程序仍然缺少中文字体,安装字体管理工具 fontconfig
sudo apt install fontconfig
安装 Windows 字体,创建 /etc/fonts/local.conf 文件 (可以从目录中其它文件复制后修改获得)
方法一:直接使用 Windows 字体文件夹

方法二:复制 windows 的字体到 /usr/share/fonts/ 下
sudo cp -r /mnt/c/Windows/Fonts /usr/share/fonts/windows

方法三:安装 ttf-mscorefonts-installer
sudo apt-get install --reinstall ttf-mscorefonts-installer
刷新字体缓存
fc-cache -f -v
重新开启 WSL 即可生效
测试:
export DISPLAY=:0.0
gvim &
必要时修改时区:
dpkg-reconfigure tzdata
参考资料
超详细Windows10/Windows11 子系统(WSL2)安装Ubuntu20.04(带桌面环境)