在 Ubuntu Server 上安装图形化界面并支持远程桌面连接,通常有两种主流方案:
- 使用 VNC(Virtual Network Computing):适合需要完整桌面环境、跨平台访问的场景。
- 使用 XRDP:基于 Microsoft RDP 协议,兼容 Windows 远程桌面客户端,体验更流畅。
下面分别介绍两种方案的详细步骤(以 Ubuntu 22.04/24.04 LTS 为例):
✅ 方案一:安装 XRDP(推荐,兼容 Windows 远程桌面)
步骤 1:更新系统并安装依赖
sudo apt update
sudo apt upgrade -y
步骤 2:安装 XRDP 和桌面环境(轻量级推荐 Xfce)
不建议直接安装 GNOME(太重),Xfce 更节省资源且稳定。
sudo apt install xrdp xfce4 xfce4-goodies -y
步骤 3:配置 XRDP 使用 Xfce 会话
创建或编辑 /etc/xrdp/startwm.sh,确保在文件末尾添加:
# 强制使用 Xfce 桌面
export XSESSION=XFCE4
⚠️ 注意:不要注释掉原有
startxfce4行,而是追加上述两行到文件末尾。
更稳妥的做法是修改为:
# /etc/xrdp/startwm.sh 示例内容(保留原有逻辑,最后添加)
if [ -r /etc/X11/default-display-manager ]; then
/etc/X11/default-display-manager &
fi
# 启动 Xfce
startxfce4
若已有 startxfce4,则无需重复;若无,请手动添加。
步骤 4:启动并启用 XRDP 服务
sudo systemctl enable --now xrdp
sudo ufw allow 3389/tcp # 开放 RDP 端口(如已用 UFW)
# 若未启用防火墙,可跳过此步;但生产环境务必开启
步骤 5:验证服务状态
systemctl status xrdp
步骤 6:从客户端连接
- Windows:打开「远程桌面连接」→ 输入服务器 IP → 用户名/密码登录
- macOS:安装 Microsoft Remote Desktop(App Store)
- Linux:可用
remmina或xfreerdp
💡 首次连接可能提示“会话断开”,这是正常现象(因多用户限制)。可尝试注销后重连,或检查日志:
sudo journalctl -u xrdp -f
✅ 方案二:安装 VNC + XFCE(传统方式,需额外客户端)
步骤 1:安装桌面环境和 VNC 服务器
sudo apt update
sudo apt install xfce4 xfce4-goodies tightvncserver -y
步骤 2:初始化 VNC 并设置密码
vncserver :1
# 按提示设置 VNC 密码(与系统登录密码不同!)
步骤 3:配置自动启动脚本(可选但推荐)
编辑 ~/.vnc/xstartup:
nano ~/.vnc/xstartup
替换内容为:
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4
赋予执行权限:
chmod +x ~/.vnc/xstartup
步骤 4:重启 VNC 服务
vncserver -kill :1
vncserver :1
步骤 5:开放端口(默认 5901 对应 :1)
sudo ufw allow 5901/tcp
步骤 6:连接方式
- 使用 VNC Viewer(RealVNC、TigerVNC 等)
- 地址格式:
服务器IP:5901或服务器IP:1
🔒 安全建议:通过 SSH 隧道加密 VNC 流量:
ssh -L 5901:localhost:5901 user@your-server-ip然后本地连接
localhost:5901
🛡️ 安全加固建议(无论哪种方案)
- 禁用 root 登录:确保使用普通用户 +
sudo - 强密码策略:避免弱口令
- 限制来源 IP(UFW 示例):
sudo ufw allow from 192.168.1.0/24 to any port 3389 - 启用 Fail2Ban 防止暴力破解:
sudo apt install fail2ban -y sudo systemctl enable --now fail2ban - 定期更新系统:
sudo apt update && sudo apt upgrade -y
❓ 常见问题排查
| 问题 | 解决方案 |
|---|---|
| 连接后立即断开 | 检查 /var/log/xrdp.log;确认 startwm.sh 正确配置了桌面环境 |
| 黑屏/无界面 | 尝试更换桌面环境(如改用 mate 或 lxqt);检查显卡驱动(云主机通常无需) |
| 中文乱码 | 安装语言包:sudo apt install language-pack-zh-hans,并在 .xprofile 中设置 LANG=zh_CN.UTF-8 |
需要我为你提供:
- 自动化安装脚本?
- 针对特定云厂商(AWS/Aliyun/腾讯云)的优化配置?
- Docker 容器内部署图形界面的方案?
欢迎告诉我你的具体需求 😊
PHPWP博客