如何在 Ubuntu 22.04 上使用 xrdp 启用远程桌面协议

作者选择了 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客户端列表如下:

第1步:在Ubuntu上安装桌面环境

在此步骤中,您将在您的 Ubuntu 服务器上安装和配置桌面环境. 默认情况下,Ubuntu 服务器只配有终端环境。

从 Ubuntu 的可用选项中,您将安装 Xfce桌面环境,Xfce 为基于 Linux 的系统提供轻量级、用户友好的桌面环境。

首先,使用 SSH 连接到您的服务器,并使用以下命令更新可用的包列表:

1sudo apt update

接下来,在您的服务器上安装xfcexfce-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 和用户名输入到 计算机 和 ** 用户名** 的可填写文本框中。

Screencapture of the Remote Desktop Connection Client initial logon page

如果您收到一个警告,即远程桌面无法连接到远程计算机,请确保您在系统设置中启用了远程桌面选项。

如果您收到身份验证爆炸窗口,请按 Yes :

Screencapture of the Identity Verification popup

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

Screencapture display the xrdp login screen

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

Screenapture of the remote Ubuntu Desktop

使用RDP,您从本地机器成功连接到您的远程Ubuntu服务器. 您可以用退出按钮关闭它,当您完成使用您的图形桌面。

在 macOS 上测试 RDP 连接

若要在 macOS 上使用远程桌面连接客户端测试连接,请先启动 Microsoft Remote Desktop Connection 应用程序。

按 ** 添加 PC** ,然后在填充框中输入远程服务器的公共 IP:

Screencapture showing the "Add PC" setup page with an empty box for the remote server's IP address

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

Screencapture showing the "Add a username account" option

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

Screencapture showing the "Enter your user account" prompt

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

Screencapture showing the identity verification prompt

一旦您登录,您可以访问您的Ubuntu远程桌面. 您可以用退出按钮关闭它,当您完成使用您的图形桌面。

在 Linux 上测试 RDP 连接

您需要一个 RDP 客户端来测试本地 Linux 机器上的 RDP 连接,首先安装 Ubuntu 的 RDP 客户端:

1sudo apt install remmina

如果您被要求完成安装,请选择y,此命令将安装在您的 Ubuntu 系统上使用apt的开源远程桌面客户端 Remmina.对于其他 Linux 发行版,您可以查看 Remmina 安装文件

一旦安装,在本地 Linux 机器上启动remmina应用程序,并在可填充框中输入远程服务器的公共 IP。

Screenapture showing the Remmina client with a blurred IP address entered in the RDP box

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

Screencapture showing the xrdp Login Screen with <code>Xorg</code> selected for session type, <code>sammy</code> filled in the username box, and a redacted password in the password box

您可能需要再次输入用户密码来解锁远程桌面。

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

使用RDP,您从本地机器成功连接到您的远程Ubuntu服务器. 您可以用退出按钮关闭它,当您完成使用您的图形桌面。

一旦确保远程连接工作,您可以使用此序列,当您需要使用您的远程 Linux 服务器的图形界面时。

结论

在本文中,您将 xrdp 配置为通过本地机器的 RDP 连接连接到远程 Ubuntu 服务器的图形桌面。

现在,您可以尝试为 Linux 服务器配置 VNC 连接,使用 如何在 Ubuntu 20.04 上安装和配置 VNC

Published At
Categories with 技术
Tagged with
comments powered by Disqus