Udostępnij za pośrednictwem


Instalowanie i konfigurowanie środowiska xrdp do korzystania z pulpitu zdalnego z systemem Ubuntu

Dotyczy: ✔️ Maszyny wirtualne z systemem Linux — elastyczne zestawy skalowania ✔️

Jeśli dopiero zaczynasz korzystać z systemu Linux lub w przypadku szybkich scenariuszy rozwiązywania problemów, korzystanie z pulpitu zdalnego może być łatwiejsze niż dostęp do protokołu Secure Shell (SSH). W tym artykule opisano sposób instalowania i konfigurowania środowiska pulpitu (xfce) i pulpitu zdalnego (xrdp) dla maszyny wirtualnej z systemem Linux z systemem Ubuntu.

Artykuł został napisany i przetestowany przy użyciu maszyny wirtualnej z systemem Ubuntu 18.04.

Uwaga

Korzystanie z pulpitu zdalnego przez Internet spowoduje zauważalne "opóźnienie" (opóźnienie danych wejściowych) w porównaniu z użyciem pulpitu lokalnego. Może to mieć wpływ na wiele czynników, w tym lokalna szybkość internetu i odległość od centrum danych, w którym jest hostowana maszyna wirtualna. Opóźnienie to zwykle nie odzwierciedla wydajności samej maszyny wirtualnej.

Wymagania wstępne

Ten artykuł wymaga istniejącej maszyny wirtualnej z systemem Ubuntu 18.04 LTS lub Ubuntu 20.04 LTS na platformie Azure. Jeśli musisz utworzyć maszynę wirtualną, użyj jednej z następujących metod:

Instalowanie środowiska pulpitu na maszynie wirtualnej z systemem Linux

Większość maszyn wirtualnych z systemem Linux na platformie Azure domyślnie nie ma zainstalowanego środowiska klasycznego. Maszyny wirtualne z systemem Linux są często zarządzane przy użyciu połączeń SSH, a nie środowiska pulpitu, jednak istnieje kilka środowisk klasycznych, które można zainstalować. W zależności od wybranego środowiska pulpitu zużywa do 2 GB miejsca na dysku i trwa do dziesięciu minut, aby zainstalować i skonfigurować wszystkie wymagane pakiety.

Poniższy przykład instaluje lekkie środowisko pulpitu xfce4 na maszynie wirtualnej z systemem Ubuntu. Polecenia dla innych dystrybucji różnią się nieznacznie (użyj yum polecenia do zainstalowania w systemie Red Hat Enterprise Linux i skonfiguruj odpowiednie selinux reguły lub użyj zypper polecenia do zainstalowania na platformie SUSE, na przykład).

Najpierw użyj protokołu SSH do maszyny wirtualnej. Poniższy przykład łączy się z maszyną wirtualną o nazwie myvm.westus.cloudapp.azure.com przy użyciu nazwy użytkownika azureuser. Użyj własnych wartości:

ssh azureuser@myvm.westus.cloudapp.azure.com

Jeśli używasz systemu Windows i potrzebujesz więcej informacji na temat korzystania z protokołu SSH, zobacz How to use SSH keys with Windows (Jak używać kluczy SSH w systemie Windows).

Następnie zainstaluj program xfce przy użyciu polecenia apt :

sudo apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install xfce4
sudo apt install xfce4-session

Instalowanie i konfigurowanie serwera usług pulpitu zdalnego

Po zainstalowaniu środowiska pulpitu skonfiguruj usługę pulpitu zdalnego, aby nasłuchiwać przychodzących połączeń dostępu zdalnego. xrdp to serwer RDP (Open source Remote Desktop Protocol), który jest dostępny w większości dystrybucji systemu Linux i działa dobrze z xfce. Zainstaluj rozszerzenie xrdp na maszynie wirtualnej z systemem Ubuntu w następujący sposób:

sudo apt-get -y install xrdp
sudo systemctl enable xrdp

W systemie Ubuntu 20 musisz przyznać użytkownikowi xrdp dostęp do certyfikatu:

sudo adduser xrdp ssl-cert

Poinformuj xrdp, jakiego środowiska pulpitu używać podczas uruchamiania sesji. Skonfiguruj xrdp, aby używać środowiska xfce jako środowiska pulpitu w następujący sposób:

echo xfce4-session >~/.xsession

Uruchom ponownie usługę xrdp, aby zmiany zaczęły obowiązywać w następujący sposób:

sudo systemctl restart xrdp

Ustawianie hasła konta użytkownika lokalnego

Jeśli podczas tworzenia maszyny wirtualnej utworzono hasło dla konta użytkownika, pomiń ten krok. Jeśli używasz tylko uwierzytelniania za pomocą klucza SSH i nie masz ustawionego hasła konta lokalnego, określ hasło przed użyciem narzędzia xrdp do zalogowania się do maszyny wirtualnej. Xrdp nie może akceptować kluczy SSH na potrzeby uwierzytelniania. W poniższym przykładzie określono hasło dla konta użytkownika azureuser:

sudo passwd azureuser

Uwaga

