努力
加油

Ubuntu Server安装Desktop版本后如何远程桌面连接?

在 Ubuntu Server 上安装 Desktop 环境后,实现远程桌面连接主要有两条路:VNC 协议和 RDP 协议。

对于国内用户,尤其是需要频繁操作或希望获得接近原生 Windows 体验的场景,推荐优先使用 RDP (Remote Desktop Protocol),因为它的性能、多显示器支持和剪贴板同步通常优于 VNC。当然,如果你更习惯 TeamViewer 那种“即插即用”的无头模式,VNC 也是很好的备选。

下面分别介绍这两种方案的具体操作步骤,以 Ubuntu 20.04/22.04 LTS 为例(其他版本大同小异)。


方案一:使用 RDP 协议(推荐)

RDP 是微软开发的协议,Linux 下通过 xrdp 服务来实现兼容。它的优点是客户端直接用 Windows 自带的“远程桌面连接”即可,无需安装额外软件。

1. 安装 xrdp

打开终端,执行以下命令:

sudo apt update
sudo apt install xrdp -y

2. 配置颜色深度与启动服务

默认情况下,xrdp 可能只支持低色深(如 8-bit),导致画面模糊或黑屏。我们需要将其调整为高色深(32-bit)。

编辑配置文件 /etc/xrdp/xrdp.ini:

sudo nano /etc/xrdp/xrdp.ini

找到 [globals] 部分,确保包含或添加以下行:

color_depth=32

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

接下来,将当前登录用户添加到 ssl-cert 组,以便 xrdp 能读取 SSL 证书(这是解决常见权限报错的关键步骤):

sudo adduser xrdp ssl-cert

3. 重启 xrdp 服务并设置开机自启

sudo systemctl restart xrdp
sudo systemctl enable xrdp

4. 防火墙放行

如果你开启了 UFW 防火墙,需要允许 3389 端口:

sudo ufw allow 3389/tcp

5. 连接测试

在你的 Windows 电脑上,打开“远程桌面连接”(mstsc),输入 Ubuntu 服务器的 IP 地址。

  • 登录界面选择:连接后会弹出一个登录窗口,要求输入用户名和密码。注意:这里必须选择 Xorg 作为显示管理器,不要选 Xvnc(除非你遇到 Xorg 崩溃的问题)。
  • 输入凭证:输入你在 Ubuntu 中创建的用户名和密码。

常见问题排查:

  • 黑屏/闪退:通常是会话冲突。请确保没有其他用户正在本地登录该桌面。如果之前有残留会话,可以尝试删除 /tmp/.X11-unix/ 下的锁文件,或者在 xrdp 登录界面尝试切换 Xvnc。
  • 字体乱码:安装中文字体包 sudo apt install fonts-wqy-zenhei 等。

方案二:使用 VNC 协议

VNC 的优势在于跨平台性强(Mac、Linux、Android 都有成熟客户端),且配置相对简单,但色彩还原和多屏支持略逊于 RDP。

1. 启用内置共享功能(最简单)

Ubuntu Desktop 自带了 VNC 服务器功能,无需安装额外软件。

  1. 进入 Settings (设置) > Sharing (共享)。
  2. 点击 Screen Sharing (屏幕共享),开启开关。
  3. 点击 Security (安全),勾选 Require a password to connect,并设置一个强密码。
  4. (可选)如果是首次使用,系统可能会提示安装 gnome-remote-desktop,按提示确认即可。

2. 安装 VNC 客户端

在 Windows 上,你可以使用免费的 TightVNC, RealVNC Viewer, 或者 UltraVNC。

  • 输入 Ubuntu 的 IP 地址。
  • 输入刚才设置的 VNC 密码。
  • 连接成功。

3. 命令行方式(更灵活,适合无 GUI 初始状态)

如果你更喜欢用命令行管理,可以安装 tigervnc-standalone-server:

sudo apt install tigervnc-standalone-server tigervnc-common -y

然后设置 VNC 密码:

vncpasswd

启动 VNC 服务(监听 5900 端口):

vncserver :1

此时,你需要知道服务器的内网 IP,然后用 VNC 客户端连接 IP:5901(注意端口号是 5900 + display number 1)。

注意:这种方式每次重启后需要手动启动服务,不如 RDP 方便。建议配合 systemd 服务脚本使用,或者直接使用方案一的 RDP。


关键注意事项 & 避坑指南

  1. 网络连通性:

    • 确保你的云服务器安全组(阿里云、腾讯云、AWS 等控制台)已经放行了 3389 (RDP) 或 5900 (VNC) 端口。很多新手装好了软件却连不上,90% 是因为云厂商的安全组没开端口。
    • 如果是在局域网内,确保电脑和服务器在同一网段。
  2. SSH 隧道(安全加分项):

    • 直接暴露 3389 或 5900 到公网存在安全风险。更专业的做法是通过 SSH 隧道转发。
    • 例如,使用 MobaXterm 或 PuTTY,建立 SSH 隧道将本地端口 3389 映射到远程服务器的 3389。这样即使不开放公网端口,也能安全连接。
  3. 用户体验差异:

    • RDP:感觉更像是在操作一台真正的 Windows 电脑,延迟低,支持音频重定向(需额外配置),适合日常办公。
    • VNC:画面传输的是像素块,对带宽要求较高,在网络不佳时容易卡顿、马赛克。适合临时查看或调试。
  4. 关于 Wayland vs X11:

    • Ubuntu 22.04+ 默认使用 Wayland 显示协议。xrdp 对 Wayland 的支持尚不完善,可能导致连接失败或黑屏。
    • 解决方案:在登录界面,点击用户名下方的齿轮图标,选择 "GNOME on Xorg" 进行登录。然后再通过 RDP 连接,稳定性会好很多。

总结建议

  • 追求稳定、高效、类 Windows 体验 -> 选 RDP (xrdp)。
  • 只需偶尔查看、跨平台需求多、不想折腾配置 -> 选 VNC (内置共享)。
  • 生产环境 -> 强烈建议使用 SSH 隧道 封装 RDP/VNC 流量,不要直接将端口暴露在公网。

按照上述步骤操作,你应该能顺利连接到 Ubuntu Desktop 的远程桌面。如果在连接过程中遇到特定错误代码,可以进一步提供日志信息进行分析。