作者選擇了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 客戶端列表:
- 在 Windows 上,您可以使用默認的遠程桌面連接應用程序。
- 在 macOS 上,您可以使用 Microsoft Remote Desktop 應用程序。
- 在 Linux 上,您可以使用 FreeRDP 或 Remmina。
步骤 1 — 在 Ubuntu 上安装桌面环境
在这一步中,您将在 Ubuntu 服务器上安装和配置桌面环境。默认情况下,Ubuntu 服务器仅带有终端环境。需要安装桌面环境才能访问用户界面。
从 Ubuntu 的可用选项中,您将安装 Xfce 桌面环境。Xfce 为基于 Linux 的系统提供了轻量级、用户友好的桌面环境。
首先,使用以下命令连接到您的服务器并更新可用软件包列表:
- 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
是設置RDP連接到xrdp服務器的默認配置文件。可以修改和自定義配置文件以滿足RDP連接的要求。
在nano
文本編輯器或任何您選擇的編輯器中打開該文件:
- 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]
...
...
默認情況下,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连接。
第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客戶端:
- 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桌面的另一种选项。