Ubuntu 22.04.2 LTS下XRDP跨设备同会话连接及本地物理访问的可行性与连接方法咨询
Ubuntu 22.04.2 LTS下XRDP跨设备同会话连接及本地物理访问的可行性与连接方法咨询
当然可以实现!这其实是XRDP非常实用的一个场景,我来一步步给你讲清楚怎么配置和操作:
先明确可行性:
完全没问题!只要配置正确,不管你是从桌面、笔记本等不同设备远程连接,还是直接走到机器前物理操作,都能访问同一个桌面会话,操作完全同步。
具体配置步骤:
1. 切换到Xorg会话(关键前提)
Ubuntu 22.04默认用Wayland桌面,但Wayland和XRDP兼容性很差,必须切换到Xorg:
- 物理登录时,在登录界面点击用户名右下角的齿轮图标,选择「Ubuntu on Xorg」登录;
- 如果想永久默认用Xorg,编辑配置文件:
找到sudo nano /etc/gdm3/custom.conf#WaylandEnable=false这一行,去掉前面的#,保存退出后重启GDM服务:sudo systemctl restart gdm3
2. 配置XRDP连接现有会话
我们需要让XRDP能识别并连接到你正在运行的Xorg会话:
- 先查看当前会话的显示编号:在物理登录或已连接的终端里执行
一般会输出echo $DISPLAY:0或:1,记下来备用; - 创建XRDP自定义会话配置:
进入XRDP配置目录,新建一个配置文件:
粘贴以下内容(如果你的显示编号是sudo nano /usr/share/xrdp/xrdp-existing-ses.ini:0,port=-1会自动识别,也可以改成port=6000对应:0):
保存退出;[Xorg-Existing-Session] name=连接现有Xorg会话 lib=libxup.so username=ask password=ask ip=127.0.0.1 port=-1 code=20 - 给XRDP会话权限:执行命令让XRDP用户能访问你的X会话
如果想永久生效,把这个命令加到你的用户目录下的xhost +local:xrdp.profile文件里,这样每次登录都会自动执行。
3. 跨设备连接同会话的操作方法
- 当你已经物理登录或者从某台设备远程登录到这个用户的会话后,打开另一台设备的XRDP客户端(比如Windows的「远程桌面连接」、Linux的Remmina);
- 输入Ubuntu机器的IP地址,连接时在会话类型里选择我们刚才创建的「连接现有Xorg会话」;
- 输入你的用户名和密码,就能直接接入同一个会话,和物理端/其他远程端的操作完全同步。
物理访问的注意点
当你远程连接时,物理机器的屏幕会实时显示同一个会话内容,你可以直接在物理机器上操作,和远程操作互相同步,不会出现会话冲突。
常见问题排查
- 连接后黑屏:大概率是还在使用Wayland,检查是否已经切换到Xorg;
- 连接失败:查看XRDP服务状态
或者查看日志文件找错误:sudo systemctl status xrdp sudo systemctl status xrdp-sesman/var/log/xrdp.log、/var/log/xrdp-sesman.log; - 权限不足:确认
xhost +local:xrdp命令已经执行,或者已经加到.profile里。
备注:内容来源于stack exchange,提问作者Callum Gourlay




