黑屏直接原因是gnome会话环境未加载,因xrdp不自动继承必要环境变量;须准确配置~/.xsessionrc(含gnome_shell_session_mode、xdg_current_desktop、xdg_config_dirs三行)并修改/etc/xrdp/startwm.sh,在fi后添加unset dbus_session_bus_address、unset xdg_runtime_dir及. $home/.xsessionrc,再重启xrdp服务。

黑屏问题直接原因:GNOME会话环境没加载
Ubuntu 22.04/24.04 默认用 GNOME,但 xrdp 启动时不会自动继承桌面所需的环境变量,结果就是连接成功、认证通过、画面全黑。这不是服务没跑,而是桌面根本没起来。
-
~/.xsessionrc必须存在且内容准确:它负责告诉远程会话“你是在 Ubuntu GNOME 环境下运行”,缺一不可 - 关键三行不能少:
GNOME_SHELL_SESSION_MODE=ubuntu、XDG_CURRENT_DESKTOP=ubuntu:GNOME、XDG_CONFIG_DIRS指向正确的配置路径 - 如果已存在
~/.xsessionrc,先备份再覆盖,旧文件里残留的startxfce4或空 export 会导致冲突
/etc/xrdp/startwm.sh 修改必须加这两行
光写 ~/.xsessionrc 不够,/etc/xrdp/startwm.sh 是 XRDP 实际拉起桌面的入口脚本,不改它,前面的环境变量压根不会被读取。
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
- 在
fi语句之后、exec命令之前插入:unset DBUS_SESSION_BUS_ADDRESS和unset XDG_RUNTIME_DIR - 紧接着加一行:
. $HOME/.xsessionrc—— 注意是点号加空格加路径,不是source - 改完立刻
sudo systemctl restart xrdp,否则修改不生效;systemctl status xrdp看不到报错不等于配置正确
防火墙和端口别只开3389就完事
ufw allow 3389/tcp 是基础操作,但实际连接失败常卡在这一步——尤其在云服务器(如腾讯云 Ubuntu 24.04)上,安全组规则比本地防火墙优先级更高。
- 先确认本地
ufw status显示3389/tcp在 ALLOW 列表里 - 再登录云平台控制台,检查对应实例的安全组是否放行了
3389入方向 TCP 流量(源 IP 可设为0.0.0.0/0测试,后续收紧) - 如果改过
/etc/xrdp/xrdp.ini里的port,比如改成3390,那防火墙和安全组都要同步改,不能只改一边
多用户同时登录会互相踢出导致黑屏
GNOME 的显示管理器 gdm3 默认只允许一个图形会话活跃。如果你本地已登录桌面,再用 XRDP 连,远程会话会被立即终止,现象就是刚输完密码就黑屏或断连。
- 最稳妥做法:远程连接前,先在 Ubuntu 本机执行
loginctl list-sessions,看到有seat0类型的活跃会话,就loginctl terminate-session xxx杀掉它 - 或者临时改
/etc/gdm3/custom.conf,取消注释#WaylandEnable=false并确保AutomaticLoginEnable=false,避免 GDM 自动占会话 - 不要依赖 “注销用户” 图形按钮——它有时只是锁屏,后台会话仍在,必须用命令行确认










