VcXsrv 是一款用于 Windows 的开源 X 服务器,它允许在 Windows 系统上显示 Linux 的图形应用程序。当在 Windows 10 上安装并正确配置 VcXsrv 后,通过设置 WSL2 中的DISPLAY环境变量,使其指向运行 VcXsrv 的 Windows 主机的 IP 地址,就可以将 WSL2 中运行的图形应用程序的界面显示在 Windows 桌面上。因此,此时在 WSL2 中运行 gedit,会通过 VcXsrv 在 Windows 上弹出 gedit 自身的图形界面,而不是 Windows 的记事本。
第一步从如下地址下载VcXsrv
VcXsrv Windows X Server download | SourceForge.net
vcxsrv-64.1.20.14.0.installer.exe
第二步安装VcXsrv



第三步运行VcXsrv
安装完成后从桌面图标
运行VcXsrv,弹出界面
Display number: 0设置为0

引申话题:为什么 VcXsrv 要设为 0?
:0 表示:
-
连接到本地(Unix Domain Socket)
-
使用 Display Number
0
WSL2 的默认配置:
在 WSL2 中,/etc/resolv.conf 的 nameserver 是 Windows 主机的虚拟 IP(如 172.x.x.x),而 DISPLAY 环境变量通常设置为:
export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf):0
-
这里的
:0需要与 VcXsrv 的 Display Number 一致,否则无法连接。 -
兼容性问题:大多数 Linux GUI 应用默认尝试连接
:0,设为0可避免额外配置。

勾选(允许 WSL 连接)

下面默认完成后在任务栏显示如下:
第四步在 WSL2 中配置 DISPLAY
在 Ubuntu 终端运行:
echo "export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf):0" >> ~/.bashrc
echo "export LIBGL_ALWAYS_INDIRECT=1" >> ~/.bashrc
source ~/.bashrc

第五步测试GUI依次执行如下命令:
sudo apt update
sudo apt install gedit -y
gedit
运行最后的gedit后弹出文档编辑界面,如下图:

这个就是刚才输入的gedit程序,关于gedit如下:
gedit 文本编辑器的图形界面。
第五步再安装一个计算器到wsl2的ubuntu中,执行如下命令:
sudo apt install gnome-calculator -y
然后再在wsl2中输入看看效果,运行命令:gnome-calculator
受WSL2 的图形限制会报错和Zink 报错,直接忽略即可,等一会后出现如下所示的界面

这样我就可以通过wsl2中进行但应用的界面化调用了。
我们再安装个firefox看看。


运行文件管理器:

显示如下:

总结:Windows 10 访问 Ubuntu GUI 的最佳方案

运行简单GUI工具的话,用vsxsrv+单个应用(mutil多窗口模式)就足够了。
最后需要注意的是,前面的操作都是在root账户下的操作,如果切换普通账号不能不能启动应用界面的话,需要从root账号切换到普通账号,然后依次执行下面的命令:
在普通用户的 ~/.bashrc 或 ~/.profile 中添加:
export DISPLAY=$(awk '/nameserver / {print $2}' /etc/resolv.conf):0
export LIBGL_ALWAYS_INDIRECT=1
然后生效配置:
source ~/.bashrc
这样就可以用普通账号启动相应的软件了。


