一、简介

RDPRemote Desktop Protocol,远程桌面协议)是微软开发的一种专有协议,用于在网络上实现远程桌面访问,允许用户通过客户端设备(如 Windows、Linux、macOS 等)远程控制另一台运行 Windows 或支持 RDP 的服务器,Linux 需要配置XRDP进行模拟,功能不如 Windows 原生。

二、服务安装

  1. 安装XRDP

    sudo apt install xrdp -y
    
  2. 检查 XRDP 是否运行

    sudo systemctl status xrdp
    

    输出

  3. 如果没有,通过如下指令启动,但仅影响当前会话

    sudo systemctl start xrdp
    
  4. 设置开机自启

    sudo systemctl enable xrdp
    
  5. 禁止自启 && 停止服务 (可选)

    sudo systemctl disable xrdp
    sudo systemctl stop xrdp
    

三、桌面安装

  1. 检查 XDG_CURRENT_DESKTOPDESKTOP_SESSION变量的值,根据输出判断使用的桌面环境。

    echo $XDG_CURRENT_DESKTOP
    # 或
    echo $DESKTOP_SESSION
    
  2. 默认服务器具有桌面环境GNOME,如果没有,推荐安装轻量级的 XFCE,当然也可以选择GNOME

    sudo apt install xfce4 xfce4-goodies -y
    # GNOME
    sudo apt install ubuntu-gnome-desktop -y
    
  3. XRDP 默认使用用户的桌面环境配置,如果安装了 XFCE 需要配置 XRDP 使用 XFCE

  4. 创建或编辑用户的 ~/.xsession 文件

    echo xfce4-session > ~/.xsession
    
  5. 编辑 XRDP 的启动脚本 /etc/xrdp/startwm.sh,确保优先使用 XFCE

    sudo vim /etc/xrdp/startwm.sh
    
  6. 在文件末尾(. /etc/X11/Xsession 之前)添加

    startxfce4
    

    插入

  7. 重启 XRDP

    sudo systemctl restart xrdp
    
  8. XRDP 默认监听 TCP 3389 端口,检查端口是否开放,输出应显示 0.0.0.0:3389:::3389

    sudo netstat -tuln | grep 3389
    
  9. 在客户端通过Remmina登录时,会话选择Xorg
    在这里插入图片描述

四、BUG排查

  1. 如果我们在登录桌面的时候卡住,仅显示蓝色背景,可以尝试使用root用户登录,查看是否能够正常登录,如果可以登录则证明桌面启动正常,很大概率是因为我们登录用户的权限问题导致卡住。可以优先排查/etc/X11/Xwrapper.config这个文件中是否包含 allowed_users=anybody,如果是allowed_users=console,则表示只允许在物理控制台(即直接连接显示器和键盘的本地用户)启动 X 图形服务,当你通过 SSH 或 RDP 远程登录时,系统认为你不是“物理控制台用户”,所以直接拦截了启动请求。可以按照如下的操作执行:

    # 清理旧的会话缓存
    rm -rf ~/.cache/sessions/*
    
    # 备份并重置 XFCE 配置文件(排除配置冲突)
    mv ~/.config/xfce4 ~/.config/xfce4.bak
    
    # 确保 .xsession 文件干净
    echo "startxfce4" > ~/.xsession
    chmod +x ~/.xsession
    
    # 编辑 Xwrapper 配置
    sudo vim /etc/X11/Xwrapper.config
    
    修改 allowed_users=anybody
    
    # 清理可能残留的进程
    pkill -u $USER xrdp  # $USER替换为你的用户名
    pkill -u $USER Xorg
    
    # 重启 xrdp 服务
    sudo systemctl restart xrdp
    

小结

以上内容在ubuntu-server上进行了测试可以正常使用,如果有其他问题欢迎在评论区交流,谢谢!!

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