KDE Plasma 6.7 KRDP 连接后立即断开问题排查
一、问题现象
环境:
- KDE Plasma 6.7.2
- Wayland 会话
- KRDP(KDE Remote Desktop)
- 客户端:Windows RDP
表现:
- 能正常看到连接建立
- 黑屏约 1 秒
- 客户端立即断开
- 服务端 krdpserver 无崩溃,但连接失败
二、初始日志特征
New client connected
pam_unix(login:auth): authentication failure
password check failed for user随后出现:
PostConnect for peer failed
STATE_RUN_FAILED
BIO_read returned system error 104 (connection reset)三、第一阶段根因:PAM / systemd 安全限制
关键线索
pam_unix(login:auth): authentication failure
unix_chkpwd: user unknown以及 systemd 服务属性:
systemctl --user show app-org.kde.krdpserver.service -p NoNewPrivileges
NoNewPrivileges=yes问题本质
KRDP 通过 PAM 调用系统认证:
unix_chkpwdpam_unix- polkit / system-auth
但 NoNewPrivileges=yes 会导致:
- PAM helper 无法正常 fork/exec
- 密码校验失败
- 连接立即断开
这是 KDE/Plasma 6.7 已知回归问题之一(KRDP + systemd sandbox 冲突)。
四、修复方案(关键)
创建 systemd override:
mkdir -p ~/.config/systemd/user/app-org.kde.krdpserver.service.d
cat > ~/.config/systemd/user/app-org.kde.krdpserver.service.d/override.conf << EOF
[Service]
NoNewPrivileges=false
EOF
systemctl --user daemon-reload
systemctl --user restart app-org.kde.krdpserver.service五、修复后变化
修复前:
pam_authenticate failure
connection reset immediately修复后:
New client connected
VAAPI encoder initialized
session established说明 PAM 阶段已经恢复正常。
六、第二阶段问题(已验证但未最终影响)
日志中仍存在:
WITH_VAAPI_H264_ENCODING=ON (experimental)
QObject thread mismatch warning
VAAPI Intel iHD driver in use但:
- 不影响最终连接
- 仅在建立阶段输出 warning
- 不再触发断开
七、最终结论
本问题是 KDE KRDP 6.7 的典型组合问题:
根因链路
systemd sandbox(NoNewPrivileges=yes)
↓
PAM helper 无法执行
↓
authentication failure
↓
FreeRDP session abort
↓
客户端黑屏后断开八、解决方案总结
必须修复
NoNewPrivileges=false可选优化
- 避免使用实验性 VAAPI H264(如有 GPU 兼容问题)
- 更新 freerdp / kpipewire
- 保持 Plasma 6.7.x 最新补丁
九、经验总结
KRDP 当前状态(Plasma 6.6–6.7)特点:
- 功能可用,但系统依赖链较敏感
- PAM / systemd sandbox / VAAPI 三者耦合
- 小更新可能引入认证或编码路径问题
- 更适合“可接受偶发 bug”的远程使用场景