Określenie hasła nie powoduje zaktualizowania konfiguracji dysku SSHD w celu zezwolenia na logowanie haseł, jeśli nie jest obecnie. Z punktu widzenia zabezpieczeń możesz chcieć nawiązać połączenie z maszyną wirtualną za pomocą tunelu SSH przy użyciu uwierzytelniania opartego na kluczach, a następnie nawiązać połączenie z platformą xrdp. Jeśli tak, pomiń poniższy krok tworzenia reguły sieciowej grupy zabezpieczeń, aby zezwolić na ruch pulpitu zdalnego.

Tworzenie reguły sieciowej grupy zabezpieczeń dla ruchu pulpitu zdalnego

Aby zezwolić na ruch pulpitu zdalnego do maszyny wirtualnej z systemem Linux, należy utworzyć regułę sieciowej grupy zabezpieczeń, która umożliwia protokół TCP na porcie 3389 dotarcie do maszyny wirtualnej. Aby uzyskać więcej informacji na temat reguł sieciowej grupy zabezpieczeń, zobacz Co to jest sieciowa grupa zabezpieczeń? Możesz również użyć witryny Azure Portal, aby utworzyć regułę sieciowej grupy zabezpieczeń.

Poniższy przykład tworzy regułę sieciowej grupy zabezpieczeń za pomocą polecenia az vm open-port na porcie 3389. Z poziomu interfejsu wiersza polecenia platformy Azure, a nie sesji SSH do maszyny wirtualnej, otwórz następującą regułę sieciowej grupy zabezpieczeń:

az vm open-port --resource-group myResourceGroup --name myVM --port 3389

Łączenie maszyny wirtualnej z systemem Linux przy użyciu klienta usług pulpitu zdalnego

Otwórz lokalnego klienta pulpitu zdalnego i połącz się z adresem IP lub nazwą DNS maszyny wirtualnej z systemem Linux.

Zrzut ekranu przedstawiający klienta pulpitu zdalnego.

Wprowadź nazwę użytkownika i hasło dla konta użytkownika na maszynie wirtualnej w następujący sposób:

Zrzut ekranu przedstawiający ekran logowania xrdp.

Po uwierzytelnieniu środowisko pulpitu xfce zostanie załadowane i będzie wyglądać podobnie do poniższego przykładu:

środowisko pulpitu xfce za pomocą narzędzia xrdp

Jeśli lokalny klient RDP używa uwierzytelniania na poziomie sieci (NLA), może być konieczne wyłączenie tego ustawienia połączenia. XRDP nie obsługuje obecnie nla. Możesz również zapoznać się z alternatywnymi rozwiązaniami RDP obsługującymi nla, takimi jak FreeRDP.

Rozwiązywanie problemów

Jeśli nie możesz nawiązać połączenia z maszyną wirtualną z systemem Linux przy użyciu klienta pulpitu zdalnego, użyj go netstat na maszynie wirtualnej z systemem Linux, aby sprawdzić, czy maszyna wirtualna nasłuchuje połączeń RDP w następujący sposób:

sudo netstat -plnt | grep rdp

W poniższym przykładzie pokazano, że maszyna wirtualna nasłuchuje na porcie TCP 3389 zgodnie z oczekiwaniami:

tcp     0     0      127.0.0.1:3350     0.0.0.0:*     LISTEN     53192/xrdp-sesman
tcp     0     0      0.0.0.0:3389       0.0.0.0:*     LISTEN     53188/xrdp

Jeśli usługa xrdp-sesman nie nasłuchuje, na maszynie wirtualnej z systemem Ubuntu uruchom ponownie usługę w następujący sposób:

sudo systemctl restart xrdp

Przejrzyj dzienniki na /var/log na maszynie wirtualnej z systemem Ubuntu, aby uzyskać wskazówki, dlaczego usługa może nie odpowiadać. Dziennik systemu można również monitorować podczas próby wyświetlenia błędów podczas nawiązywania połączenia pulpitu zdalnego:

tail -f /var/log/syslog

Inne dystrybucje systemu Linux, takie jak Red Hat Enterprise Linux i SUSE, mogą mieć różne sposoby ponownego uruchamiania usług i alternatywnych lokalizacji plików dziennika do przejrzenia.

Jeśli nie otrzymasz żadnej odpowiedzi w kliencie pulpitu zdalnego i nie widzisz żadnych zdarzeń w dzienniku systemu, to zachowanie wskazuje, że ruch pulpitu zdalnego nie może dotrzeć do maszyny wirtualnej. Przejrzyj reguły sieciowej grupy zabezpieczeń, aby upewnić się, że masz regułę zezwalającą na protokół TCP na porcie 3389. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z łącznością aplikacji.

Następne kroki

Aby uzyskać więcej informacji na temat tworzenia i używania kluczy SSH na maszynach wirtualnych z systemem Linux, zobacz Tworzenie kluczy SSH dla maszyn wirtualnych z systemem Linux na platformie Azure.

Aby uzyskać informacje na temat korzystania z protokołu SSH z systemu Windows, zobacz How to use SSH keys with Windows (Jak używać kluczy SSH w systemie Windows).