В
目錄:
安裝圖形環境
我們將採用一台配備 Ubuntu Server 18.04 LTS 的虛擬機,該虛擬機具有兩個計算核心、10 GB RAM 和 10 GB 硬碟 (HDD)。 較弱的配置不適合圖形桌面,儘管這取決於要解決的任務。 不要忘記使用促銷代碼 HabrahabrXNUMX 以獲得訂單 XNUMX% 的折扣。
使用以下命令安裝具有所有相依性的桌面環境:
sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
和前面的案例一樣,我們選擇XFCE是因為它對計算資源的要求相對較低。
伺服器和軟體安裝的俄羅斯化
通常,虛擬機器僅以英語本地化方式部署。 在桌面上,您可能需要俄語,這很容易設定。 首先,讓我們安裝系統程式的翻譯:
sudo apt-get install language-pack-ru
讓我們設定本地化:
sudo update-locale LANG=ru_RU.UTF-8
透過手動編輯 /etc/default/locale 可以達到相同的效果。
對於 GNOME 和 KDE 的本地化,存儲庫具有 language-pack-gnome-ru 和 language-pack-kde-ru 軟體包 - 如果您使用這些桌面環境中的程序,您將需要它們。 在 XFCE 中,翻譯與應用程式一起安裝。 接下來您可以安裝字典:
# Словари для проверки орфографии
sudo apt-get install hunspell hunspell-ru
# Тезаурус для LibreOffice
sudo apt-get install mythes-ru
# Англо-русский словарь в формате DICT
sudo apt-get install mueller7-dict
此外,某些應用程式可能需要安裝翻譯:
# Браузер Firefox
sudo apt-get install firefox firefox-locale-ru
# Почтовый клиент Thunderbird
sudo apt-get install thunderbird thunderbird-locale-ru
# Офисный пакет LibreOffice
sudo apt-get install libreoffice libreoffice-l10n-ru libreoffice-help-ru
這樣就完成了桌面環境的準備,剩下的就是設定RDP伺服器了。
安裝和設定 RDP 伺服器
Ubuntu 儲存庫有一個免費分發的 Xrdp 伺服器,我們將使用它:
sudo apt-get install xrdp
如果一切順利,伺服器應該會自動啟動:
sudo systemctl status xrdp
Xrdp 伺服器以 xrdp 使用者權限執行,預設採用 /etc/ssl/private/ssl-cert-snakeoil.key 憑證,可以用您自己的憑證取代。 要有權讀取該文件,您需要將使用者新增至 ssl-cert 群組:
sudo adduser xrdp ssl-cert
預設設定可以在 /etc/default/xrdp 檔案中找到,所有其他伺服器設定檔都位於 /etc/xrdp 目錄中。 主要參數在xrdp.ini檔案中,不需要更改。 此配置有詳細的文件記錄,並且包含對應的線上說明頁:
man xrdp.ini
man xrdp
剩下的就是編輯 /etc/xrdp/startwm.sh 腳本,該腳本在使用者會話初始化時執行。 首先,讓我們從發行版中建立腳本的備份副本:
sudo mv /etc/xrdp/startwm.sh /etc/xrdp/startwm.b
sudo nano /etc/xrdp/startwm.sh
要啟動 XFCE 桌面環境,您需要一個如下所示的腳本:
#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
exec /usr/bin/startxfce4
請注意:在腳本中最好編寫可執行檔的完整路徑 - 這是一個好習慣。 讓我們使腳本可執行,此時 Xrdp 伺服器的配置可以認為已完成:
sudo chmod 755 /etc/xrdp/startwm.sh
重新啟動伺服器:
sudo systemctl restart xrdp
設定防火牆
預設情況下,Xrdp 在所有介面上偵聽 TCP 連接埠 3389。 根據虛擬伺服器配置,您可能需要設定 Netfilter 防火牆。 在 Linux 上,這通常是使用 iptables 實用程式完成的,但在 Ubuntu 上,最好使用 ufw。 如果客戶端的IP位址已知,則使用下列命令進行設定:
sudo ufw allow from IP_Address to any port 3389
您可以允許來自任何 IP 的連接,如下所示:
sudo ufw allow 3389
RDP 協定支援加密,但將 Xrdp 伺服器暴露在公共網路中是一個壞主意。 如果客戶端沒有固定IP,伺服器應該只監聽localhost以增加安全性。 最好透過 SSH 隧道存取它,這將安全地重定向來自客戶端電腦的流量。 我們有類似的方法
連接到 RDP 伺服器
要使用桌面環境,最好建立一個單獨的非特權使用者:
sudo adduser rdpuser
讓我們將使用者新增至 sudo 群組,以便他可以執行與管理相關的任務。 如果沒有這個需求,可以跳過這一步:
sudo gpasswd -a rdpuser sudo
您可以使用任何 RDP 用戶端連線到伺服器,包括內建的 Windows 遠端桌面服務用戶端。 如果 Xrdp 正在偵聽外部接口,則無需執行其他操作。 在連線設定中指定 VPS IP 位址、使用者名稱和密碼就足夠了。 連結後,我們會看到這樣的內容:
桌面環境初始設定完成後,我們將獲得一個完整的桌面。 正如您所看到的,它不會消耗太多資源,儘管一切都取決於所使用的應用程式。
如果 Xrdp 伺服器僅偵聽 localhost,則用戶端電腦上的流量必須打包到 SSH 隧道中(sshd 必須在 VPS 上執行)。 在 Windows 上,您可以使用圖形 SSH 用戶端(例如 PuTTY),在 UNIX 系統上,您需要 ssh 實用程式:
ssh -L 3389:127.0.0.1:3389 -C -N -l rdpuser RDP_server_ip
隧道初始化後,RDP用戶端將不再連接遠端伺服器,而是連接本地主機。
行動裝置就更困難了:必須購買能夠建立隧道的SSH客戶端,而在iOS和iPadOS中,第三方應用程式的後台操作由於能耗優化得太好而變得困難。 在 iPhone 和 iPad 上,您將無法在單獨的應用程式中建立隧道;您將需要一個本身可以透過 SSH 建立 RDP 連接的收割機應用程式。 比如說,比如
會話管理器和使用者會話
多用戶工作的能力直接在Xrdp伺服器中實現,不需要額外的配置。 透過 systemd 啟動服務後,一個程序以守護程序模式運行,偵聽連接埠 3389 並透過 localhost 與會話管理器進行通訊。
ps aux |grep xrdp
sudo netstat -ap |grep xrdp
會話管理器通常對使用者不可見,因為用戶端設定中指定的登入名稱和密碼會自動傳輸給它。 如果沒有發生這種情況或在身分驗證過程中出現錯誤,則會出現互動式登入視窗而不是桌面。
自動啟動會話管理器在 /etc/default/xrdp 檔案中指定,配置儲存在 /etc/xrdp/sesman.ini 中。 預設情況下,它看起來像這樣:
[Globals]
ListenAddress=127.0.0.1
ListenPort=3350
EnableUserWindowManager=true
UserWindowManager=startwm.sh
DefaultWindowManager=startwm.sh
[Security]
AllowRootLogin=true
MaxLoginRetry=4
TerminalServerUsers=tsusers
TerminalServerAdmins=tsadmins
; When AlwaysGroupCheck=false access will be permitted
; if the group TerminalServerUsers is not defined.
AlwaysGroupCheck=false
[Sessions]
您不必在此處進行任何更改,只需停用 root 權限登入 (AllowRootLogin=false)。 對於系統中授權的每個用戶,都會啟動一個單獨的 xrdp 進程:如果您在未結束會話的情況下斷開連接,用戶進程將預設繼續運行,您可以再次連接到會話。 可以在 /etc/xrdp/sesman.ini 檔案([Sessions] 部分)中更改設定。
切換鍵盤佈局
雙向剪貼簿通常沒有問題,但是使用俄語鍵盤佈局,您將不得不稍微嘗試一下(俄語區域設定應該已經是
sudo nano /etc/xrdp/xrdp_keyboard.ini
您需要將以下行新增至設定檔的末尾:
[rdp_keyboard_ru]
keyboard_type=4
keyboard_type=7
keyboard_subtype=1
model=pc105
options=grp:alt_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru
[layouts_map_ru]
rdp_layout_us=us,ru
rdp_layout_ru=us,ru
剩下的就是保存檔案並重新啟動 Xrdp:
sudo systemctl restart xrdp
正如你所看到的,在Linux VPS上設定RDP伺服器並不困難,但是
來源: www.habr.com