如何在Ubuntu 22.04上使用xrdp啟用遠程桌面協議

作者選擇了COVID-19 救助基金作為Write for Donations計劃的一部分進行捐贈。

介紹

遠程桌面協議(RDP)是由微軟開發的一種網絡協議,允許用戶遠程訪問和交互操作遠程 Windows 服務器的圖形用戶界面。RDP 遵循客戶端-服務器模型,其中在本地計算機上安裝了 RDP 客戶端,並在遠程服務器上安裝了 RDP 服務器。

RDP 廣泛用於 Windows 遠程連接,但您也可以通過使用像xrdp這樣的工具,這是 RDP 服務器的一個開源實現,來訪問和交互操作遠程 Linux 服務器的圖形用戶界面。

在本教程中,您將使用 xrdp 在 Ubuntu 22.04 服務器上安裝和配置一個 RDP 服務器,並使用本地計算機上的 RDP 客戶端訪問它。您將了解通過配置和使用 RDP 連接來建立對遠程 Linux 服務器的訪問。

使用DigitalOcean App Platform從 GitHub 部署您的前端應用程序。讓 DigitalOcean 專注於擴展您的應用程序。

先決條件

要完成本教程,您將需要:

  • 一個裝有 Ubuntu 22.04 的伺服器,擁有一個非 root 用戶,具有 sudo 權限,一個防火牆,並且至少有 1GB 的 RAM。您可以按照 Ubuntu 22.04 初始伺服器設置指南 進行設置。

  • 一台安裝有 RDP 客戶端的本地電腦。以下是不同操作系統可用的 RDP 客戶端列表:

步骤 1 — 在 Ubuntu 上安装桌面环境

在这一步中,您将在 Ubuntu 服务器上安装和配置桌面环境。默认情况下,Ubuntu 服务器仅带有终端环境。需要安装桌面环境才能访问用户界面。

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

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

  1. sudo apt update

接下来,在您的服务器上安装 xfcexfce-goodies 软件包:

  1. sudo apt install xfce4 xfce4-goodies -y

您将被提示选择一个显示管理器,即管理图形登录机制和用户会话的程序。您可以从可用的显示管理器列表中选择任何选项,但本教程将使用 gdm3

安裝桌面環境後,現在您將在您的伺服器上安裝 xrdp。

步驟 2 — 在 Ubuntu 上安裝 xrdp

xrdp 是 RDP 伺服器的開源實現,允許 Linux 伺服器進行 RDP 連接。在此步驟中,您將在您的 Ubuntu 伺服器上安裝 xrdp。

要安裝 xrdp,請在終端機中運行以下命令:

  1. sudo apt install xrdp -y

安裝 xrdp 後,使用 systemctl 驗證 xrdp 的狀態:

  1. 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,您可能需要使用此命令手動啟動服務:

  1. sudo systemctl start xrdp

執行上述命令後,再次驗證狀態,以確保 xrdp 正處於 running 狀態。

您現在已在您的伺服器上安裝了 xrdp。接下來,您將檢查 xrdp 配置以接受來自遠程客戶端的連接。

步驟 3 — 配置 xrdp 並更新防火牆

在這一步中,您將審查存儲在/etc/xrdp/xrdp.ini下的xrdp的默認配置,並添加一個用於RDP連接的配置。您還將更新防火牆設置。

xrdp.ini是設置RDP連接到xrdp服務器的默認配置文件。可以修改和自定義配置文件以滿足RDP連接的要求。

nano文本編輯器或任何您選擇的編輯器中打開該文件:

  1. sudo nano /etc/xrdp/xrdp.ini

配置文件包含不同的部分:

  • Globals定義了xrdp的一些全局配置設置。
  • Logging定義了日誌子系統的參數。
  • Channels定義了RDP支持的多個通道參數。
  • Session types定義了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] ... ...

默認情況下,usernamepassword 參數被設置為 ask,這意味著用戶將被提示輸入他們的用戶名和密碼以通過 RDP 連接。如果需要,可以修改參數,例如 nameusernamepassword。對於與伺服器的初始 RDP 連接,默認配置將足夠。

完成後保存並關閉文件。

現在,如果您還沒有在用戶的主目錄中,請移至那裡:

  1. cd ~

接下來,您將在 /home/sammy 下創建一個 .xsession 文件,並將 xfce4-session 添加為登錄時要使用的會話管理器:

  1. echo "xfce4-session" | tee .xsession

tee 將回顯字符串 "xfce4-session" 寫入文件 .xsession。以上配置確保在圖形登錄請求時使用 xfce4-session 作為會話管理器。由於將xfce安裝為您的桌面環境,xfce4-session 作為其會話管理器。如果您不在 .xsession 文件中包含此信息,則不會選擇任何會話管理器,RDP 會話將無法連接到圖形顯示。

重新啟動 xrdp 伺服器:

  1. sudo systemctl restart xrdp

接下來,您將配置防火牆以允許從您的公共 IP 在端口 3389 上進行遠程連接。RDP 連接在 TCP/IP 端口 3389 上提供服務。要通過 RDP 訪問遠程伺服器,必須在防火牆中允許端口 3389

首先,找到您本地機器的公共 IP:

  1. curl ifconfig.me

在Windows上,使用Windows命令提示符运行以下命令。

curlifconfig.me发送请求,返回公共IP作为输出:

Output
... your_local_ip

然后,允许远程服务器上的RDP端口3389的访问,将your_local_ip替换为上一条命令的输出:

  1. sudo ufw allow from your_local_ip/32 to any port 3389

验证您的UFW防火墙的状态:

  1. sudo ufw status

输出应该如下:

Output
Status: Active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 3389 ALLOW your_local_ip OpenSSH (v6) ALLOW Anywhere (v6) ...

现在,您已经允许端口3389接受来自公共IP的连接。接下来,您将测试本地机器与远程服务器的RDP连接。

第4步 — 测试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客戶端:

  1. sudo apt install remmina

如果提示,選擇y以完成安裝。此命令將使用apt在您的Ubuntu系統上安裝一個開源遠程桌面客戶端Remmina。對於其他Linux發行版,您可以查看Remmina文檔進行安裝

安裝完成後,在本地Linux機器上啟動remmina應用程序,並在可填寫框中輸入您遠程服務器的公共IP。按下鍵盤上的Enter鍵以連接到您的遠程桌面。

然後,輸入您遠程服務器的用戶名(本教程中用戶名為sammy)和您在初始服務器設置期間為該用戶創建的密碼。按下Ok

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

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

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

确保远程连接正常后,您可以在需要使用远程Linux服务器的图形界面时使用此序列。

结论

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

现在,您可以尝试使用在Ubuntu 20.04上安装和配置VNC为Linux服务器配置VNC连接。VNC是连接到Linux桌面的另一种选项。

Source:
https://www.digitalocean.com/community/tutorials/how-to-enable-remote-desktop-protocol-using-xrdp-on-ubuntu-22-04