努力
加油

Ubuntu 24.04服务器远程桌面安装步骤是什么?

在 Ubuntu 24.04(Noble Numbat)上配置远程桌面,首先需要明确一个核心概念:Linux 原生并不像 Windows 那样有一个开箱即用、体验一致的“远程桌面”服务。

通常我们说的“远程桌面”,在国内语境下主要有两种实现路径:

  1. XRDP:通过 RDP 协议让 Windows 自带的“远程桌面连接”直接连入 Linux。这是最接近你直觉需求的方案。
  2. VNC / NoMachine / RustDesk:基于 VNC 协议的第三方方案,跨平台能力强,但需要额外客户端。

鉴于大多数用户希望用 Windows 电脑直接连 Ubuntu 服务器,推荐首选 XRDP。以下是基于 Ubuntu 24.04 的最小化安装和配置步骤,以及避坑指南。


一、 为什么不建议直接用 xrdp 官方源?

Ubuntu 24.04 的默认软件源中,xrdp 的版本可能较旧,或者与 GNOME 46+ 桌面环境存在兼容性问题(如黑屏、闪退)。因此,更稳妥的做法是使用社区维护较好的 PPA 或手动编译,但对于大多数生产环境,先尝试官方源,若不行再换源是最高效的策略。

二、 标准安装步骤(XRDP + GNOME)

1. 更新系统并安装依赖

打开终端,执行以下命令确保基础环境最新:

sudo apt update
sudo apt upgrade -y

2. 安装 xrdp

sudo apt install xrdp -y

3. 配置防火墙

Ubuntu 24.04 默认启用 ufw。如果开启了防火墙,需放行 3389 端口:

sudo ufw allow 3389/tcp
sudo ufw reload

注意:如果是云服务器(阿里云、腾讯云等),务必在云控制台的“安全组”规则中添加入方向规则,允许 TCP 3389 端口访问。

4. 启动并设置开机自启

sudo systemctl enable xrdp
sudo systemctl start xrdp
sudo systemctl status xrdp

5. 关键配置:解决“黑屏”问题(重要!)

Ubuntu 24.04 默认使用 GNOME 桌面。GNOME 对多会话并发支持较差,直接登录 XRDP 容易导致主会话被踢出或黑屏。我们需要修改 Xsession 脚本以适配 XRDP。

编辑 /etc/xrdp/startwm.sh:

sudo nano /etc/xrdp/startwm.sh

在文件末尾 test -x /etc/X11/Xsession 这一行之前,添加以下内容:

# 针对 GNOME 桌面的兼容性修复
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
exec /etc/X11/Xsession

保存退出(Ctrl+O, Enter, Ctrl+X)。

然后重启 xrdp 服务:

sudo systemctl restart xrdp

6. 连接测试

  • Windows 端:打开“远程桌面连接” (mstsc),输入 Ubuntu 服务器的 IP 地址。
  • 登录界面:选择 “Xorg” 模式(不要选 VNC),输入用户名和密码。

三、 常见问题与高级优化

问题 1:登录后黑屏或立即断开

这是最常见的问题。原因通常是 GNOME Shell 与 XRDP 的图形栈冲突。

解决方案 A:切换轻量级桌面环境(推荐用于纯服务器)
如果你不需要复杂的 GUI,建议安装 XFCE 桌面,它比 GNOME 更稳定且资源占用低。

sudo apt install xfce4 xfce4-goodies

然后在 /etc/xrdp/xrdp.ini 中,将默认的 session=XRDP 改为 session=XFCE,或者在登录界面选择 XFCE 会话。

解决方案 B:禁用 GNOME 扩展
某些 GNOME 扩展(如动态工作区、暗色主题)会导致 XRDP 崩溃。可以尝试在首次登录前,通过 SSH 进入系统,运行:

gsettings set org.gnome.desktop.interface gtk-theme 'Adwaita'
gsettings set org.gnome.shell.extensions.dash-to-dock dock-fixed false

问题 2:分辨率自适应

XRDP 默认可能不支持高分辨率自动适配。

解决方案:
在 Windows 远程桌面客户端中,点击“显示选项”,手动调整分辨率为你需要的比例。或者在 Ubuntu 服务器上安装 xf86-video-fbdev 驱动辅助图形渲染。

问题 3:安全性加固(必须做!)

XRDP 默认使用明文传输密码,极不安全。强烈建议采取以下措施之一:

  1. 强制使用 TLS 加密:
    编辑 /etc/xrdp/xrdp.ini,确保以下行存在:

    ssl_security=1
    tls_ciphers=HIGH
    certificate=/etc/ssl/private/xrdp.pem
    key_file=/etc/ssl/private/xrdp.key

    如果没有证书,可以先生成自签名证书:

    sudo openssl req -x590 -newkey rsa:2048 -nodes -keyout /etc/ssl/private/xrdp.key -out /etc/ssl/private/xrdp.pem -days 3650
    sudo chmod 600 /etc/ssl/private/xrdp.*
    sudo systemctl restart xrdp
  2. 禁止 root 直接登录:
    编辑 /etc/xrdp/sesman.ini,找到 [Security] 部分,确保:

    allow_root_login=false
    max_logins_per_user=0
  3. 使用 Fail2ban 防护暴力破解:

    sudo apt install fail2ban
    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    # 在 jail.local 中添加 xrdp 规则
    echo "[xrdp]" >> /etc/fail2ban/jail.local
    echo "enabled = true" >> /etc/fail2ban/jail.local
    echo "port = 3389" >> /etc/fail2ban/jail.local
    echo "filter = xrdp" >> /etc/fail2ban/jail.local
    echo "logpath = /var/log/auth.log" >> /etc/fail2ban/jail.local
    echo "maxretry = 3" >> /etc/fail2ban/jail.local
    sudo systemctl restart fail2ban

四、 替代方案:如果 XRDP 始终不稳定

如果你的场景对稳定性要求极高,或者需要更好的图形性能(如设计、视频剪辑),建议使用以下替代方案:

方案 优点 缺点 适用场景
NoMachine 性能极佳,支持 GPU 提速,延迟低 商业软件,免费版有设备限制 高性能图形需求
RustDesk 开源,自建中继服务器,穿透能力强 需要额外搭建服务端 XX、异地办公
VNC (TigerVNC) 简单,无需复杂配置 速度慢,无压缩,安全性差 临时调试
Jupyter Notebook Web 界面,适合数据科学 非完整桌面环境 开发、数据分析

五、 总结建议

  1. 首选 XRDP + GNOME,按上述步骤配置,重点处理 startwm.sh 的黑屏问题。
  2. 若追求稳定,改用 XFCE 桌面 + XRDP。
  3. 务必开启 SSL/TLS 加密,并配置防火墙和白名单 IP。
  4. 云服务器用户:记得在云平台安全组和 OS 内部防火墙双重放行 3389 端口。

最后提醒:远程桌面会消耗较多 CPU 和内存资源。对于纯后端服务(Web 服务器、数据库等),强烈建议仅通过 SSH 进行管理,避免安装图形界面带来的安全风险和资源浪费。