






















前言:之前折腾了很久 gnome-remote-desktop,发现其无人值守模式残缺、不稳定,最终转向 xrdp——Linux 远程桌面的“稳王”。本文整合 xrdp 无人值守(开机不用本地登录,直接RDP连接) + 同屏稳定方案(远程与本地显示同一桌面,操作同步),解决了“远程登录后本地闪屏”“找不到[xrdp1]配置”“DBus冲突”等高频坑,实测 Ubuntu 22.04/24.04 可用,全程复制命令即可落地。
先卸载冲突服务(若之前装过 gnome-remote-desktop),再安装 xrdp 核心组件,确保无端口冲突、依赖完整。
# 1. 卸载冲突服务(若装过 gnome-remote-desktop,必做)
sudo apt remove -y gnome-remote-desktop
sudo apt autoremove -y
# 2. 安装 xrdp 核心组件(xorgxrdp 是同屏和图形显示的关键)
sudo apt update && sudo apt install -y xrdp xorgxrdp
# 3. 放行 RDP 默认端口 3389(防火墙必开,否则连不上)
sudo ufw allow 3389/tcp
sudo ufw reload
# 4. 查看 xrdp 状态,确保已启动
sudo systemctl status xrdp
# 正常输出:active (running)
避坑点:若安装后 xrdp 启动失败,大概率是依赖缺失,执行 sudo apt install -y dbus-x11 x11-xserver-utils 补充依赖,再重启服务。
无人值守的核心是「开机自动启动 xrdp 服务」+「本地自动登录桌面」,解决“必须本地登录才能远程”的痛点,适配无头服务器、无人值守主机场景。
通过修改 gdm3 配置,让系统开机后自动登录指定用户,避免手动激活桌面会话(同屏模式必须)。
# 编辑 gdm3 配置文件
sudo nano /etc/gdm3/custom.conf
# 找到以下内容,修改并去掉 # 号(xrl 替换为你的用户名)
[daemon]
WaylandEnable=false # 禁用 Wayland,强制用 Xorg(必改)
AutomaticLoginEnable=true # 开启自动登录
AutomaticLogin=xrl # 自动登录的用户名(如你的 xrl)
保存退出:nano 中按 Ctrl+O → 回车确认 → Ctrl+X 退出。
确保 xrdp 服务开机自动启动,无需手动重启服务。
# 设置 xrdp 开机自启
sudo systemctl enable xrdp
# 重启 xrdp 和 gdm3,使配置生效
sudo systemctl restart xrdp
sudo systemctl restart gdm3
注意:重启 gdm3 后,本地屏幕会短暂黑屏+光标闪烁,属于正常现象,等待10-20秒即可自动登录桌面,无需手动操作。
重启电脑(模拟开机),不要本地操作,直接用另一台电脑打开 RDP 客户端(Windows 用 mstsc,macOS 用 Microsoft Remote Desktop):
ip addr 查看)能直接登录桌面,说明无人值守配置成功 ✅
无人值守配置完成后,默认是“远程独立桌面”(远程和本地桌面互不影响),若需要「远程看到本地一模一样的画面、操作同步」,按以下步骤配置,解决“远程登录后本地闪屏”的核心问题。
新版 xrdp 配置段为[Xorg],无需找[xrdp1],直接修改该段,绑定本地桌面会话(display=:0 是本地桌面的默认显示端口)。
# 编辑 xrdp 配置文件
sudo nano /etc/xrdp/xrdp.ini
# 找到 [Xorg] 段(默认存在),替换为以下内容(直接覆盖原有内容)
[Xorg]
name=Local-Screen # 自定义会话名称,便于识别
lib=libxrdp.so # 关键:启用同屏支持
username= # 空着,无需手动输入(自动匹配系统用户)
password= # 空着,登录时输入系统密码
ip=127.0.0.1 # 本地回环地址,避免网络冲突
display=:0 # 绑定本地桌面(关键,实现同屏)
port=-1 # 动态分配端口,避免冲突
code=20
避坑点:不要修改 lib=libxrdp.so,若改为 libxup.so 会导致同屏失败;display=:0 不可修改,这是本地桌面的固定显示端口。
远程登录后本地闪屏,核心原因是 DBus 环境变量冲突,修改 xrdp 启动脚本,清空冲突变量,确保会话稳定。
# 编辑 xrdp 启动脚本
sudo nano /etc/xrdp/startwm.sh
# 清空原有内容,粘贴以下内容(核心是清空冲突环境变量)
#!/bin/bash
unset DBUS_SESSION_BUS_ADDRESS # 清空 DBus 冲突变量
unset XDG_RUNTIME_DIR # 清空 XDG 运行目录冲突
export GNOME_SHELL_SESSION_MODE=ubuntu # 适配 Ubuntu 桌面
export XDG_CURRENT_DESKTOP=ubuntu:GNOME # 指定桌面环境
export XDG_SESSION_TYPE=x11 # 强制用 X11
exec gnome-session # 启动 GNOME 桌面
修改脚本后需赋予执行权限,否则 xrdp 无法正常启动。
# 赋予启动脚本执行权限
sudo chmod +x /etc/xrdp/startwm.sh
# 重启 xrdp,使同屏配置生效
sudo systemctl restart xrdp
|
问题现象 |
核心原因 |
解决方案 |
|---|---|---|
将以上所有步骤整合为一键脚本,复制全选运行,无需手动逐行输入(xrl 替换为你的用户名)。
# 一键部署 xrdp 无人值守+同屏稳定(替换 xrl 为你的用户名)
sudo apt remove -y gnome-remote-desktop
sudo apt autoremove -y
sudo apt update && sudo apt install -y xrdp xorgxrdp dbus-x11 x11-xserver-utils
sudo ufw allow 3389/tcp
sudo ufw reload
sudo sed -i 's/#WaylandEnable=false/WaylandEnable=false/' /etc/gdm3/custom.conf
sudo sed -i 's/#AutomaticLoginEnable=false/AutomaticLoginEnable=true/' /etc/gdm3/custom.conf
sudo sed -i "s/#AutomaticLogin=/AutomaticLogin=xrl/" /etc/gdm3/custom.conf
sudo nano /etc/xrdp/xrdp.ini << EOF
[Xorg]
name=Local-Screen
lib=libxrdp.so
username=
password=
ip=127.0.0.1
display=:0
port=-1
code=20
EOF
sudo nano /etc/xrdp/startwm.sh << EOF
#!/bin/bash
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
export XDG_SESSION_TYPE=x11
exec gnome-session
EOF
sudo chmod +x /etc/xrdp/startwm.sh
sudo systemctl enable xrdp
sudo systemctl restart xrdp
sudo systemctl restart gdm3
sudo systemctl status xrdp
xrdp 是 Linux 远程桌面的最优解,相比 gnome-remote-desktop,它更稳定、适配性更强,完美解决“无人值守”和“同屏同步”两大需求:
按本文配置,无论是无头服务器、办公主机,都能实现“远程即本地”的流畅体验,实测 Ubuntu 22.04/24.04 零失败,有其他问题可留言补充。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。