写本篇文章的初衷,主要是在 Windows 上使用 PyCharm 连接 WSL2 中 Python 解释器时,感觉没啥用处,非常不友好。于是,就联想到是否可以给 WSL2 安装桌面,然后在 Windows 端远程进行连接。百度了一番,发现这个方法是可行的,搞好之后就可以直接在 WSL2 中使用 PyCharm 了,想想就很开心,开干吧! 💪

目前有 2 种实现方式:

  1. Windows 安装桌面连接工具(VcXsrv 或者 XMing,这两种大同小异),WSL2 端则需要安装桌面和进行环境配置
  2. 在 WSL2 端安装 xrdp,桌面可选择 Xfce4(其他可供选择的桌面有 Ubuntu-Desktop),桌面选择的话个人建议还是使用 xfce,毕竟它是轻量级的。

    1. ⭐推荐:VcXsrv + Xfce4

    第一种方案是目前找到说流畅度不错的,个人也推荐采用这一种方式。

首先需要在 Windows 端下载 VcXsrv,并进行安装。

Windows 下打开 XLaunch,
image.png
image.png

然后 WSL2 安装 Xfce4:

  1. $ sudo apt update
  2. $ sudo apt install xfce4 xfce4-terminal
  3. # 安装字体
  4. $ sudo apt-get install ttf-ubuntu-font-family fonts-droid-fallback

~/.zshrc 文件中添加如下内容,完成后执行 source ~/.zshrc

  1. export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0

终端下执行 startxfce4 或者 xfce4-session 启动 Xfce4,显示连接失败,需要将 127.0.0.1 替换成 WSL2 IP,再重新尝试。

如果觉得分辨率太低,可以自行百度下如何调整分辨率。在安装了 PyCharm 之后,还是觉得太卡了,放弃😂。

2. Xrdp + Xfce4

另外一种实现方式则是采用 Xrdp + Xfce4,操作全部在 WSL2 端进行:

  1. $ sudo apt install -y xrdp xfce4 xfce4-terminal
  2. # 启动Xrdp
  3. $ sudo service xrdp start
  4. * Starting Remote Desktop Protocol server [20211109-11:31:36] [DEBUG] Testing if xrdp can listen on 0.0.0.0 port 3389.
  5. [20211109-11:31:36] [DEBUG] Closed socket 6 (AF_INET6 :: port 3389)
  6. $ sudo ufw allow 3389/tcp # 如果开启了防火墙,则需要开启 3389 端口

然后通过 Windows 自带的远程桌面连接软件来连接 WSL2 桌面,点击 OK 之后就会出现 WSL2 桌面了。
image.png

⚡ 个人不推荐这种方式,尝试下来发现右击菜单都是卡的,体验非常差。

2.1 常见问题