wsl使用xrdp实现远程桌面

本文详细介绍了如何在UbuntuWSL2中优化安装过程,包括使用apt-fast加速包安装,设置snap代理解决Snap应用问题,以及安装gnome和xrdp以实现更稳定的远程桌面连接。作者还提供了VNC与Xrdp的对比以及修复网络设置的方法。

其实远程桌面有两种,一种是vnc协议的,这种要在win里下载一个 vcxsrc 软件,然后连接wsl,这种方法其实挺流畅的,但是我实际用下来还是有点bug,比如黑屏、卡顿、崩溃,最重要的是在里面快捷键(alt+tab)会和windows冲突,难绷。第二种是使用Xrdp的,xrdp是基于微软rdp的一种开源实现,ubuntu安装xrdp就可以直接用windows的远程桌面连接ubuntu了,流畅度会稍微差一点,但是用起来很稳定,非常不错。

这一块主要是参考这里这里

1. 安装

安装前把科学上网搞好或者把下载源给换了,不然装不好的。

1.1. 安装apt-fast

apt-fast 下载更快,不然安装gnome要一个小时

add-apt-repository ppa:apt-fast/stable && apt-get install apt-fast -y

会出来三个界面(忘了截图了):

  1. 多进程下载的进程数量:根据你自己cpu线程数量决定,设置成cpu线程数就行
  2. 默认的包管理方式,选apt就行
  3. 下载时是否跳过询问步骤:选No

1.2. 设置snap代理(没有代理会被snap卡死的)

22.04火狐和软件商店用的都是snap,然鹅这玩意不会读取全局代理,所以得自己设置

换成你自己的代理ip,分开执行(下面那个也是没有s的)

snap set system proxy.http="http://172.22.160.1:7890"

snap set system proxy.https="http://172.22.160.1:7890"

1.3. 锁住!

安装gnome前,锁住三个东西,避免变得不幸。如果你安装了,直接apt purge -y 删掉他们

apt-mark hold acpid acpi-support modemmanager

acpid是管理电源的,systemctl检测到容器(就是wsl2)会因为这玩意卡死的

参考链接

modemmanager是管理网络的,也是检测到容器网络设置直接卡死

参考链接

1.4. 安装gnome

安装snap-firefox会卡在那里一会儿,不要惊讶

如果你前面设置了snap代理,你会发现clash是在下载东西的

但是你要是没有设置,大概率会直接卡死在那里

先更新

apt update -y && apt upgrade -y

再下载(apt-fast快很多,不然大半个小时)

apt-fast install ubuntu-desktop gnome -y

执行完,再执行这个,看看有没有漏的

apt install ubuntu-desktop gnome -y

1.5. 安装xrdp

  1. 安装

    安装xrdp

    apt install xrdp
    

    换端口,防止和win打架,这是匹配更换指令,把3389字符串改成3390

    sed -i 's/3389/3390/g' /etc/xrdp/xrdp.ini
    

    重启服务

    systemctl restart xrdp
    
  2. 设置

    ~/.xinitrc 与 ~/.xsession 与 ~/.xsessionrc的作用与区别

    写入信息(切回普通用户)

    vim ~/.xsessionrc
    

    内容如下

    export GNOME_SHELL_SESSION_MODE=ubuntu
    export XDG_CURRENT_DESKTOP=ubuntu:GNOME
    export XDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share:/usr/share:/var/lib/snapd/desktop
    export WAYLAND_DISPLAY=
    export XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
    

1.6. 重装dbus

必须重装,不然会不幸(su -l 或者 sudo su -l进入root用户)

不重装,进不了 软件与更新 这个应用界面

apt install --reinstall dbus

下面的命令不要执行,我只是记录一下(这玩意权限是-rwsr-xr--就是对的)

不要执行我
sudo chmod 4754 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
sudo chown root:messagebus /usr/lib/dbus-1.0/dbus-daemon-launch-helper

1.7. 修复网络

这文件就是空的,不过这么干能把网络图标给搞回来。。。

而且不搞这个 软件与更新 还是进不去,说识别不到网络。。。

touch /etc/NetworkManager/conf.d/10-globally-managed-devices.conf

1.8. 重启wsl并远程连接

打开微软远程桌面连接,输入ip、端口、ubuntu的用户名,就能直接连接了。

测试了一下打开设置

打开软件与更新

https://www.testufo.com/ 显示帧率59(实际估计只有40)(好像火狐是59,谷歌就是50了,不过看nload数据传输情况,都是在35Mbps左右)

一切正常

www.google.com

www.youtube.com

www.github.com

也都连接正常

最后效果是这样子,完美(我美化过了)

### 配置WSL使用VcXsrv和xrdp实现远程桌面连接 #### 启用并安装必要的组件 为了使WLS能够支持图形界面应用程序,需要先确保已启用Windows功能中的虚拟机平台以及WSL2。接着,在PowerShell中执行命令`wsl --install`来安装默认的Linux发行版。 对于Ubuntu 20.04及以上版本,默认情况下已经启用了Systemd服务启动器[^3]。 #### 安装VcXsrv 前往[VcXsrv官网](https://sourceforge.net/projects/vcxsrv/)下载最新版本的应用程序,并按照向导完成安装过程。建议勾选所有选项以获得完整的特性集。 #### 设置环境变量 为了让Linux应用知道要将显示输出发送到哪里,需设置DISPLAY环境变量指向运行于主机上的VcXsrv服务器地址。可以在`.bashrc`文件末尾追加如下行: ```bash export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0 ``` 这一步骤使得每次打开新的终端窗口时自动配置好正确的显示器路径[^2]。 #### 安装GNOME Desktop Environment (可选) 如果希望拥有更接近传统PC操作体验,则可以考虑安装一个完整的桌面环境如Gnome: ```bash sudo apt update && sudo apt install ubuntu-desktop gnome-session-flashback -y ``` 请注意此步骤并非强制性的;取决于个人喜好决定是否继续进行此项安装。 #### 安装与配置XRDP 在目标Linux子系统内部通过包管理工具apt-get获取xrdp软件包及其依赖项: ```bash sudo apt install xrdp -y ``` 编辑/etc/xrdp/startwm.sh脚本,取消注释关于gnome-session的那一行或者根据所选用的不同DE调整相应部分的内容。保存更改后重启xrdp服务以便生效新设定: ```bash sudo service xrdp restart ``` 此时应该可以从Windows系统的“远程桌面连接”客户端尝试登录至WSL内的Linux实例了[^1]。 #### 测试连接稳定性 尽管xrdp提供了较为稳定的性能表现,但在处理多媒体内容方面仍可能存在局限性。因此推荐仅用于日常办公场景而非高强度计算任务或媒体播放活动。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值