RackNerd Ubuntu VPS 安装远程桌面:XFCE、xrdp、Chrome 与常见坑记录
这篇记录的是在 RackNerd Ubuntu 24.04 VPS 上搭建一个可从 Windows 远程桌面连接的 Linux 图形桌面环境的完整过程。最终方案是:Ubuntu 服务器上安装 XFCE + xrdp,Windows 端使用系统自带的“远程桌面连接”输入 VPS IP、用户名和密码登录。
这不是把 VPS 变成真正的高性能云电脑。它更适合临时打开网页、调试服务、查看图形界面程序,或者在服务器上完成一些偶尔需要 GUI 的操作。
最终使用的结构
最终链路是:
1 | Windows 远程桌面连接 |
服务器上同时还跑着其他项目,例如 nginx、Docker、new-api、CLIProxyAPI 等。所以这次桌面环境的处理重点不是“能装上就行”,而是尽量只动桌面相关组件,不影响已有服务。
最终确认过的关键点:
1 | nginx 继续监听 80/443 |
先安装桌面环境
Ubuntu Server 默认没有图形界面。这里选 XFCE,是因为它比 GNOME/KDE 更轻,适合 VPS。
核心组件包括:
1 | apt update |
然后让普通用户登录时启动 XFCE:
1 | echo 'startxfce4' > /home/raymondguo/.xsession |
xrdp 服务启用:
1 | systemctl enable --now xrdp |
如果日志里出现 xrdp 读不到证书私钥,例如:
1 | Cannot read private key file /etc/xrdp/key.pem: Permission denied |
需要把 xrdp 用户加入 ssl-cert 组:
1 | adduser xrdp ssl-cert |
连接方式:SSH 隧道和公网 3389
最开始更安全的方式是 SSH 隧道:
1 | Windows mstsc -> 127.0.0.1:3390 -> SSH tunnel -> VPS 127.0.0.1:3389 -> xrdp |
这种方式的优点是 3389 不需要暴露公网,安全性更好。缺点是每次连接都依赖本地 SSH 隧道,隧道断了,远程桌面也就连不上。
后来为了更接近常见 VPS 教程里的使用方式,改成公网直接连接:
1 | Windows mstsc -> 107.172.191.70:3389 -> xrdp |
xrdp 配置里关键是让它监听公网端口:
1 | port=3389 |
如果看到类似下面这种配置,就说明它只监听本机回环地址,外部连不上:
1 | port=tcp://127.0.0.1:3389 |
改完后重启:
1 | systemctl restart xrdp |
能看到 0.0.0.0:3389 或 *:3389,才表示公网连接有机会进来。
防火墙与安全提醒
如果使用 UFW,需要放行 3389:
1 | ufw allow 3389/tcp |
更安全的做法是只允许自己的公网 IP:
1 | ufw allow from <你的公网IP> to any port 3389 proto tcp |
这次为了方便直接连接,最终使用了公网开放 3389。这个方式能用,但安全性低于 SSH 隧道或 IP 白名单。长期使用建议至少做到:
- 不使用弱密码;
- 不用 root 登录图形桌面;
- 优先限制来源 IP;
- 或者改回 SSH 隧道方式。
Windows 端怎么连接
Windows 端直接打开系统自带的“远程桌面连接”,也就是 mstsc.exe。
电脑栏输入:
1 | 107.172.191.70 |
用户名输入:
1 | raymondguo |
密码输入对应 Linux 用户密码。
如果之前 Windows 远程桌面记住了错误用户名,比如默认填成 root,可以在登录窗口里点“更多选项 / 使用其他帐户”,手动输入:
1 | raymondguo |
也可以在 Windows 凭据管理器里删除 TERMSRV/107.172.191.70 相关的旧凭据。
为什么不建议用 root 登录 xrdp
root 登录 xrdp 经常失败,即使密码正确也可能进不去。这不是远程桌面坏了,而是 Linux 图形会话、PAM、安全策略和桌面环境通常都不推荐 root 图形登录。
正确做法是创建普通用户,例如:
1 | adduser raymondguo |
然后用这个普通用户登录远程桌面。需要管理员操作时,再在终端里使用 sudo。
安装 Chrome 后遇到 keyring 卡住
桌面装好后,系统自带浏览器不一定好用,所以又安装了 Google Chrome。
Chrome 在 Linux 桌面里可能触发一个提示:
1 | Choose password for new keyring |
在普通本地 Linux 桌面上,这个提示通常没什么问题。但在 xrdp 里,它可能让桌面看起来卡住,Chrome 打不开,甚至远程会话无响应。
这次最终处理方式是移除会触发这个流程的组件,并清理用户 Chrome/keyring 状态:
1 | apt remove -y gnome-keyring evolution-data-server |
如果只是临时绕过,也可以给 Chrome 启动参数加:
1 | --password-store=basic |
但在这次环境里,最终更干净的做法是直接移除 keyring 相关包。
桌面慢的真实原因
这类 VPS 远程桌面慢,不一定是 CPU 或内存不够。实际验证时,服务器资源并不是主要瓶颈。
更明显的瓶颈是:
1 | Windows 本地网络 |
尤其是 Windows 远程桌面分辨率开到 2560x1440、颜色质量较高时,体验会明显变慢。
更实用的设置是:
1 | 分辨率:1366x768 或 1600x900 |
如果只是需要偶尔操作网页,xrdp 足够。如果希望长期当云电脑使用,NoMachine、Sunlogin/向日葵、RustDesk 这类方案可能体验更接近“远控软件”,但 VPS 没有真实显示器和独立 GPU,浏览器和视频类场景仍然不能期待太高。
重装时要保护已有服务
这次 VPS 上不只有远程桌面,还有 nginx、Docker、new-api、CPA 等服务。因此重装桌面组件时要避免粗暴清理系统。
安全边界是:
1 | 可以动:xfce4、xrdp、xorgxrdp、Chrome、raymondguo 的桌面配置 |
每次操作前后都应该验证:
1 | systemctl is-active nginx docker xrdp |
这样可以确认桌面环境的调整没有误伤生产服务。
最终结论
RackNerd Ubuntu VPS 可以通过 XFCE + xrdp 做出一个可用的远程桌面。最终能跑通的关键不是单纯安装桌面,而是把下面几个点处理干净:
- xrdp 必须正确监听连接端口;
- 用普通用户
raymondguo登录,不用 root; .xsession明确启动startxfce4;- Chrome 的 keyring 提示要处理,否则桌面可能卡死;
- Windows 远程桌面分辨率不要开太高;
- 如果公网开放 3389,要意识到安全风险,长期建议加 IP 白名单或改回 SSH 隧道。
这个方案适合“偶尔需要一个 Linux 图形界面”的 VPS 使用场景。如果目标是顺滑浏览器、视频或长期云电脑体验,单纯 xrdp + VPS 并不是最优解。