作者选择了 COVID-19 救援基金作为 Write for Donations计划的一部分接受捐款。
介绍
RDP(Remote Desktop Protocol)是微软开发的网络协议,允许用户远程访问和与远程 Windows 服务器的图形用户界面进行交互。
RDP 被广泛用于 Windows 远程连接,但您还可以使用一个工具,如 xrdp, RDP 服务器的开源实现,访问和与远程 Linux 服务器的图形用户界面进行交互。
在本教程中,您将使用xrdp在Ubuntu 22.04服务器上安装和配置RDP服务器,并使用本地机器的RDP客户端访问它,您将了解如何通过配置和使用RDP连接建立访问远程Linux服务器。
前提条件
要完成本教程,您将需要:
- 1个Ubuntu 22.04服务器,拥有"sudo"权限的非root用户,防火墙,以及至少1GB的RAM,您可以通过遵循Ubuntu 22.04初始服务器设置指南来设置.
- 安装了RDP客户端的本地计算机。 不同操作系统可用的RDP客户端列表如下:
- 在Windows上,您可以使用默认的远程桌面连接应用程序.
- 在macOS上,可以使用 [微软远程桌面应用程序] (https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/remote-desktop-mac).
- 在Linux上,可以使用FreeRDP,或Remmina. .
第1步:在Ubuntu上安装桌面环境
在此步骤中,您将在您的 Ubuntu 服务器上安装和配置桌面环境. 默认情况下,Ubuntu 服务器只配有终端环境。
从 Ubuntu 的可用选项中,您将安装 Xfce桌面环境,Xfce 为基于 Linux 的系统提供轻量级、用户友好的桌面环境。
首先,使用 SSH 连接到您的服务器,并使用以下命令更新可用的包列表:
1sudo apt update
接下来,在您的服务器上安装xfce和xfce-goodies包:
1sudo apt install xfce4 xfce4-goodies -y
您将被要求选择显示管理器,这是一个管理图形登录机制和用户会话的程序,您可以从可用的显示管理器列表中选择任何选项,但本教程将使用gdm3。
安装桌面环境后,您现在将在您的服务器上安装 xrdp。
第2步:在Ubuntu上安装xrdp
xrdp 是 RDP 服务器的开源实现,它允许基于 Linux 的服务器进行 RDP 连接. 在此步骤中,您将在您的 Ubuntu 服务器上安装 xrdp。
要安装 xrdp,请在终端中运行以下命令:
1sudo apt install xrdp -y
安装 xrdp 后,使用systemctl验证 xrdp 的状态:
1sudo systemctl status xrdp
此命令将显示状态为活跃(运行):
1[secondary_label Output]
2● xrdp.service - xrdp daemon
3 Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)
4 Active: **active (running)** since Sun 2022-08-07 13:00:44 UTC; 26s ago
5 Docs: man:xrdp(8)
6 man:xrdp.ini(5)
7 Main PID: 17904 (xrdp)
8 Tasks: 1 (limit: 1131)
9 Memory: 1016.0K
10 CGroup: /system.slice/xrdp.service
11 └─17904 /usr/sbin/xrdp
如果 xrdp 的状态不是运行,您可能需要使用以下命令手动启动服务:
1sudo systemctl start xrdp
执行上述命令后,再次检查状态,以确保 xrdp 处于运行状态。
您现在已经在您的服务器上安装了 xrdp。接下来,您将检查 xrdp 配置以接受远程客户端的连接。
步骤 3 – 配置 xrdp 并更新您的防火墙
在此步骤中,您将审查存储在 `/etc/xrdp/xrdp.ini 之下的 xrdp 的默认配置,并添加 RDP 连接的配置。
「xrdp.ini」是设置 RDP 连接到 xrdp 服务器的默认配置文件,可修改和定制以满足 RDP 连接要求。
在nano文本编辑器或您选择的任何编辑器中打开文件:
1sudo nano /etc/xrdp/xrdp.ini
配置文件包含不同的部分:
- ** Globals ** 为xrdp定义了一些全局配置设置.
- ** 记录** 定义了日志的伐木子系统参数。
- Channels 定义了RDP支持的多通道参数.
页:1 每个会话类型配置被定义为其会议类型名称下的一个单独部分,置于方括号内,例如
[Xorg]和[XVnc]'。 文件没有 " [会议类型] " 标题;而是将其作为评论来写。 .
在配置文件中,导航到会话类型部分,您将找到多个受支持的会话类型及其参数列表:
1[secondary_label Output]
2...
3
4;
5; Session types
6;
7
8; Some session types such as Xorg, X11rdp, and Xvnc start a display server.
9; Startup command-line parameters for the display server are configured
10; in sesman.ini. See and configure also sesman.ini.
11[Xorg]
12name=Xorg
13lib=libxup.so
14username=ask
15password=ask
16ip=127.0.0.1
17port=-1
18code=20
19
20[Xvnc]
21name=Xvnc
22lib=libvnc.so
23username=ask
24password=ask
25ip=127.0.0.1
26port=-1
27#xserverbpp=24
28#delay_ms=2000
29
30[vnc-any]
31...
32
33[neutrinordp-any]
34...
35
36...
默认情况下,用户名和密码参数设置为请求,这意味着用户将被要求输入其用户名和密码以通过 RDP 连接。
保存并关闭文件完成后。
现在,转到用户的家庭目录,如果您尚未在那里:
1cd ~
接下来,您将在/home/sammy下创建一个.xsession文件,并将xfce4-session作为会话管理器添加到登录时使用:
1echo "xfce4-session" | tee .xsession
tee 将响应的字符串 xfce4-session 编写到.xsession 文件中. 上面的配置确保在图形登录请求时使用 xfce4-session 作为会话管理器. 由于安装 xfce 作为您的桌面环境, xfce4-session 将作为会话管理器。
重新启动 xrdp 服务器:
1sudo systemctl restart xrdp
接下来,您将配置防火墙以允许您在端口3389上的公共 IP 远程连接。在 TCP/IP 端口3389上提供 RDP 连接。
首先,找出您本地机器的公共IP:
1[environment local]
2curl ifconfig.me
在 Windows 中,使用 Windows 命令提示程式執行此命令。
「curl」會在「ifconfig.me」上發出一個要求,將您的公共 IP 返回為輸出:
1[environment local]
2[secondary_label Output]
3...
4your_local_ip
接下来,在远程服务器上允许访问 RDP 端口 3389,以最后命令的输出代替 your_local_ip:
1sudo ufw allow from your_local_ip/32 to any port 3389
检查您的UFW防火墙的状态:
1sudo ufw status
输出应该如下:
1[secondary_label Output]
2Status: Active
3To Action From
4-- ------ ----
5OpenSSH ALLOW Anywhere
63389 ALLOW your_local_ip
7OpenSSH (v6) ALLOW Anywhere (v6)
8...
您现在已启用端口「3389」来接受来自公共IP的连接,接下来,您将测试本地机器与远程服务器的RDP连接。
第4步:测试RDP连接
在此步骤中,您将从本地机器测试 RDP 连接. 下面的部分包括在 Windows、macOS 和 Linux 机器上测试连接的操作。
在 Windows 上测试 RDP 连接
若要在 Windows 上使用远程桌面连接客户端测试连接,请先启动远程桌面连接应用程序。
将您的远程服务器的公共 IP 和用户名输入到 计算机 和 ** 用户名** 的可填写文本框中。

如果您收到一个警告,即远程桌面无法连接到远程计算机,请确保您在系统设置中启用了远程桌面选项。
如果您收到身份验证爆炸窗口,请按 Yes :

然后,输入您的远程服务器的用户名(sammy)和您在初始服务器设置期间为用户sammy创建的密码。

一旦您登录,您应该能够访问您的Ubuntu桌面环境:

使用RDP,您从本地机器成功连接到您的远程Ubuntu服务器. 您可以用退出按钮关闭它,当您完成使用您的图形桌面。
在 macOS 上测试 RDP 连接
若要在 macOS 上使用远程桌面连接客户端测试连接,请先启动 Microsoft Remote Desktop Connection 应用程序。
按 ** 添加 PC** ,然后在填充框中输入远程服务器的公共 IP:

您可以在设置连接时 ** 添加用户帐户** :

如果您在设置过程中没有添加用户,您将被要求提供您的用户登录凭证:

点击Yes以绕过身份验证爆炸窗口:

一旦您登录,您可以访问您的Ubuntu远程桌面. 您可以用退出按钮关闭它,当您完成使用您的图形桌面。
在 Linux 上测试 RDP 连接
您需要一个 RDP 客户端来测试本地 Linux 机器上的 RDP 连接,首先安装 Ubuntu 的 RDP 客户端:
1sudo apt install remmina
如果您被要求完成安装,请选择y,此命令将安装在您的 Ubuntu 系统上使用apt的开源远程桌面客户端 Remmina.对于其他 Linux 发行版,您可以查看 Remmina 安装文件。
一旦安装,在本地 Linux 机器上启动remmina应用程序,并在可填充框中输入远程服务器的公共 IP。

然后,输入您的远程服务器的用户名(对于本教程,用户名是sammy)和您在初始服务器设置期间为用户创建的密码。

您可能需要再次输入用户密码来解锁远程桌面。
一旦您登录,您应该能够访问您的Ubuntu桌面环境。
使用RDP,您从本地机器成功连接到您的远程Ubuntu服务器. 您可以用退出按钮关闭它,当您完成使用您的图形桌面。
一旦确保远程连接工作,您可以使用此序列,当您需要使用您的远程 Linux 服务器的图形界面时。
结论
在本文中,您将 xrdp 配置为通过本地机器的 RDP 连接连接到远程 Ubuntu 服务器的图形桌面。
现在,您可以尝试为 Linux 服务器配置 VNC 连接,使用 如何在 Ubuntu 20.04 上安装和配置 VNC。