假设
windows 10系统,或更新
windows已安装WSL2 ubuntu系统
windows已安装《Microsoft Store》中的 《Terminal》即终端软件
windows已安装 《Chocolatey》工具,见参考连接1
WSL ubuntu已安装《git》工具
WSL ubuntu安装Gnome桌面
WSL的连接ubuntu的终端中输入如下命令安装桌面
sudo apt-get install ubuntu-gnome-desktop
程序包不小,可能需要等待一些时间。可以尝试fast-apt工具。
配置当前用户的.bashrc文件
vi ~/.bashrc
末尾添加如下内容,保存
export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):0.0
export LIBGL_ALWAYS_INDIRECT=ON
生效
source ~/.bashrc
windows安装VcXsrv软件
管理员身份打开windows的终端,执行下面的语句
choco install vcxsrv
若choco命令无法识别,见参考一节连接1
配置
安装后打开《XLanunch》程序
Display settings界面
可以保留默认值,推荐下面的配置,如下图
选择 "One large window",后面可以手动调节窗口大小
Display number:填0(默认-1也可以)

Client startup界面
保留默认 "Start no client" 选项即可

Extra settings
需要将第3个选项"Disable access control" 选上,否则WSL ubuntu终端里启动图形程序会报如下错:Authorization required, but no authorization protocol specified

"下一步" 即可,等待桌面客户端连接。
检查WSL ubuntu和VcXsrv是否通达
WSL ubuntu 终端,运行如下命令
xeyes
VcXsrv中显示如下

这时,VcXsrv已能显示WSL ubuntu中的图形界面程序了。
ubuntu 启动桌面
wsl ubuntu终端中执行如下命令启动桌面
sudo gnome-session
注:ubuntu未安装《systemctl》默认情况下会启动不成功,systemctl安装方式见下一节。
WSL ubuntu安装systemctl程序
wsl ubuntu终端执行下面的命令
git clone https://github.com/DamionGans/ubuntu-wsl2-systemd-script.git
cd ubuntu-wsl2-systemd-script/
bash ubuntu-wsl2-systemd-script.sh
# Enter your password and wait until the script has finished
重启wsl ubuntu,测试 systemctl 命令
关闭
非 wsl ubuntu的终端中执行下面的命令
wsl --shutdown
启动 WSL ubuntu
WSL ubuntu命令行中执行systemctl命令,若显示一些列表单元而无错误信息则表示安装成功。
systemctl
systemctl安装成功后,先打开VcXsrv,然后使用上一节中的 "ubuntu 启动桌面" 命令,让VcXsrv显示ubuntu gnome桌面。