在京东云服务器(ECS)上安装 Ubuntu 后,配置远程图形化访问主要有两种主流方案:
- VNC 远程桌面(推荐用于轻量级、临时使用或无 GUI 初始环境)
- XRDP + VNC/本地桌面(更稳定,支持标准 RDP 客户端如 Windows 远程桌面连接)
下面以 Ubuntu 20.04/22.04 LTS 为例,提供完整配置步骤。
✅ 前置条件
- 已登录 SSH 到服务器
- 已安装图形界面基础包(若无,需先安装)
- 安全组已开放相应端口(见后文)
🚀 方案一:使用 VNC 远程桌面(简单快速)
步骤 1:安装桌面环境和 VNC Server
# 更新软件源
sudo apt update
# 安装 Ubuntu Desktop(可选,若已有桌面可跳过)
sudo apt install ubuntu-desktop -y
# 安装 VNC Server(推荐 TigerVNC 或 x11vnc)
sudo apt install tigervnc-standalone-server tigervnc-common -y
💡 如果不想安装完整桌面,也可仅安装
xfce4+x11vnc,更轻量:sudo apt install xfce4 xfce4-goodies x11vnc -y
步骤 2:设置 VNC 密码
vncpasswd
按提示设置密码(建议至少8位)。
步骤 3:启动 VNC Server
# 创建配置文件目录
mkdir -p ~/.vnc
# 编辑配置文件
nano ~/.vnc/config
添加以下内容:
geometry=1920x1080
depth=24
localhost=no
保存退出后,启动 VNC:
vncserver :1
首次启动会要求确认是否删除旧锁文件,输入 y。
步骤 4:配置防火墙/安全组
- 腾讯云/阿里云等云厂商控制台 → 安全组规则 → 添加入方向规则:
- 协议:TCP
- 端口:5901(对应
:1display) - 来源:
0.0.0.0/0或指定 IP
⚠️ 注意:VNC 明文传输,强烈建议通过 SSH 隧道加密访问(见下文“安全增强”部分)。
步骤 5:本地连接 VNC
使用 VNC Viewer(如 RealVNC、TigerVNC、UltraVNC)连接:
<公网IP>:5901
输入之前设置的密码即可进入图形桌面。
🚀 方案二:使用 XRDP(推荐,兼容 Windows 远程桌面)
XRDP 允许你使用 Windows 自带的“远程桌面连接”直接访问 Linux 图形界面。
步骤 1:安装桌面环境(若未安装)
sudo apt update
sudo apt install ubuntu-desktop -y
# 或轻量版:
# sudo apt install xfce4 xfce4-goodies -y
步骤 2:安装 XRDP
sudo apt install xrdp -y
步骤 3:配置 XRDP 使用正确的会话管理器
# 停止服务
sudo systemctl stop xrdp
# 备份默认配置
sudo cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.bak
# 修改最大连接数和端口(可选)
sudo nano /etc/xrdp/xrdp.ini
确保以下行存在且未被注释:
max_bpp=24
步骤 4:将当前用户加入 xrdp-sesman 组(关键!)
sudo adduser xrdp ssl-cert
sudo usermod -aG xrdp $USER
💡 必须执行此步,否则登录后黑屏或闪退。
步骤 5:重启 XRDP 服务
sudo systemctl restart xrdp
sudo systemctl enable xrdp
步骤 6:检查端口并开放安全组
XRDP 默认监听 3389 端口。
- 云控制台安全组添加入方向规则:
- 协议:TCP
- 端口:3389
- 来源:
0.0.0.0/0或指定 IP
步骤 7:本地连接
在 Windows 上打开 “远程桌面连接”(mstsc),输入:
<公网IP>:3389
点击连接,选择 Xorg 会话,输入用户名和密码即可。
✅ 优点:无需额外客户端,安全性优于 VNC(可通过 SSH 隧道加固)。
🔒 安全增强建议(强烈推荐)
无论是 VNC 还是 XRDP,不建议直接暴露端口到公网。推荐使用 SSH 隧道:
方法:SSH 端口转发(本地机器操作)
对于 XRDP(3389):
ssh -L 3389:localhost:3389 username@<公网IP>
然后本地浏览器或远程桌面连接 localhost:3389
对于 VNC(5901):
ssh -L 5901:localhost:5901 username@<公网IP>
然后 VNC Viewer 连接 localhost:5901
这样即使安全组限制严格,也能安全访问。
🛠 常见问题排查
| 问题 | 解决方案 |
|---|---|
| 登录后黑屏 | 检查是否执行了 adduser xrdp ssl-cert;尝试切换会话类型为 Xvnc 而非 Xorg |
| XRDP 服务启动失败 | 检查日志:sudo journalctl -u xrdp -xe;确保没有冲突的显示管理器(如 gdm3) |
| VNC 连接超时 | 确认安全组已放行 5901;尝试用 SSH 隧道绕过 |
| 字体模糊/分辨率低 | 在 VNC/XRDP 中调整 geometry/bpp 参数;或使用 xrandr 设置分辨率 |
✅ 总结推荐
| 场景 | 推荐方案 |
|---|---|
| 偶尔使用、轻量需求 | VNC + SSH 隧道 |
| 日常开发、需要高兼容性 | XRDP + SSH 隧道(最推荐) |
| 高性能图形处理 | 考虑 GPU 实例 + NVIDIA 驱动 + VNC/XRDP |
安装完成后,建议立即修改默认密码、禁用 root 远程登录、启用 fail2ban 等安全措施。
如需进一步自动化部署,可使用 cloud-init 或 Ansible 脚本批量配置。
CLOUD技术笔记