写本篇文章的初衷,主要是在 Windows 上使用 PyCharm 连接 WSL2 中 Python 解释器时,感觉没啥用处,非常不友好。于是,就联想到是否可以给 WSL2 安装桌面,然后在 Windows 端远程进行连接。百度了一番,发现这个方法是可行的,搞好之后就可以直接在 WSL2 中使用 PyCharm 了,想想就很开心,开干吧! 💪
目前有 2 种实现方式:
- Windows 安装桌面连接工具(VcXsrv 或者 XMing,这两种大同小异),WSL2 端则需要安装桌面和进行环境配置
- 在 WSL2 端安装
xrdp
,桌面可选择 Xfce4(其他可供选择的桌面有 Ubuntu-Desktop),桌面选择的话个人建议还是使用 xfce,毕竟它是轻量级的。1. ⭐推荐:VcXsrv + Xfce4
第一种方案是目前找到说流畅度不错的,个人也推荐采用这一种方式。
首先需要在 Windows 端下载 VcXsrv,并进行安装。
Windows 下打开 XLaunch,
然后 WSL2 安装 Xfce4:
$ sudo apt update
$ sudo apt install xfce4 xfce4-terminal
# 安装字体
$ sudo apt-get install ttf-ubuntu-font-family fonts-droid-fallback
在 ~/.zshrc
文件中添加如下内容,完成后执行 source ~/.zshrc
:
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 端进行:
$ sudo apt install -y xrdp xfce4 xfce4-terminal
# 启动Xrdp
$ sudo service xrdp start
* Starting Remote Desktop Protocol server [20211109-11:31:36] [DEBUG] Testing if xrdp can listen on 0.0.0.0 port 3389.
[20211109-11:31:36] [DEBUG] Closed socket 6 (AF_INET6 :: port 3389)
$ sudo ufw allow 3389/tcp # 如果开启了防火墙,则需要开启 3389 端口
然后通过 Windows 自带的远程桌面连接软件来连接 WSL2 桌面,点击 OK 之后就会出现 WSL2 桌面了。
⚡ 个人不推荐这种方式,尝试下来发现右击菜单都是卡的,体验非常差。
2.1 常见问题
- 报错一:提示正在运行一个控制会话,表示 3389 端口正被占用,可以尝试
/etc/xrdp/xrdp.ini
文件中的port
参数 - 报错二:提示无法连接到远程计算机,表示 IP 输入的不对,查看下 WSL2 的 IP,重新尝试
- 报错三:可以连接,但界面一片漆黑,尝试重启一下 WSL2
[x] 报错四:闪退,应该是权限问题,不要使用 root 登录。
3. 参考文档
[ ] https://blog.csdn.net/weixin_42580217/article/details/105490265
- https://blog.csdn.net/tmrjlu/article/details/119705168
- https://blog.csdn.net/weixin_30810127/article/details/112238239
- https://www.cnblogs.com/smileglaze/p/14271137.html
- https://www.cnblogs.com/SunSpring/p/14715189.html