作者选择了COVID-19救助基金作为为捐赠而写计划的一部分收到捐赠。
介绍
远程桌面协议(RDP)是由Microsoft开发的一种网络协议,允许用户远程访问和与远程Windows服务器的图形用户界面进行交互。RDP采用客户端-服务器模型,其中在本地计算机上安装了RDP客户端,而在远程服务器上安装了RDP服务器。
RDP广泛用于Windows远程连接,但您也可以使用类似xrdp的工具访问和与远程Linux服务器的图形用户界面进行交互,xrdp是RDP服务器的开源实现之一。
在本教程中,您将在Ubuntu 22.04服务器上使用xrdp安装和配置RDP服务器,并使用本地计算机上的RDP客户端访问它。您将了解通过配置和使用RDP连接建立对远程Linux服务器的访问。
使用DigitalOcean App Platform从GitHub部署您的前端应用。让DigitalOcean专注于扩展您的应用。
先决条件
要完成本教程,您需要:
-
一个Ubuntu 22.04服务器,具有非root用户的
sudo
权限,防火墙和至少1GB的RAM,您可以按照Ubuntu 22.04初始服务器设置指南进行设置。 -
一台安装了RDP客户端的本地计算机。以下是不同操作系统可用的RDP客户端列表:
- 在Windows上,您可以使用默认的远程桌面连接应用程序。
- 在macOS上,您可以使用Microsoft远程桌面应用程序。
- 在Linux上,您可以使用FreeRDP或Remmina。
步骤 1 — 在 Ubuntu 上安装桌面环境
在此步骤中,您将在 Ubuntu 服务器上安装并配置桌面环境。默认情况下,Ubuntu 服务器仅带有终端环境。需要安装桌面环境以访问用户界面。
从适用于 Ubuntu 的选项中,您将安装 Xfce 桌面环境。Xfce 为基于 Linux 的系统提供了轻量级、用户友好的桌面环境。
首先,使用以下命令通过 SSH 连接到服务器并更新可用包的列表:
- sudo apt update
接下来,在服务器上安装 xfce
和 xfce-goodies
包:
- sudo apt install xfce4 xfce4-goodies -y
您将被提示选择显示管理器,这是一个管理图形登录机制和用户会话的程序。您可以从可用显示管理器的列表中选择任何选项,但本教程将使用 gdm3
。
安装桌面环境后,现在您将在服务器上安装xrdp。
第2步 — 在Ubuntu上安装xrdp
xrdp是一个开源的RDP服务器实现,允许Linux服务器进行RDP连接。在这一步中,您将在Ubuntu服务器上安装xrdp。
要安装xrdp,请在终端中运行以下命令:
- sudo apt install xrdp -y
安装xrdp后,使用systemctl
验证xrdp的状态:
- sudo systemctl status xrdp
该命令将显示状态为active (running)
:
Output● 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
CGroup: /system.slice/xrdp.service
└─17904 /usr/sbin/xrdp
如果xrdp的状态不是running
,您可能需要使用以下命令手动启动服务:
- sudo systemctl start xrdp
执行上述命令后,再次验证状态,确保xrdp处于running
状态。
您现在已经在服务器上安装了xrdp。接下来,您将查看xrdp配置以接受来自远程客户端的连接。
第3步 — 配置xrdp并更新您的防火墙
在这一步,您将审查存储在/etc/xrdp/xrdp.ini
下的xrdp默认配置,并添加一个RDP连接的配置。您还将更新防火墙设置。
xrdp.ini
是设置到xrdp服务器的RDP连接的默认配置文件。该配置文件可以修改和定制以满足RDP连接的要求。
使用nano
文本编辑器或您选择的任何编辑器打开文件:
- sudo nano /etc/xrdp/xrdp.ini
配置文件包含不同的部分:
- Globals定义了一些xrdp的全局配置设置。
- Logging定义了日志的日志子系统参数。
- Channels定义了RDP支持的多个通道参数。
- 会话类型定义了xrdp支持的多个会话类型。每个会话类型配置都被定义为其会话类型名称的单独部分,该名称用方括号括起来,例如
[Xorg]
和[XVnc]
。文件中没有[Sessions types]
标题;相反,它被写为注释。
在配置文件中,导航到Session types
部分。您将找到列出多个支持的会话类型及其参数:
Output...
;
; Session types
;
; Some session types such as Xorg, X11rdp, and Xvnc start a display server.
; Startup command-line parameters for the display server are configured
; in sesman.ini. See and configure also 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]
...
...
默认情况下,username
和 password
参数被设置为 ask
,这意味着用户将被提示输入他们的用户名和密码以通过 RDP 进行连接。必要时可以修改参数,如 name
,username
和 password
。对于与服务器的初始 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作为输出返回:
Output...
your_local_ip
接下来,允许远程服务器上的RDP端口 3389
的访问,将your_local_ip
替换为上一个命令的输出:
- sudo ufw allow from your_local_ip/32 to any port 3389
验证您的 UFW
防火墙的状态:
- sudo ufw status
输出应该如下所示:
OutputStatus: Active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
3389 ALLOW your_local_ip
OpenSSH (v6) ALLOW Anywhere (v6)
...
您现在已经启用了端口 3389
来接受来自您的公共IP的连接。接下来,您将测试本地计算机到远程服务器的RDP连接。
第四步 — 测试RDP连接
在此步骤中,您将测试本地计算机的RDP连接。以下各节包括在Windows、macOS和Linux计算机上测试连接的操作。
在Windows上测试RDP连接
要使用Windows上的远程桌面连接客户端测试连接,请首先启动远程桌面连接应用程序。
在可填写的文本框中输入您的远程服务器的公共 IP 和用户名 计算机 和 用户名。您可能需要按下 显示选项 的向下箭头来输入用户名:
点击 连接 按钮。如果收到提醒 远程桌面无法连接到远程计算机
,请检查您是否在系统设置中打开了远程桌面选项。
如果收到身份验证弹出窗口,请点击 是:
然后,输入您的远程服务器用户名(sammy
)和您在初始服务器设置期间为用户 sammy
创建的密码。点击 确定。
登录后,您应该能够访问您的 Ubuntu 桌面环境:
使用 RDP,您成功从本地计算机连接到了远程 Ubuntu 服务器。在完成使用图形桌面后,您可以使用退出按钮关闭连接。
在 macOS 上测试 RDP 连接
要使用 macOS 上的远程桌面连接客户端测试连接,首先启动 Microsoft 远程桌面连接应用程序。
点击 添加 PC,然后在可填写的框中输入您的远程服务器的公共 IP:
在设置连接时,您可以 添加用户账户。
如果您在设置过程中没有添加用户,则会提示您输入用户登录凭据:
按下是以跳过身份验证弹出窗口:
登录后,您可以访问您的Ubuntu远程桌面。当您完成使用图形桌面时,可以通过退出按钮关闭它。
在Linux上测试RDP连接
您需要一个RDP客户端来测试本地Linux机器上的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服务器的图形桌面。
现在,您可以尝试使用<VNC在Ubuntu 20.04上安装和配置VNC为您的Linux服务器配置VNC连接。 VNC是远程连接到Linux桌面的另一种选择。