📌 痛点背景
Ubuntu 自带的远程桌面(Gnome RDP)脾气古怪,必须满足“有显示器(或插诱骗器)”且“物理机必须处于登录解锁状态”才能连接,否则 Windows 端就会无情报错 0x904 并闪退。
为了实现无人值守、开机即连、断开后后台挂机的纯净体验,我们选择彻底废除自带远程,全面拥抱系统级原生 xrdp 服务。
🛠️ 核心操作命令大盘点
1. 彻底清理门户(关闭自带 RDP)
防止新老服务抢夺 3389 端口:
# 禁用自带 RDP 功能
XDG_RUNTIME_DIR=/run/user/1000 grdctl rdp disable
# 停止自带的远程桌面服务
XDG_RUNTIME_DIR=/run/user/1000 systemctl --user stop gnome-remote-desktop
2. 安装原生 xrdp 服务
# 更新软件源并安装
sudo apt update && sudo apt install xrdp -y
# 启动服务并设置开机自启
sudo systemctl enable --now xrdp
# 允许 xrdp 读取系统安全证书
sudo adduser xrdp ssl-cert
3. 修复经典黑屏与闪退 Bug
告诉系统远程登录时直接拉起标准的 Ubuntu Gnome 桌面:
cat <<EOF > ~/.xsessionrc
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=Ubuntu:GNOME
export XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
EOF
# 顺手关掉桌面动画,极致提升远程流畅度
gsettings set org.gnome.desktop.interface enable-animations false
# 重启 xrdp 服务生效
sudo systemctl restart xrdp
4. 根除“创建色彩配置文件”的烦人弹窗
在系统安全策略里为远程用户开绿灯,不准弹窗卡人:
sudo tee /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla <<EOF
[Allow Colord all Users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
ResultAny=no
ResultInactive=no
ResultActive=yes
EOF
# 重启认证服务
sudo systemctl restart polkit
📜 终极福利:一键配置自动化脚本
如果你懒得一行行复制,可以直接在服务器上把下面的内容存成一个脚本文件(比如 setup_xrdp.sh)。
脚本代码
#!/bin/bash
echo "🚀 开始一键配置原生 xrdp 远程桌面..."
# 1. 关闭自带服务
echo "1/4 正在清理 Ubuntu 自带远程桌面..."
XDG_RUNTIME_DIR=/run/user/1000 grdctl rdp disable >/dev/null 2>&1
XDG_RUNTIME_DIR=/run/user/1000 systemctl --user stop gnome-remote-desktop >/dev/null 2>&1
# 2. 安装 xrdp
echo "2/4 正在安装原生 xrdp 服务..."
sudo apt update && sudo apt install xrdp -y
sudo systemctl enable --now xrdp
sudo adduser xrdp ssl-cert
# 3. 写入桌面环境配置防黑屏
echo "3/4 正在配置图形环境与动画加速..."
cat <<EOF > ~/.xsessionrc
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=Ubuntu:GNOME
export XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
EOF
gsettings set org.gnome.desktop.interface enable-animations false
sudo systemctl restart xrdp
# 4. 屏蔽色彩弹窗
echo "4/4 正在注入Polkit规则,根除色彩配置弹窗..."
sudo tee /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla <<EOF >/dev/null
[Allow Colord all Users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
ResultAny=no
ResultInactive=no
ResultActive=yes
EOF
sudo systemctl restart polkit
echo "🎉 所有配置已完成!现在可以打开 Windows 的 mstsc 远程连接了!"
echo "💡 提示:输入 Linux 本地用户名和密码即可。断开时请直接点 [X],切勿点击 [注销]。"
如何使用这个脚本?
- 在 SSH 里输入
nano setup_xrdp.sh,把上面的脚本内容粘进去,按Ctrl+O保存,Ctrl+X退出。 - 赋予执行权限:
chmod +x setup_xrdp.sh - 直接运行:
./setup_xrdp.sh
💡 课后小贴士:日常维护唯一口诀
以后如果遇到网络闪断导致连接卡死在绿蓝屏,直接在 SSH 里祭出这行“还魂咒”,强行刷新后台虚拟会话即可:
sudo pkill -u $USER -f gnome-session
这份笔记你可以妥善收好,以后你就是朋友眼中的 Linux 远程专家了!
实用tip:在Windows远程桌面中,切换到“显示”选项卡,将像素大小改为1080,这样会流畅很多,我们也没必要远程到4K桌面。

