.## 1. 介绍:为何在 Ubuntu 上使用远程桌面
Ubuntu 的远程操作正变得日益普遍
像 Ubuntu 这样的基于 Linux 的操作系统传统上与开发者和服务器管理员联系在一起,主要用于本地环境。然而,近年来随着远程工作的普及以及 Ubuntu 作为学习电脑的使用率提升,远程操作 Ubuntu的需求显著增长。
例如,许多用户在外出时远程管理家中的 Ubuntu 服务器,或在旧笔记本上安装 Ubuntu 并将其用作远程开发机器。远程桌面技术的使用场景正不断扩展。
与 Windows 有何不同?Ubuntu 独有的优势
你可能会想,“Windows 已经有远程桌面了,为什么要用 Ubuntu?”事实上,Ubuntu 具备多项特别适合远程操作的特性。
- 轻量且稳定,即使在低配硬件上也能流畅运行
- 高安全性,并且对 SSH 等加密通信有良好兼容性
- 免费开源,适合多设备使用,成本效益高
基于这些原因,Ubuntu 越来越多地被用于编程教育和服务器场景,并通过远程连接得到积极利用。
即使声称复杂,也对初学者友好
对于不熟悉基于 Linux 的操作系统的用户来说,远程连接的设置可能显得令人生畏,常常与命令行操作联系在一起。过去,在 Ubuntu 上设置远程访问需要手动配置 VNC 服务器或进行 SSH 端口转发,要求具备一定的技术水平。
然而,自 Ubuntu 22.04 LTS 起,已原生支持通过 RDP(Remote Desktop Protocol)进行远程连接,并且可以完全通过 GUI 完成配置。这一改进让远程桌面的使用对初学者而言变得更加容易。
本文的目的与结构
本文提供一步步、面向初学者的指南,教你如何在 Ubuntu 上启用远程桌面连接。内容涵盖最新的 Ubuntu 22.04 功能、旧版本的 xrdp 配置以及使用 VNC 与 SSH 隧道的高级安全技术。
通过对比各方法的特性,本指南帮助你选择最适合自己环境的方案。建议阅读至全文结束。
2. Ubuntu 远程桌面方法对比:VNC 与 RDP
多种协议可用于远程连接
在 Ubuntu 上实现远程桌面访问的方式不止一种。最常见的三种方案是:
- RDP(Remote Desktop Protocol)
- VNC(Virtual Network Computing)
- SSH(Secure Shell)配合 X 转发或隧道
其中,RDP 与 VNC 主要用于传输桌面画面本身,适合一般的远程操作。SSH 则主要用于命令行访问或作为补充的安全机制。
本节重点关注对初学者尤为友好的 RDP 与 VNC,并比较它们的特性。
什么是 RDP(Remote Desktop Protocol)?
RDP 是最初由 Microsoft 开发的协议,已成为 Windows 的标准远程桌面功能。在 Ubuntu 上,可通过 xrdp 等软件实现 RDP 远程访问。
从 Ubuntu 22.04 起,RDP 功能已直接内置于 GNOME 桌面环境,无需单独安装 xrdp,且全部配置可在 GUI 中完成。
RDP 的关键特性:
- 与 Windows 高度兼容,可使用标准的 Windows 远程桌面客户端访问
- 屏幕渲染快速流畅
- 内置身份验证和加密,安全性相对较强
推荐使用场景:
- 使用 Ubuntu 和 Windows 的用户
- 希望使用易用的基于 GUI 配置的新手
- 优先考虑安全性和稳定性的用户
VNC(虚拟网络计算)是什么?
VNC 是一种跨平台的远程桌面技术。在 Ubuntu 上,可以使用 vino 或 tightvncserver 等软件实现。
与 RDP 不同,VNC 按顺序传输桌面图像,这可能导致 渲染速度稍慢。然而,它提供了更大的灵活性,包括 会话共享,允许多个用户查看和控制同一桌面。
VNC 的关键特性:
- 跨平台兼容性(Linux、macOS、Android 等)
- 允许多个用户共享同一桌面会话
- 原生安全性较弱,通常与 SSH 隧道一起使用
推荐用于:
- 涉及多个用户的远程协作
- 从非 Windows 设备访问
- 希望更多自定义的中级到高级用户
比较表:RDP 与 VNC
| Item | RDP | VNC |
|---|---|---|
| Ease of setup | Excellent (GUI-based, easy from Windows) | Moderate (initial setup required) |
| Display performance | Excellent (smooth) | Moderate (may feel sluggish) |
| Security | Excellent (encryption enabled by default) | Moderate (SSH tunneling recommended) |
| Session sharing | No | Yes (multiple users can share) |
| Platform support | Mainly Windows | Cross-platform (Linux, macOS, Android, etc.) |
您应该选择哪一个?
推荐 RDP 给新手和 Windows 用户。它易于配置并提供稳定的性能,非常适合首次使用 Ubuntu 远程桌面的用户。
另一方面,VNC 为需要高级自定义或从非 Windows 设备访问的用户提供更大的灵活性。在这种情况下,必须将 VNC 与 SSH 隧道结合以确保安全。
3. [Latest] 如何在 Ubuntu 22.04 上启用 RDP(远程桌面)
Ubuntu 22.04 中的内置 RDP 支持
从 Ubuntu 22.04 LTS 开始,默认的 GNOME 桌面环境包含 内置远程桌面支持。这意味着 您可以无需安装 xrdp 等外部工具即可使用 RDP。
此功能允许您直接从标准的 Windows 远程桌面客户端(mstsc.exe)连接,这对新手非常友好。
先决条件和检查
在启用 RDP 之前,请确认以下内容:
- 您的 Ubuntu 版本为 22.04 或更高
- 您正在使用 GNOME 桌面环境
- 您使用 X.org 会话登录,而不是 Wayland(重要)
最后一点——使用 X.org 而非 Wayland 登录——尤为重要。目前,Wayland 下不支持 RDP 连接。请按照以下步骤切换会话。
如何使用 X.org 会话登录
- 在 Ubuntu 登录屏幕上,选择您的用户名
- 在输入密码之前,点击右下角的 齿轮图标 (⚙)
- 选择 “Ubuntu on Xorg”
- 输入您的密码并登录
启用远程桌面的步骤
- 打开设置应用程序
- 从左侧菜单选择 共享
- 点击 远程桌面
- 打开 启用远程桌面
- 将认证方法设置为 密码 并输入连接密码
- 在网络下,选中 允许本地网络上的用户连接
Ubuntu 端的配置到此完成。
如何从 Windows 连接到 Ubuntu
- 按 Windows 键 + R,输入 mstsc ,然后按 Enter
- 在计算机字段中输入 Ubuntu 的 IP 地址
- 提示时,输入 Ubuntu 用户名和密码
- 连接建立
您可以在设置 → Wi-Fi 或有线连接下找到 Ubuntu IP 地址。或者,在终端中使用以下命令:
ip a
防火墙配置(如果需要)
如果启用了 Ubuntu 的 UFW(简易防火墙),您必须允许 RDP 端口(默认 TCP 3389)。
sudo ufw allow 3389/tcp
然后验证防火墙状态:
sudo ufw status
常见问题及解决方案
| Issue | Solution |
|---|---|
| Black screen after connecting | Confirm that you are logged in using X.org |
| Connection refused | Check firewall settings and ensure both devices are on the same network |
| No response after entering password | Verify that Remote Desktop is enabled in GNOME Sharing settings |
注意:旨在用于 LAN
此方法主要设计用于 同一本地网络 (LAN) 内使用。要从网络外部连接,您需要额外的措施,如 VPN、端口转发或 SSH 隧道,这些将在后续部分中介绍。
4. 如何在 Ubuntu 20.04 及更早版本中使用 xrdp 进行远程连接
Ubuntu 20.04 及更早版本需要 xrdp
Ubuntu 20.04 及更早版本不像 Ubuntu 22.04 那样内置 RDP 功能。要从 Windows 启用远程访问,您必须安装 xrdp,它为 Ubuntu 添加了 RDP 服务器功能。
xrdp 与 Microsoft 的 RDP 协议兼容,允许从标准的 Windows 远程桌面客户端轻松访问。
安装和配置 xrdp
在终端中运行以下命令来安装 xrdp:
sudo apt update
sudo apt install xrdp -y
安装后,xrdp 服务会自动启动。使用以下命令检查其状态:
sudo systemctl status xrdp
如果您看到绿色的“active (running)”,则服务运行正常。
选择桌面环境(推荐 Xfce)
默认的 GNOME 桌面环境与 xrdp 不兼容,可能导致黑屏或会话失败。
为了更好的兼容性,推荐安装并使用轻量级的 Xfce 桌面环境。
安装 Xfce
sudo apt install xfce4 -y
配置会话
创建或编辑以下文件,以指示 xrdp 使用 Xfce:
echo "startxfce4" > ~/.xsession
设置适当的权限:
chmod +x ~/.xsession
在大多数本地使用情况下,此配置就足够了。
防火墙设置
xrdp 使用 TCP 端口 3389。如果启用了 UFW,请允许此端口:
sudo ufw allow 3389/tcp
从 Windows 连接
- 按 Windows 键 + R 并运行
mstsc - 输入 Ubuntu 的 IP 地址
- 当 xrdp 登录屏幕出现时,输入您的 Ubuntu 用户名和密码
- Xfce 桌面会话将启动
您可以使用 ip a 或 hostname -I 确认 IP 地址。
常见问题和修复
| Symptom | Cause and solution |
|---|---|
| Black screen after login | Use Xfce instead of GNOME; ensure startxfce4 is set in .xsession |
| “Session ended” message | Desktop environment mismatch; confirm Xfce installation |
| Connection drops after password entry | Possible polkit or security issue; check system logs |
在系统启动时启用 xrdp(可选)
sudo systemctl enable xrdp
5. 使用 VNC 服务器连接(vino / tightvnc)
什么是 VNC?
VNC(Virtual Network Computing)是一种跨平台协议,用于共享桌面屏幕。Ubuntu 通过各种服务器实现支持 VNC,从而可以从 PC、智能手机和其他设备访问。
虽然 VNC 可能比 RDP 更慢且更复杂,但它提供了灵活的会话共享和广泛的平台支持。
Ubuntu 上流行的 VNC 服务器
| Server | Features |
|---|---|
| vino | Integrated with GNOME; easy GUI-based setup |
| tightvncserver | Lightweight, command-line focused |
| x11vnc | Access the active logged-in session; ideal for screen sharing |
在 GNOME 中使用 vino(Ubuntu 20.04–22.04)
如需安装 vino
sudo apt install vino -y
启用屏幕共享
- 打开设置
- 选择共享 → 屏幕共享
- 开启屏幕共享
- 启用网络访问
- 设置用于身份验证的密码
vino 要正常运行需要 X.org 登录。
测试连接
使用 VNC 客户端(如 RealVNC Viewer 或 TigerVNC)连接到:
192.168.1.100:5900
使用 tightvncserver 进行轻量级设置
安装
sudo apt install tightvncserver -y
初始启动
vncserver
启动 VNC 会话
vncserver :1
这会在端口 5901 上启动一个会话。
配置轻量级桌面(可选)
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
chmod +x ~/.vnc/xstartup
安全注意:使用 SSH 隧道
VNC 流量 未加密。在本地网络之外使用时,应始终与 SSH 隧道结合使用。
ssh -L 5901:localhost:5901 your-user@remote-ubuntu
6. 如何从 Windows 连接到 Ubuntu
Windows 端需要客户端软件
即使 Ubuntu 配置正确,客户端机器——通常是 Windows——也必须具有兼容软件。
使用 Windows 内置远程桌面(RDP)
步骤
- 按 Windows 键 + R 并输入 mstsc
- 输入 Ubuntu 的 IP 地址
- 输入您的凭据
优势
- 无需额外软件
- 快速且稳定的性能
- Windows 用户熟悉的界面
限制
- Ubuntu 需要 RDP 支持
- 设计用于局域网使用,除非结合 VPN 或 SSH 隧道
7. 故障排除:日文输入和键盘问题
远程会话中日文输入的常见问题
远程操作 Ubuntu 时,您可能会遇到诸如 无法输入日文文本、半角/全角键不起作用 或 反斜杠 () 键无法正确工作 等问题。这些问题是由本地和远程访问之间的 会话环境差异 引起的。
本节解释远程连接期间遇到的常见日文输入和键盘问题以及如何解决它们。
日文输入不起作用 / IME 未激活
常见原因
- 远程会话中输入法 (IME) 未运行
- fcitx 或 ibus 等框架未正确链接到会话
- GNOME 会话与 RDP 之间的兼容性问题
解决方案 1:显式重启 Mozc + fcitx
Ubuntu 上最常见的日文输入环境是 fcitx-mozc。如果在远程会话中未自动启动,手动重启通常可以解决问题。
fcitx-autostart
或
fcitx -r
解决方案 2:每个会话重新配置输入源
- 打开设置 → 区域和语言 → 输入源
- 确认 “Japanese (Mozc)” 已启用
- 如果缺失,点击 “+” 添加日文输入
注销并重新登录可能需要以使更改生效。
半角/全角键不起作用或键映射不正确
远程桌面会话可能错误解释 键盘布局,特别是在日文 (JIS) 和 US 键盘之间切换时。这通常会导致反斜杠 () 和 at-sign (@) 等键的问题。
解决方案:显式定义键盘布局
- 设置 → 区域和语言 → 输入源
- 选择 “Japanese” 或 “Japanese (OADG 109A)”
- 如需,使用以下命令应用布局:
setxkbmap -model jp106 -layout jp
将此命令添加到 .xsession 或 .bashrc 可确保在远程登录期间自动应用。
无法输入反斜杠 () 或竖线 (|)
此问题在 RDP 连接中很常见,由 xrdp 键映射不匹配 引起。
变通方法:调整 xrdp 键映射
- 编辑以下文件:
sudo nano /etc/xrdp/km-0411.ini
- 此文件定义了日文键盘映射。高级用户可以手动调整 JIS 和 US 布局之间的差异。
一个更实用的解决方案是 切换到 VNC 等其他协议,这完全避免了此问题。
切换失败时的替代输入快捷键
Mozc (fcitx) 默认值:
Ctrl + SpaceShift + Space(可配置)
这些快捷键可以通过 fcitx 配置工具自定义。
最后手段:从本地机器复制和粘贴
如果日文输入完全不可用,从本地 Windows 机器复制文本并粘贴到 Ubuntu 可以作为临时变通方法。
总结:日文输入行为取决于协议
| Issue | Cause | Solution |
|---|---|---|
| Japanese input unavailable | IME not running | Restart fcitx-mozc, add input source |
| Incorrect key layout | Keyboard mismatch | Use setxkbmap |
| Backslash not working | xrdp keymap issue | Edit keymap or switch to VNC |
8. 使用 SSH 隧道进行安全的远程访问
远程桌面连接的安全风险
虽然 RDP 和 VNC 很方便,但 直接将它们暴露在互联网上是危险的。没有适当保护,它们容易受到未经授权的访问和流量拦截。
SSH 隧道 通过为远程桌面流量创建加密通道来提供安全解决方案。
[Windows] --(SSH encrypted)--> [Ubuntu]
|
+--> (Internal port forwarding for RDP or VNC)
什么是 SSH 隧道?
SSH 隧道使用安全壳协议来安全地转发其他类型的网络流量。这允许即使是非加密协议如 VNC 也能通过加密通道安全运行。
先决条件:在 Ubuntu 上启用 SSH
sudo apt update
sudo apt install openssh-server -y
sudo systemctl status ssh
sudo ufw allow ssh
从 Windows 创建 SSH 隧道(VNC 示例)
使用命令行
ssh -L 5901:localhost:5901 your-user@ubuntu-ip
然后将您的 VNC 客户端连接到:
localhost:5901
使用 GUI SSH 客户端
- Tera Term 或 PuTTY 可以通过 GUI 配置端口转发
- 适合偏好图形工具的用户
使用 SSH 隧道与 RDP
ssh -L 3389:localhost:3389 your-user@ubuntu-ip
然后使用 Windows 远程桌面连接到 localhost:3389。
使用公钥认证提升安全性
ssh-keygen
ssh-copy-id your-user@ubuntu-ip
PubkeyAuthentication yes
PasswordAuthentication no
sudo systemctl restart ssh
SSH 隧道的优缺点
| Item | Description |
|---|---|
| ✔ Advantages | Encrypted communication with high security |
| ✔ Advantages | No need to expose RDP/VNC ports directly |
| ✖ Disadvantages | Initial setup complexity |
| ✖ Disadvantages | Tunnel must remain open during use |
结论:SSH 隧道对于外部访问至关重要
当从本地网络外部远程访问 Ubuntu 时,强烈推荐使用 SSH 隧道。它提供了一个安全且灵活的远程访问解决方案。
9. 常见问题解答:关于 Ubuntu 远程桌面的常见问题
Q1. 为什么我的远程连接失败?
A. 检查以下内容:
- 正确的 IP 地址
- 相同的 LAN 连接
- 防火墙设置
- RDP 的 X.org 会话
- 运行的服务(xrdp、VNC、SSH)
Q2. 屏幕卡顿或不稳定
A. 尝试:
- 在 RDP 中使用较低带宽模式
- VNC 使用 Xfce
- 避免高负载图形
- 使用有线 LAN
Q3. Ubuntu 可以连接到 Windows 吗?
A. 是的。使用 Remmina:
sudo apt install remmina -y
Q4. 如何从网络外部连接?
A. 使用 VPN 或 SSH 隧道。端口转发不推荐。
Q5. 我可以避免输入密码吗?
A. SSH 支持公钥认证。RDP/VNC 的自动登录会增加风险,应避免。
Q6. 为什么日文输入失败?
A. IME 或键盘布局问题。重启 fcitx 或应用 setxkbmap。
Q7. 远程桌面是免费的吗?
A. 是的。Ubuntu、xrdp、VNC 和 Remmina 是开源且免费的。
Q8. 多个用户可以共享同一屏幕吗?
A. VNC 允许共享会话;RDP 使用单独会话。
Q9. Ubuntu 在远程访问期间进入睡眠模式
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'
Q10. 我应该使用 RDP 还是 VNC?
A. RDP 用于性能,VNC 用于共享和灵活性。
10. 结论:掌握 Ubuntu 上的安全高效远程访问
Ubuntu 上的远程桌面比您想象的更容易
Ubuntu 远程桌面实用且易于访问,即使对初学者也是如此。Ubuntu 22.04 提供内置 RDP,而较旧版本与 xrdp 或 VNC 配合良好。
根据您的需求选择合适的方法
| Use case | Recommended method | Notes |
|---|---|---|
| Home LAN access | RDP | Fast and easy from Windows |
| External secure access | RDP/VNC + SSH tunnel | Encrypted communication |
| Shared screen sessions | VNC | Ideal for collaboration |
| CLI administration | SSH | Lightweight and robust |
安全从额外一步开始
在从外部访问 Ubuntu 时,始终将远程桌面访问与 SSH 隧道或 VPN 结合使用。
故障排除是过程的一部分
大多数问题——黑屏、输入问题、连接失败——都有已知解决方案。随时参考本指南。
迈出第一步
从同一 LAN 上的 RDP 开始,体验 Ubuntu 远程桌面有多简单。
这结束了 Ubuntu 远程桌面连接的完整指南。
感谢阅读。


