Ubuntu 22.04远程桌面:xrdp安装与配置终极指南
作为“为捐赠而写”计划的一部分,作者选择了COVID-19救济基金作为接受捐款的对象。
介绍
远程桌面协议(RDP)是由微软开发的一种网络协议,它允许用户远程访问和与远程Windows服务器的图形用户界面进行交互。RDP采用客户端-服务器模式工作,其中在本地机器上安装了RDP客户端,在远程服务器上安装了RDP服务器。
RDP是广泛用于Windows远程连接的工具,但你也可以使用xrdp这样的工具来访问和与远程Linux服务器的图形用户界面进行交互。xrdp是RDP服务器的开源实现之一。
在本教程中,您将使用xrdp在Ubuntu 22.04服务器上安装和配置RDP服务器,并使用RDP客户端从本地计算机访问该服务器。您将了解如何通过配置和使用RDP连接来建立对远程Linux服务器的访问权限。
信息:使用Silicon Cloud App平台从GitHub部署您的前端应用程序。让Silicon Cloud专注于扩展您的应用。
先决条件
完成本教程,您需要准备:
- 一台Ubuntu 22.04服务器,拥有具备sudo权限的非root用户、防火墙,以及至少1GB的内存。您可以按照Ubuntu 22.04初始服务器设置指南进行设置。
- 一台安装了RDP客户端的本地计算机。以下列出了适用于不同操作系统的RDP客户端:
- 在Windows上,您可以使用默认的“远程桌面连接”应用程序。
- 在macOS上,您可以使用“Microsoft远程桌面”应用程序。
- 在Linux上,您可以使用FreeRDP或Remmina。
第一步 – 在Ubuntu上安装桌面环境
在这个步骤中,您将在Ubuntu服务器上安装和配置一个桌面环境。默认情况下,Ubuntu服务器只提供终端环境。需要安装桌面环境才能访问用户界面。
在可选的Ubuntu选项中,您将安装Xfce桌面环境。Xfce为基于Linux的系统提供了一个轻量级、用户友好的桌面环境。
首先,使用SSH连接到您的服务器,并使用以下命令更新可用软件包列表:
- sudo apt update
接下来,在服务器上安装xfce和xfce-goodies软件包。
- sudo apt install xfce4 xfce4-goodies -y
您将会被要求选择一个显示管理器,它是一个管理图形化登录界面和用户会话的程序。您可以从可用的显示管理器列表中选择任何一个选项,但本教程将使用gdm3。
在安装好桌面环境后,现在您需要在服务器上安装xrdp。
第二步 – 在Ubuntu上安装xrdp
xrdp是一个开源的RDP服务器实现,可以让Linux服务器建立RDP连接。在这一步中,您将在您的Ubuntu服务器上安装xrdp。
要安装xrdp,只需要在终端中运行以下命令即可:
- sudo apt install xrdp -y
在安装完xrdp之后,使用systemctl验证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 2022-08-07 13:00:44 UTC; 26s ago
Docs: man:xrdp(8)
man:xrdp.ini(5)
Main PID: 17904 (xrdp)
Tasks: 1 (limit: 1131)
Memory: 1016.0K
CPU: 10ms
CGroup: /system.slice/xrdp.service
└─17904 /usr/sbin/xrdp
如果xrdp的状态未运行,您可能需要使用以下命令手动启动服务。
- sudo systemctl start xrdp
在执行上述命令后,再次验证状态,以确保xrdp处于运行状态。
您已经在服务器上安装了xrdp。接下来,您将检查xrdp的配置以接受远程客户端的连接。
第三步 – 配置xrdp和更新防火墙
在这个步骤中,您将审查存储在/etc/xrdp/xrdp.ini
下的xrdp的默认配置,并添加一个用于RDP连接的配置。您还将更新防火墙设置。
xrdp.ini
是用于设置到xrdp服务器的RDP连接的默认配置文件。该配置文件可以进行修改和定制,以满足RDP连接的要求。
在nano文本编辑器或您选择的任何编辑器中打开文件。
- sudo nano /etc/xrdp/xrdp.ini
配置文件包含不同的部分。
- Globals:定义xrdp的一些全局配置设置。
- Logging:定义日志子系统的参数。
- Channels:定义RDP支持的多个通道参数。
- Session types:定义xrdp支持的多种会话类型。每个会话类型配置都以其会话类型名称(如
[Xorg]
和[XVnc]
)作为单独的部分,并用方括号括起来。文件中没有[Sessions types]
标题;相反,它以注释形式存在。
在配置文件中,导航到会话类型部分。您会找到列出多个支持的会话类型及其参数的列表。
… ; ; 会话类型 ; ; 某些会话类型,如Xorg、X11rdp和Xvnc,会启动一个显示服务器。 ; 显示服务器的启动命令行参数在sesman.ini中配置。 ; 请参阅并配置sesman.ini。
[Xorg]
name=Xorg
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
code=20
[Xvnc]
name=Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
#xserverbpp=24
#delay_ms=2000
[vnc-any]
...
[neutrinordp-any]
...
...
默认情况下,用户名和密码参数被设置为“询问”,这意味着用户将被提示输入其用户名和密码以通过RDP连接。如果需要,可以修改名称、用户名和密码等参数。对于首次RDP连接到服务器,默认配置即可满足需求。
完成后,保存并关闭文件。
如果您尚未进入用户的主目录,请现在切换到该目录。
- cd ~
接下来,您将在/home/sammy
下创建一个.xsession
文件,并将xfce4-session
添加为登录时要使用的会话管理器。
- echo “xfce4-session” | tee .xsession
tee
命令会将字符串“xfce4-session”写入.xsession
文件。以上配置确保在图形登录请求时使用xfce4-session
作为会话管理器。通过安装XFCE作为您的桌面环境,xfce4-session
将作为其会话管理器。如果您不在.xsession
文件中包含此信息,则不会选择任何会话管理器,RDP会话将无法连接到图形显示。
重新启动xrdp服务器。
- sudo systemctl restart xrdp
接下来,您将配置防火墙,允许从公共IP的3389端口进行远程连接。RDP连接使用TCP/IP的3389端口。要通过RDP访问远程服务器,您必须在防火墙中允许3389端口。
首先,找到您本地机器的公共IP地址。
- curl ifconfig.me
在Windows上,请使用Windows命令提示符运行此命令。
curl
向ifconfig.me
发送请求,并返回您的公共IP作为输出。
… 您的本地IP
接下来,允许访问远程服务器的RDP端口3389,并将your_local_ip
替换为上一个命令的输出。
- sudo ufw allow from 您的本地IP/32 to any port 3389
验证您的UFW防火墙的状态。
- sudo ufw status
输出的结果应该如下所示:
状态: 活跃
目标 动作 来源
— —— —-
OpenSSH 允许 任意位置
3389 允许 您的本地IP
OpenSSH (v6) 允许 任意位置 (v6)
…
您现在已经启用了端口3389,允许公共IP连接。接下来,您将测试本地计算机与远程服务器的RDP连接。
第四步 – 测试RDP连接
在这一步骤中,您将从您的本地计算机测试RDP连接。下面的部分包括在Windows、macOS和Linux计算机上测试连接的操作。
在Windows上测试RDP连接
为了在Windows上使用远程桌面连接客户端测试连接,请首先启动远程桌面连接应用程序。
请输入您远程服务器的公共IP地址和用户名,填写在可编辑的“计算机”和“用户名”文本框中。您可能需要点击“显示选项”的向下箭头来输入用户名。

