以下步骤是在 Jetson Nano (Arch Linux ARM系统) 平台实践的,之前用过 VNC 和 Teamviewer,Teamviewer 经常要更新版本,有时候还会被误判定为商业用途,现已弃用;VNC 似乎在 Arch Linux ARM 上较少支持,需要在用户主机和远程主机分别客户端和服务端,服务端还要设置开机自启动,本人配置了一个晚上未果,最终选择投向 Xrdp 的怀抱。
Xrdp 是 Microsoft 远程桌面协议 (RDP) 的开源实现,允许以图形方式控制远程系统。使用 RDP 可以登录到远程计算机并创建一个真实的桌面会话,就像您已登录到本地计算机一样[1]。
有些 Linux 服务器没有安装桌面环境。因此首先要安装 X11 和一个轻量级桌面环境,作为 Xrdp 的后端[1]。
Ubuntu 存储库中有几个桌面环境 (DE) 。我们将安装 Xfce 。它是一个快速,稳定和轻量级的桌面环境,非常适合在远程服务器上使用[1]。
sudo apt update
sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
sudo apt install xrdp
# 安装完成后 Xrdp 服务将自动运行,您可以通过键入以下指令来验证 Xrdp 是否正在运行
sudo systemctl status xrdp
示例输出:
xrdp.service - xrdp daemon
Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2019-07-28 22:40:53 UTC; 4min 21s ago
Docs: man:xrdp(8)
man:xrdp.ini(5)
Xrdp 的配置文件位于 /etc/xrdp 目录。对于 Xrdp 的基本连接,只需要配置 Xrdp 即可使用 Xfce 。
sudo vim /etc/xrdp/xrdp.ini
在文件末尾添加以下内容并保存:
exec startxfce4
此外,该文件中可配置 xrdp 远程桌面服务的端口号(默认端口为3389)
# 重新启动 Xrdp 服务:
sudo systemctl restart xrdp
默认情况下, Xrdp 侦听 3389 所有接口上的端口。如果您在 Ubuntu 服务器上运行防火墙(您应该总是这样做),则需要添加一个规则来启用 Xrdp 端口上的流量。
要允许从特定 IP 地址或 IP 范围访问 Xrdp 服务器,请在此示例 192.168.1.0/24 中运行以下命令:
sudo ufw allow from 192.168.1.0/24 to any port 3389
如果您想允许从任何地方进行访问(出于安全原因而非常不鼓励),请运行:
sudo ufw allow 3389
为了提高安全性,您可以考虑将 Xrdp 设置为仅在 localhost 上侦听并创建一个 SSH 隧道,该隧道将安全地将来自本地计算机的端口 3389 上的流量转发到同一端口上的服务器。另一个安全选项是安装 OpenVPN 并通过专用网络连接到 Xrdp 服务器。
在服务器上配置好 Xrdp 服务后,此时便能连接远程桌面了!!!
在 Ubuntu 和 Windows 系统中大多数都自带 RDP 客户器,Windows系统中对应“远程桌面服务”,Ubuntu系统中对应Remmina。在客户端输入远程服务器 [IP:端口号] 后进行连接,之后输入用户名和密码便能接入远程桌面了。
问题1: 远程桌面闪退
解决方法:
cd ~
touch .xsession
echo xfce4-session > ~/.xsession
sudo chown username:username .xsession
[1]: 如何在 Ubuntu 18.04 上安装 Xrdp 远程桌面服务 https://www.linuxidc.com/Linux/2019-08/159848.htm
[2]: Windows 远程桌面连接ubuntu及xrdp的一些小问题(远程桌面闪退、连接失败、tab补全功能,无菜单栏,error - problem connecting ) https://blog.csdn.net/u014447845/article/details/80291678