在纯命令行环境(CLI)的 Ubuntu 上配置远程桌面,核心思路其实就两条:安装远程桌面协议服务 + 放行防火墙端口。
这里有个概念需要先厘清:Linux 原生常用的远程方式其实是 SSH(终端),但如果你需要的是图形化界面(GUI),也就是 Windows 用户习惯的“远程桌面”体验,通常有两种主流方案:
- XRDP:最接近 Windows RDP 的体验,兼容性好,适合大多数场景。
- VNC (如 TigerVNC):开源标准,跨平台能力强,但配置稍繁琐,且安全性默认较弱,需配合 SSH 隧道使用。
鉴于国内云服务器的普遍需求,我推荐优先使用 XRDP,因为它配置简单,直接用 Windows 自带的“远程桌面连接”就能连上来,不用装额外客户端。
以下是基于 Ubuntu 20.04/22.04 LTS 的标准操作流程:
第一步:更新系统并安装 XRDP
登录你的 Ubuntu 服务器,执行以下命令:
sudo apt update
sudo apt install xrdp -y
安装完成后,XRDP 服务通常会自启动。你可以检查状态确认是否运行正常:
sudo systemctl status xrdp
如果看到 active (running),说明服务已就绪。
第二步:配置图形会话后端(关键步骤)
Ubuntu 默认使用 GNOME 桌面环境。XRDP 默认配置可能无法正确启动 GNOME 会话,导致你连上去后黑屏或闪退。我们需要指定 XRDP 使用正确的会话管理器。
编辑 /etc/xrdp/startwm.sh 文件:
sudo nano /etc/xrdp/startwm.sh
在文件末尾添加以下内容(确保在 test -x /etc/X11/Xsession 之前):
# 针对 Ubuntu 20.04+ 和 GNOME 3.x
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
export XDG_DATA_DIRS=/usr/share/ubuntu:/usr/share/gnome:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop
export DESKTOP_SESSION=ubuntu
export GDMSESSION=ubuntu
# 启动 session manager
. /etc/X11/Xsession
注意:如果你使用的是 XFCE 桌面(很多云服务器默认是 XFCE 或无桌面),则不需要改这个文件,或者将 startwm.sh 中的内容替换为 xfce-session 相关的启动脚本。但对于绝大多数新手,上述 GNOME 配置能解决大部分“黑屏”问题。
保存并退出(Ctrl+O, Enter, Ctrl+X)。
然后重启 XRDP 服务使配置生效:
sudo systemctl restart xrdp
第三步:配置防火墙
这是最容易踩坑的地方。你需要允许 TCP 3389 端口通过防火墙。
如果你的 Ubuntu 启用了 ufw(Uncomplicated Firewall):
sudo ufw allow 3389/tcp
sudo ufw reload
如果你是在阿里云、腾讯云、华为云等国内主流厂商的 ECS/CVM 上操作,仅仅配置服务器内部防火墙是不够的。你必须去云控制台的 “安全组” 规则中,添加入方向规则:
- 协议:TCP
- 端口范围:3389
- 授权对象:0.0.0.0/0 (或者限制为你自己的 IP 段,更安全)
重要提示:国内云厂商对非标准端口或非 SSH/RDP 端口的管控较严,部分账号可能需要提交工单申请开通 3389 端口,具体请以控制台提示为准。
第四步:连接测试
现在,在你的本地 Windows 电脑上:
- 按
Win + R,输入mstsc打开远程桌面连接。 - 输入 Ubuntu 服务器的公网 IP 地址。
- 点击连接。
- 弹出 XRDP 登录窗口时:
- Session: 选择
Xvnc或Xorg(建议先试Xorg,如果不成功再试Xvnc)。 - Username: 你的 Ubuntu 用户名。
- Password: 对应的密码。
- Session: 选择
如果能成功进入桌面,说明配置完成。
常见问题与避坑指南
1. 登录后黑屏或白屏
这通常是权限或会话冲突问题。
- 解决方法:注销当前用户。XRDP 不允许同一用户同时从本地和远程登录。如果你已经在物理机或控制台登录了该用户,远程连接会失败。请先在服务器上执行
sudo pkill -u <username>杀掉对应用户的进程,然后再尝试远程连接。
2. 中文乱码
如果远程桌面里中文显示为方块,是因为缺少中文字体支持。
- 解决方法:
sudo apt install fonts-wqy-microhei fonts-wqy-zenhei -y sudo fc-cache -fv sudo systemctl restart xrdp
3. 性能卡顿
XRDP 基于 RDP 协议,带宽占用较低,但如果网络质量差,画面依然会卡。
- 优化建议:在 Windows 远程桌面连接的“选项” -> “显示”中,将颜色深度改为“高色 (16位)”;在“体验”标签页中,勾选“网络连接类型为宽带”,取消勾选“持久缩略图”等耗资源选项。
4. 关于 VNC 的备选方案
如果你发现 XRDP 不稳定,或者需要更底层的屏幕共享(比如用于监控摄像头画面而非办公),可以考虑安装 TigerVNC Server:
sudo apt install tigervnc-standalone-server tigervnc-common
vncpasswd # 设置密码
vncserver :1 # 启动实例
然后通过 VNC Viewer 连接 IP:5901。但请注意,VNC 默认不加密,务必通过 SSH 隧道转发端口,否则密码可能被嗅探。
总结
对于国内云服务器用户,XRDP + 安全组放行 3389 端口 是最省心、兼容性最好的方案。记住两个关键点:修改 startwm.sh 避免黑屏,以及检查云平台安全组规则。配置完成后,你就能像操作本地电脑一样,通过远程桌面管理你的 Linux 服务器了。
云技术博客