在 WSL(Windows Subsystem for Linux) 2 中运行 Linux 图形界面应用

在最近微软更新的 Win10 2004 版本中,WSL 升级为了 WSL 2,并在将来会开始支持 Linux GUI,趁着升级 WSL 2 又想试试图形界面应用,因此决定搞事情。

在这里插入图片描述
没有装 WSL 的可以看官方文档直接装 WSL 2。如果装了 WSL,可以升级成 WSL 2(需要 Win10 2004 版本)。

可以在 Microsoft Store 里装一个 Windows Terminal,直接支持 CMD,PowerShell 和 Ubuntu 操作。

先根据这篇文章把源换一下,下载溜溜的:https://blog.csdn.net/wangyijieonline/article/details/105360138

由于目前还不支持 GUI,因此为了运行 WSL 2 中的 GUI 应用,需要借助 X11 Forwarding。

安装 X Server

Windows 下安装 X11 Server 可以有多个选择,VcXsrv,XMing,X410 等。这里我用 VcXsrv,为什么用这个?因为我看别的教程用了这个。

从 网站 上下好 VcXsrv,双击安装一气呵成。然后桌面上生成 XLaunch 图标,打开之后前两个选项选 “Multiple windows” 和 “Start no client”,最后一页要把 “Disable access control” 选上。
在这里插入图片描述

设置 WSL 中的 SSH 服务

要使用 X11,需要在 WSL 中设置 SSH。

1
2
3
4
5
6
7
8
9
# 删除默认 ssh
sudo apt-get remove --purge openssh-server

# 更新一下
sudo apt-get update
sudo apt-get upgrade -y

# 安装 SSH
sudo apt-get install -y openssh-server

然后修改 ssh 的配置文件,文件是 /etc/ssh/sshd_config
更改项目如下:

1
2
3
Port 222
X11Forwarding yes
X11DisplayOffset 10

最后,开启 OpenSSH 服务

1
sudo service ssh start

然后在 ~/.bashrc 文件里添加下面两句:

1
2
export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0
export LIBGL_ALWAYS_INDIRECT=1

然后执行 source ~/.bashrc 使之立即生效。接下来可以打开一个具有 GUI 的 Linux App 试试,比如说 gvim,成功!
在这里插入图片描述

Reference:
https://medium.com/swlh/get-wsl2-working-on-windows-10-2ee84ef8ed43
https://wiki.ubuntu.com/WSL