ubuntu 24.04 默认启用 gnome-remote-desktop(基于 pipewire + rdp/vnc),非 xrdp 或 tightvnc;必须先确认会话为 wayland(echo $xdg_session_type 输出 wayland),再启用 rdp 并放行 3389 端口,否则易黑屏或认证失败。

Ubuntu 默认启用的远程桌面协议取决于桌面环境和系统版本,24.04 及以后的 GNOME 桌面默认走 gnome-remote-desktop(基于 PipeWire + RDP/VNC),而非传统 xrdp 或 tightvncserver。直接装 xrdp 很可能黑屏或报 systemd --user not found 错误——这不是配置问题,是 Wayland 协议层不兼容。
确认当前会话是 Wayland 还是 Xorg
这是所有后续操作的前提。GNOME 46+(Ubuntu 24.04)默认用 Wayland,但某些场景(如外接显示器、NVIDIA 驱动旧版)会 fallback 到 Xorg。
- 运行
echo $XDG_SESSION_TYPE,输出必须是wayland - 运行
loginctl show-session $(loginctl | grep $(whoami) | awk '{print $1}') -p Type,确认Type=wayland - 如果输出是
x11,说明你正跑在 Xorg 上——此时gnome-remote-desktop仍可用,但xrdp更稳妥;若坚持用 GNOME 原生方案,需先切回 Wayland(登录界面点齿轮选Ubuntu on Wayland)
启用 gnome-remote-desktop(Wayland 原生方案)
这是 Ubuntu 24.04+ 官方推荐路径,无需额外桌面环境,不破坏现有 GNOME 配置。
PostgreSQL 18.4 官方 Ubuntu 安装包现已发布,这是目前最新的稳定版本。推荐通过官方 APT 仓库安装:先执行 sudo apt update 更新索引,再运行 sudo apt install postgresql-18 即可完成部署。新版本引入了异步 I/O 子系统,在顺序扫描与 VACUUM 场景下性能提升显著,同时支持 UUID v7 原生生成函数与虚拟生成列。
- 确保用户属于
remote-desktop组:sudo usermod -aG remote-desktop $USER,然后完全退出并重新登录 - 命令行启用 RDP:
gsettings set org.gnome.desktop.remote-desktop.rdp enable true - 设密码(base64 编码):
echo -n 'your_pass' | base64,再执行gsettings set org.gnome.desktop.remote-desktop.rdp password '<base64_string>'</base64_string> - 防火墙放行:
sudo ufw allow 3389(RDP)或sudo ufw allow 5900(VNC,不推荐) - 注意:GUI 设置(Settings → Sharing → Remote Desktop)改的是同一组 gsettings,但有时开关状态不同步,优先以命令行为准
降级使用 xrdp(Xorg 兼容方案)
当你遇到 gnome-remote-desktop 连接后无键盘鼠标、灰屏、或反复断开时,大概率是 PipeWire 权限/权限模型冲突,此时换 xrdp 更可靠,但需主动切换到 Xorg 会话。
- 登录界面点击用户名旁齿轮图标,选
Ubuntu on Xorg,再登录 - 安装:
sudo apt install xrdp(Ubuntu 24.04 桌面版已预装) - 修复 SSL 权限:
sudo adduser xrdp ssl-cert,否则连接时卡在认证阶段 - 重启服务:
sudo systemctl restart xrdp - 客户端用 Windows 自带
mstsc连接,用户名密码填系统账户凭据(不是远程桌面独立密码)
防火墙与连接验证要点
端口通了不代表能连成功。常见“连接失败”实际是认证或会话初始化失败,而非网络层阻断。
-
sudo ufw status确认3389处于ALLOW状态,且策略为active - 本地测试:
telnet 127.0.0.1 3389能通,说明服务监听正常;不通则检查systemctl status xrdp或journalctl -u gnome-remote-desktop - RDP 客户端连接后若闪退,看
~/.xsession-errors—— 出现systemd --user not found表示用户 session 未正确启动,需loginctl kill-user $USER清理残留会话再试 - 别忽略 SELinux/AppArmor:Ubuntu 默认用 AppArmor,
sudo aa-status查是否有xrdp或gnome-remote-desktop被 deny 日志
Wayland 下远程控制的核心矛盾在于:图形合成器(Mutter)、输入事件分发(libinput)、屏幕捕获(PipeWire)三者权限模型 tightly coupled,任何一环缺失都会导致黑屏或无响应。所以不要盲目调参数,先确认会话类型,再选对应方案——这是最容易被跳过的一步,也是绝大多数失败的根源。










