前言
之前写了两篇文章分别通过xrdp
和VcXsrv
实现了WSL2使用桌面环境:
Dexter Lien:WSL2使用xrdp实现图形桌面zhuanlan.zhihu.com
Dexter Lien:WSL2中使用VcXsrv实现xfce4图形界面+声音传输zhuanlan.zhihu.com
综合体验下来,其实还是用xrdp
+Windows自带的远程桌面更方便,但是每次都要经历先开WSL,启动xrdp,运行mstsc才能进到图形界面,很是麻烦,又研究了一下,分享这套一键启动的方案,下面开始正文.
实现过程
可以先参考之前写的xrdp实现的过程准备基础环境,下面主要是配置一键启动
- 配置当前用户执行sudo命令免密码
由于启动xrdp服务需要用到root权限,正常启动命令
sudo /etc/init.d/xrdp start
会出现输入密码的提示,比较麻烦
# 创建配置文件
$ sudo vim /etc/sudoers.d/dexter
编辑内容如下,dexter为当前用户名
dexter ALL=(ALL) NOPASSWD: ALL
添加上面的配置后在shell中再以普通用户执行sudo
命令就不会出现输入密码的提示了
2. 创建一键启动脚本
$ mkdir ~/.local/bin -p
$ vim ~/.local/bin/remote.sh
文件末尾追加下面两行内容
sudo /etc/init.d/xrdp start
sleep 1 # 强制等待一秒,否则可能出现xrdp启动没完成导致无法连接
mstsc.exe /v:localhost:3390
给脚本加上可执行权限
$ chmod +x ~/.local/bin/remote.sh
测试一下,可以直接调用Windows的远程桌面工具连接
3. 配置xrdp保存登录账号密码
远程桌面连接成功后出现xrdp的登陆窗口,还需要手动再输入一遍WSL2中的账号密码,也比较麻烦,可以通过下面设置保存登录用的账号密码
$ sudo vim /etc/xrdp/xrdp.ini
找到[Xorg]
配置部分,修改成下面内容
[Xorg]
name=Xorg
lib=libxup.so
username=dexter
password=对应密码
ip=127.0.0.1
port=-1
code=20
这样再登陆的时候就不用输账号密码了
本来还想把这个登陆界面也给省略了直接进桌面,但是搜了一圈文档貌似去不掉,也就多了点一下OK键,还能接受哈~
4. 创建一键启动快捷方式
在桌面上新建一个快捷方式,对象位置内容填写
wsl ~/.local/bin/remote.sh
启动效果: