必须启用wslg:需windows 11 22h2(≥22621)及以上版本,勾选“适用于linux的windows子系统”和“虚拟机平台”,重启后执行wsl --install -d ubuntu,echo $display应输出:0,再运行xeyes等gui应用即可。

在 Windows 11 上让 WSL2 直接运行 GUI 软件(如 gedit、xeyes、Gazebo),无需手动装 X 服务器,必须启用微软内置的 WSLg 图形子系统,它依赖内核级 Wayland 合成器与 PulseAudio 音频转发,不是所有 Win11 版本默认开启。
确认系统基础条件是否满足
打开“设置 → 系统 → 关于”,查看“Windows 规格”下的“版本”是否为 22H2(内部版本 ≥ 22621)或更高;低于此版本无法启用 WSLg,强行配置会失败。
按 Win + R 输入 optionalfeatures.exe,检查“适用于 Linux 的 Windows 子系统”和“虚拟机平台”两项已勾选;未勾选则 GUI 支持完全不可用。
必须重启电脑——这是硬性前提,【不重启会导致 WSLg 启动时静默失败,$DISPLAY 为空,且 /proc/sys/fs/binfmt_misc/WSLg 读取不到 enabled】。
一键部署并启用 WSLg(推荐给全新安装用户)
以管理员身份打开 Windows Terminal 或 PowerShell,执行:
wsl --install -d Ubuntu
该命令自动完成:启用功能 → 下载最新 WSL 内核 → 安装 Ubuntu LTS 发行版 → 提示重启。重启后首次启动 Ubuntu,按提示设置用户名密码。
登录终端后运行:echo $DISPLAY,输出应为 :0;若为空,请先执行 wsl --shutdown 再重开终端。
安装测试工具:sudo apt update && sudo apt install -y x11-apps,然后直接运行 xeyes —— 眼睛窗口应在 Windows 桌面弹出并随鼠标移动。
为已有 WSL 发行版升级至 WSLg 就绪状态
方法一:强制更新内核并切换模式
① 管理员 PowerShell 中运行:wsl --update
② 查看当前发行版名称:wsl -l -v,记下 NAME 列(如 Ubuntu-24.04)
③ 执行:wsl --set-version Ubuntu-24.04 2(将 Ubuntu-24.04 替换为你自己的发行版名)
④ 关闭所有实例:wsl --shutdown
⑤ 重新打开该发行版终端,运行 cat /proc/sys/fs/binfmt_misc/WSLg,若返回内容含 enabled 字样,说明 WSLg 已激活。
方法二:验证 DISPLAY 是否自动生效
运行 echo $DISPLAY,输出为 :0 即可直接运行 GUI 应用;若仍为空,说明 WSLg 未加载成功,需检查是否遗漏重启步骤或内核版本过低。
排查常见失效场景
运行 gedit 报错 “Unable to init server: Could not connect: Connection refused”,大概率是 DISPLAY 未设或 WSLg 未启用,不要尝试手动 export DISPLAY,WSLg 下该变量由系统自动注入。
如果已确认 WSLg 启用但部分 Qt 应用(如 qgis)闪退,可能是缺少平台插件,临时补装:sudo apt install -y qt5ct libqt5waylandclient5。
企业环境中若组策略禁用了 Windows 功能修改权限,改用 Microsoft Store 安装 Windows Subsystem for Linux Preview 套件,该路径经微软签名验证,默认启用 GUI 支持,无需管理员权限。











