在 Ubuntu 服务器上安装图形界面(GUI)后,通过 Windows 进行远程访问主要有两种主流方案:RDP (Remote Desktop Protocol) 和 VNC (Virtual Network Computing)。
鉴于你使用的是 Ubuntu(通常基于 GNOME 或 XFCE 桌面环境),推荐首选 RDP 方案,因为微软的 Remote Desktop 客户端对 Windows 用户最友好,且性能、安全性优于传统 VNC。以下是详细操作步骤:
方案一:使用 RDP(推荐)
Ubuntu 官方仓库中的 xrdp 包可以很好地支持 RDP 协议。但需要注意,原生 GNOME 桌面与 xrdp 存在兼容性问题(可能导致黑屏或登录失败)。因此,最佳实践是安装轻量级桌面环境(如 XFCE)或使用特定配置。
步骤 1:更新系统并安装必要组件
sudo apt update
sudo apt upgrade -y
步骤 2:安装 xrdp 和 XFCE4(解决 GNOME 兼容性问题)
虽然可以直接用 GNOME,但 XFCE 更稳定、资源占用更低,适合服务器场景。
sudo apt install xrdp xfce4 xfce4-goodies -y
步骤 3:配置 xrdp 服务
确保 xrdp 启动并设置为开机自启:
sudo systemctl enable xrdp
sudo systemctl start xrdp
检查状态是否正常:
sudo systemctl status xrdp
步骤 4:配置防火墙
如果你使用了 UFW 防火墙,需要允许 RDP 端口(默认 3389):
sudo ufw allow 3389/tcp
sudo ufw reload
注意:如果服务器部署在云服务器(如阿里云、腾讯云、AWS等),务必在云控制台的“安全组”或“防火墙”规则中开放 TCP 3389 端口。
步骤 5:从 Windows 连接
- 在 Windows 上打开 “远程桌面连接” (mstsc)。
- 输入 Ubuntu 服务器的 公网 IP 地址。
- 点击连接。
- 在弹出的 xrdp 登录界面中:
- Session: 选择
Xvnc或Xorg(建议先试Xorg,若黑屏则换Xvnc)。 - Username/Password: 输入你的 Linux 用户名和密码。
- Session: 选择
✅ 优点:速度快、支持剪贴板、多显示器适配好、Windows 自带客户端无需额外软件。
⚠️ 缺点:初始配置稍复杂;某些专有软件可能因缺少 GNOME 特性而显示异常。
方案二:使用 VNC(通用但体验一般)
如果你不想折腾桌面兼容性,或者需要跨平台访问(不仅限于 Windows),可以使用 VNC。常用工具包括 tigervnc 或 realvnc。
步骤 1:安装 VNC Server
以 TigerVNC 为例:
sudo apt install tigervnc-standalone-server tigervnc-common -y
步骤 2:设置 VNC 密码
首次运行需设置密码:
vncpasswd
按提示设置一个强密码(避免过于简单)。
步骤 3:启动 VNC 服务
你可以手动启动一次以生成配置文件:
vncserver :1
这会创建一个显示号为 :1 的服务,监听端口 5901。
步骤 4:配置防火墙
允许 VNC 端口(默认 5901):
sudo ufw allow 5901/tcp
sudo ufw reload
同样,记得在云服务商的安全组中开放 TCP 5901 端口。
步骤 5:从 Windows 连接
- 下载并安装 VNC Viewer(如 RealVNC Viewer 或 TightVNC)。
- 输入
IP地址:5901。 - 输入之前设置的 VNC 密码。
✅ 优点:配置简单,几乎所有桌面环境都兼容。
⚠️ 缺点:
- 安全性差:VNC 默认不加密传输,建议通过 SSH 隧道连接。
- 性能较低:相比 RDP,图像刷新率和压缩效率较差。
- 无音频转发:无法播放声音。
🔒 安全加固建议(重要!)
无论使用哪种方式,直接暴露图形接口到公网都存在风险,请务必采取以下措施:
-
修改默认端口(可选但推荐)
在/etc/xrdp/xrdp.ini中修改port=3389为其他高位端口(如 3390),并在防火墙同步更新。 -
使用 SSH 隧道(强烈推荐)
即使使用 RDP/VNC,也建议通过 SSH 隧道转发流量,避免直接暴露图形端口。Windows 下创建 SSH 隧道(PowerShell 或 CMD):
ssh -L 3389:localhost:3389 username@your_server_ip然后本地连接
localhost:3389,所有流量将通过加密的 SSH 通道传输。 -
启用两步验证(2FA)
对于 xrdp,可集成 Google Authenticator 实现双因素认证,大幅提升安全性。 -
禁用不必要的用户登录
确保只有你需要管理的用户能登录远程桌面,避免 root 直接远程登录。 -
定期更新系统
sudo apt update && sudo apt upgrade -y
常见问题排查
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| 连接后黑屏 | GNOME 与 xrdp 不兼容 | 改用 XFCE/LXDE 桌面,或在 xrdp 中选择 Xvnc 会话 |
| 连接超时 | 防火墙未放行 | 检查 UFW 和云服务器安全组是否开放对应端口 |
| 登录后立即断开 | 权限问题或会话冲突 | 删除 ~/.Xauthority 文件,重启 xrdp 服务 |
| 中文乱码 | 缺少中文字体 | 安装字体包:sudo apt install fonts-wqy-zenhei |
总结
- 追求性能和易用性 → 选 RDP + xrdp + XFCE
- 追求简单和兼容性 → 选 VNC + TigerVNC
- 安全第一 → 始终配合 SSH 隧道 使用
根据你的实际需求选择合适的方案即可。大多数生产环境中,RDP 是更优解。
云技术博客