0.当前环境
quq233@quq233:~/xorgxrdp$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 26.04 LTS
Release: 26.04
Codename: resolute
quq233@quq233:~/xorgxrdp$ uname -a
Linux quq233 7.0.0-29-generic #29-Ubuntu SMP PREEMPT_DYNAMIC Fri Jul 17 20:52:35 UTC 2026 x86_64 GNU/Linux
1.安装Cinnamon
sudo apt install -y cinnamon-core2.安装xrdp
sudo apt install -y xrdp3.编译安装xorgxrdp
安装依赖
sudo apt install -y libepoxy-dev libgbm-dev nasm查看xrdp版本
(base) quq233@quq233:~/xorgxrdp$ xrdp -v
xrdp 0.10.1
A Remote Desktop Protocol Server.
Copyright (C) 2004-2024 Jay Sorg, Neutrino Labs, and all contributors.
See https://github.com/neutrinolabs/xrdp for more information.克隆xorgxrdp仓库,注意版本要一致
git clone --recursive https://github.com/neutrinolabs/xorgxrdp.git
cd xorgxrdp
git fetch --tags
git checkout v0.10.1
./bootstrap
./configure --enable-glamor
make
sudo make install4.配置权限
确保当前用户在video和renderer组
sudo usermod -aG video,render $USER #需要重新登录/重启
(重要)以及进行这个神秘仪式
sudo cp /etc/pam.d/xrdp-sesman /etc/pam.d/xrdp-sesman.bak
sudo tee /etc/pam.d/xrdp-sesman > /dev/null << 'EOF'
#%PAM-1.0
auth required pam_env.so readenv=1
auth required pam_env.so readenv=1 envfile=/etc/default/locale
@include common-auth
-auth optional pam_gnome_keyring.so
-auth optional pam_kwallet5.so
@include common-account
@include common-password
@include common-session
-session optional pam_gnome_keyring.so auto_start
-session optional pam_kwallet5.so auto_start
-session optional pam_systemd.so
EOF这一步是让 xrdp 登录时通过
pam_systemd向 logind 注册一个真正的 session,这样 logind 才会给这个 session 的进程授权访问/dev/dri/card1。
5.配置xrdp使用cinnamon
# 备份旧的 .xsession(如果有的话)
mv ~/.xsession ~/.xsession.bak 2>/dev/null
# 将 cinnamon-session 写入 .xsession
echo "cinnamon-session" > ~/.xsession
# 赋予执行权限
chmod +x ~/.xsession
#记得重启
sudo systemctl restart xrdp xrdp-sesman6.记得放行端口
sudo ufw allow 3389/tcp