在 Ubuntu 云服务器上,远程连接主要分两种场景:Linux 服务器本身(SSH)和 图形化桌面环境(VNC/RDP)。绝大多数开发者和运维人员使用的是 SSH,但如果你需要操作 GUI 界面,则涉及 VNC 或 RDP。
以下是针对这两种场景的主流、合规且高效的操作方式,结合国内云厂商(如阿里云、腾讯云、华为云等)的常见实践进行说明。
一、 核心方式:SSH 远程登录(命令行)
这是最标准、最安全、性能最好的方式。Ubuntu 默认安装并启用 OpenSSH Server。
1. 本地终端直接连接(推荐)
适用于 macOS、Linux 用户,或 Windows 10/11 自带 PowerShell/CMD。
ssh username@your_server_ip
# 示例:
ssh root@47.98.xx.xx
首次连接时会提示指纹确认,输入 yes 后输入密码即可。
2. Windows 用户使用 PuTTY / MobaXterm / Xshell
- PuTTY:经典轻量级工具,适合简单连接。
- MobaXterm:功能强大,内置 X11 转发,适合需要图形输出到本地的场景。
- Xshell:商业软件,个人学习免费,稳定性好。
注意:确保云服务器的安全组(Security Group)或防火墙规则中,已开放 22 端口(TCP),否则无法连接。
3. 密钥认证(更安全、更高效)
避免每次输入密码,尤其适合自动化脚本和多服务器管理。
生成密钥对(本地执行):
ssh-keygen -t rsa -b 4096
将公钥上传至服务器(使用 ssh-copy-id):
ssh-copy-id username@your_server_ip
之后只需配置客户端私钥路径,即可免密登录。
二、 图形化远程连接(GUI)
当你需要操作桌面应用、测试前端页面、或使用需要图形界面的工具时,才考虑此方式。不推荐新手直接使用 VNC,除非你有明确需求。
1. VNC(Virtual Network Computing)
- 原理:通过 VNC Server 共享屏幕,客户端用 VNC Viewer 查看和控制。
- 优点:通用性强,几乎所有系统都支持。
- 缺点:延迟高、画质压缩严重、无硬件提速,不适合日常开发。
- 适用场景:临时调试、故障恢复、无头服务器(Headless)的紧急访问。
操作步骤简述:
- 在 Ubuntu 上安装 VNC Server(如
tigervnc-standalone-server或xrdp+xfce4)。 - 配置防火墙开放 5900 端口。
- 使用 RealVNC、TigerVNC Viewer 等客户端连接。
⚠️ 重要提醒:VNC 通常明文传输,务必通过 SSH Tunneling 隧道方式使用,或确保仅在内网/IP白名单下访问,防止密码泄露。
2. XRDP(Windows Remote Desktop Protocol on Linux)
- 原理:让 Ubuntu 支持 Windows 的 RDP 协议。
- 优点:可用 Windows 自带的“远程桌面连接”客户端,体验接近原生。
- 缺点:配置复杂,多用户并发易冲突,稳定性不如原生 RDP。
- 适用场景:习惯使用 Windows RDP 的用户,需临时访问 Ubuntu 桌面。
安装步骤(以 Ubuntu 20.04+ 为例):
sudo apt update
sudo apt install xrdp xfce4 xfce4-goodies
sudo systemctl enable xrdp
sudo systemctl start xrdp
然后使用 Windows “远程桌面连接” 输入 IP 和端口 3389 登录,选择 XFCE 会话。
三、 国内云厂商特有方式:Web SSH / VNC 控制台
几乎所有主流云厂商(阿里云 ECS、腾讯云 CVM、华为云 CES 等)都在控制台网页端提供 “远程连接” 功能。
特点:
- 无需本地安装任何客户端。
- 基于浏览器,通过 WebSocket 实现 SSH 或 VNC 连接。
- 支持断点续传、截图保存、文件上传下载(部分厂商支持)。
- 通常用于紧急救援、初始初始化设置。
使用方法:
- 登录云厂商控制台。
- 找到实例列表 → 点击对应实例 → 选择 “远程连接” 或 “VNC 连接”。
- 输入用户名和密码(或选择密钥认证)。
- 在浏览器窗口中直接操作。
✅ 优势:跨平台、开箱即用、无需配置本地网络。
❌ 劣势:依赖云厂商服务可用性;长时间使用可能卡顿;不适合高频交互操作。
四、 最佳实践建议
| 场景 | 推荐方式 | 理由 |
|---|---|---|
| 日常开发、运维、部署 | SSH + 密钥认证 | 安全、高效、稳定、支持端口转发、SFTP |
| 临时调试、故障恢复 | 云厂商 Web 控制台 | 无需准备环境,快速接入 |
| 需要图形界面操作 | VNC over SSH Tunnel 或 XRDP | 谨慎评估性能开销,优先尝试 SSH 隧道映射端口 |
| 团队协作 | JumpServer / Bastion Host | 集中审计、权限管控、符合合规要求 |
五、 常见问题排查
-
连接超时(Connection timed out)
- 检查云服务器安全组是否放行 22 端口。
- 检查操作系统内部防火墙(
ufw或iptables)是否阻止。 - 确认 IP 地址是否正确。
-
Permission denied (publickey,password)
- 确认用户名正确(通常是
ubuntu或root,取决于镜像类型)。 - 若使用密钥,检查私钥权限是否为
600:chmod 600 ~/.ssh/id_rsa - 检查
/etc/ssh/sshd_config中PermitRootLogin是否允许 root 登录(出于安全考虑,建议禁用 root 直接登录,改用普通用户 sudo)。
- 确认用户名正确(通常是
-
VNC/XRDP 登录后黑屏或闪退
- 多数因桌面环境未正确启动或会话冲突导致。
- 建议重启
xrdp服务:sudo systemctl restart xrdp - 清除用户
.xsession缓存:rm -f ~/.xsession-errors
总结
对于大多数技术用户:
- 首选 SSH,配合密钥认证,使用 VS Code Remote-SSH、MobaXterm 或 Terminal。
- 备用 Web 控制台,用于紧急情况。
- 谨慎使用 VNC/XRDP,仅在确实需要图形界面时启用,并注意安全防护。
保持系统更新、定期备份密钥、限制 root 登录、启用 fail2ban 等入侵检测机制,是保障远程连接安全的基础。
云技术博客