点击“连接”按钮。如果收到提示说远程桌面无法连接到远程计算机,请检查您的系统设置中是否开启了远程桌面选项。
如果弹出身份验证窗口,请按“是”按钮。

然后,输入您远程服务器的用户名(sammy)以及您在初始服务器设置期间为用户sammy创建的密码。点击“确定”。

一旦您登录成功,您将能够进入您的Ubuntu桌面环境。

使用RDP,您成功地从本地电脑连接到远程Ubuntu服务器。当您使用图形化桌面完毕时,可以使用退出按钮关闭连接。
在Mac上测试RDP连接
为了在macOS上使用远程桌面连接客户端测试连接,首先打开Microsoft远程桌面连接应用程序。
点击“添加计算机”,然后在可输入框中输入远程服务器的公共IP地址。

在设置连接时,您可以添加用户账户。

连接到远程桌面
如果在设置过程中没有添加用户,系统会提示您输入用户登录凭证。

点击“Yes”按钮以绕过身份验证弹出窗口。

一旦成功登录,您便可以访问您的Ubuntu远程桌面。当您完成使用图形界面后,可以通过退出按钮关闭它。
在Linux上测试RDP连接
要在本地Linux机器上测试RDP连接,您将需要一个RDP客户端。首先,在Ubuntu上安装Remmina RDP客户端。
- sudo apt install remmina
如果提示完成安装,请选择y
。该命令将使用apt
在您的Ubuntu系统上安装Remmina,一个开源远程桌面客户端。对于其他Linux发行版,您可以查阅Remmina的安装文档。
安装完成后,在您本地的Linux机器上启动Remmina应用程序,并在可填写的框中输入远程服务器的公共IP地址。按下键盘上的Enter键即可连接到远程桌面。

接下来,请输入您的远程服务器用户名(在本教程中,用户名为sammy)以及您在初始服务器设置期间为该用户创建的密码。点击确定。

为了解锁远程桌面,您可能需要再次输入用户密码。
一旦您登录成功,就能够进入您的Ubuntu桌面环境。
使用RDP,您成功地从本地机器连接到了远程Ubuntu服务器。当您使用完图形化的桌面后,可以通过退出按钮来关闭它。
一旦您确保远程连接正常工作,每当您需要使用远程Linux服务器的图形界面时,都可以使用这个步骤。
结论
在本文中,您配置了xrdp,以便从本地机器通过RDP连接到远程Ubuntu服务器的图形桌面。
现在,您可以尝试使用《如何在Ubuntu 20.04上安装和配置VNC》为您的Linux服务器配置VNC连接。VNC是连接Linux桌面的另一个选项。