You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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
    
    粘贴以下内容(如果你的显示编号是:0port=-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

火山引擎 最新活动