Поделиться через


Установка и настройка xrdp для использования удаленного рабочего стола с Ubuntu

Область применения: ✔️ Виртуальные машины Linux ✔️ Гибкие масштабируемые наборы

Если вы не знакомы с Linux или для быстрого устранения неполадок, использование удаленного рабочего стола может быть проще, чем доступ к Secure Shell (SSH). В этой статье описано, как установить и настроить среду рабочего стола (xfce) и удаленный рабочий стол (xrdp) для виртуальной машины Linux под управлением Ubuntu.

Примечание.

Использование удаленного рабочего стола через Интернет приведет к заметной "временной задержке" (задержке ввода) по сравнению с использованием локального рабочего стола. Это может повлиять на несколько факторов, включая локальную скорость Интернета и расстояние от центра обработки данных, на котором размещена виртуальная машина. Эта задержка обычно не отражает производительность самой виртуальной машины.

Это важно

Начиная с Red Hat 9 xrdp больше не поддерживается, так как для него требуются сторонние репозитории, Red Hat имеет конкретные шаги по включению такого доступа, описанного здесь.

Предпосылки

Эта статья и предоставленные шаги основаны на результатах тестирования Ubuntu 24.04 и SUSE Enterprise Linux 15.

Если вам нужно создать виртуальную машину, используйте один из следующих методов:

Установка графической среды на виртуальной машине Linux

Большинство виртуальных машин Linux в Azure не имеют установленной по умолчанию графической среды. Виртуальные машины Linux обычно управляются с помощью SSH-подключений, а не в классической среде, однако существует несколько классических сред, которые можно установить. В зависимости от выбранной среды рабочего стола он потребляет до 2 ГБ дискового пространства и занимает до десяти минут, чтобы установить и настроить все необходимые пакеты.

В следующем примере устанавливается легковесная среда рабочего стола xfce4 на виртуальной машине Ubuntu.

Во-первых, SSH на виртуальную машину. В следующем примере подключается к виртуальной машине с именем myvm.westus.cloudapp.azure.com с именем пользователя azureuser. Используйте собственные значения:

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

Если вы используете Windows и хотите получить дополнительные сведения об использовании SSH, ознакомьтесь с разделом "Как использовать ключи SSH с Windows".

Для Ubuntu 24.04

Установите все необходимые пакеты с помощью apt :

sudo apt update
sudo apt install xfce4 xfce4-session xrdp
sudo systemctl enable xrdp

Для SUSE Enterprise Linux 15

Установите все необходимые пакеты с помощью zypper :

sudo zypper in xorg-x11-server xterm xorg-x11-xauth xrdp ssl-cert xhost xclock
sudo systemctl enable xrdp

В Ubuntu 24 необходимо предоставить доступ к сертификату пользователю xrdp:

sudo adduser xrdp ssl-cert

Приведенные ниже действия относятся к дистрибутивам (Ubuntu 24 и SUSE Enterprise Linux 15)

Сообщите xrdp, какую среду рабочего стола следует использовать при запуске сеанса. Настройте xrdp для использования xfce в качестве среды рабочего стола следующим образом:

echo xfce4-session >~/.xsession

Перезапустите службу xrdp, чтобы изменения вступили в силу следующим образом:

sudo systemctl restart xrdp

Установка пароля учетной записи локального пользователя

Если вы создали пароль для учетной записи пользователя при создании виртуальной машины, пропустите этот шаг. Если вы используете только проверку подлинности ключа SSH и не имеете набор паролей локальной учетной записи, укажите пароль, прежде чем использовать xrdp для входа в виртуальную машину. xrdp не может принимать ключи SSH для проверки подлинности. В следующем примере указывается пароль для учетной записи пользователя azureuser:

sudo passwd azureuser

Примечание.

Указание пароля не обновляет конфигурацию SSHD для разрешения входа по паролю, если это в настоящее время не разрешено. С точки зрения безопасности вы можете подключиться к виртуальной машине с помощью туннеля SSH с помощью проверки подлинности на основе ключей, а затем подключиться к xrdp. Если это так, пропустите следующий шаг по созданию правила группы безопасности сети, чтобы разрешить трафик удаленного рабочего стола.

Создание правила группы безопасности сети для трафика удаленного рабочего стола

Чтобы разрешить трафик удаленного рабочего стола для доступа к виртуальной машине Linux, необходимо создать правило группы безопасности сети, позволяющее tcp через порт 3389 связаться с виртуальной машиной. Дополнительные сведения о правилах группы безопасности сети см. в разделе "Что такое группа безопасности сети"? Вы также можете использовать портал Azure для создания правила группы безопасности сети.

В следующем примере создается правило группы безопасности сети с az vm open-port на порту 3389. В Azure CLI, а не сеансе SSH на виртуальной машине, откройте следующее правило группы безопасности сети:

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

Подключение виртуальной машины Linux с помощью клиента удаленного рабочего стола

Откройте клиент локального удаленного рабочего стола и подключитесь к IP-адресу или DNS-имени виртуальной машины Linux.

Снимок экрана: клиент удаленного рабочего стола.

Введите имя пользователя и пароль для учетной записи пользователя на виртуальной машине следующим образом:

Снимок экрана экрана входа в систему xrdp.

После проверки подлинности среда рабочего стола xfce загружается и выглядит примерно так:

Среда рабочего стола xfce через xrdp

Если локальный клиент RDP использует проверку подлинности на уровне сети (NLA), может потребоваться отключить этот параметр подключения. XRDP в настоящее время не поддерживает NLA. Вы также можете просмотреть альтернативные решения RDP, поддерживающие NLA, например FreeRDP.

Устранение неполадок

Если вы не можете подключиться к виртуальной машине Linux с помощью клиента удаленного рабочего стола, используйте netstat на виртуальной машине Linux, чтобы убедиться, что виртуальная машина прослушивает подключения RDP следующим образом:

sudo netstat -plnt | grep rdp

В следующем примере показана виртуальная машина, прослушивающая TCP-порт 3389, как ожидалось:

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

Если служба xrdp-sesman не прослушивает, на виртуальной машине Ubuntu перезапустите службу следующим образом:

sudo systemctl restart xrdp

Просмотрите журналы в /var/log на виртуальной машине Ubuntu, чтобы указать, почему служба может не отвечать. Вы также можете отслеживать системный журнал во время подключения к удаленному рабочему столу, чтобы просмотреть все ошибки:

tail -f /var/log/syslog

Если вы не получаете ответ в клиенте удаленного рабочего стола и не видите никаких событий в системном журнале, это означает, что трафик удаленного рабочего стола не может добраться до виртуальной машины. Просмотрите правила группы безопасности сети, чтобы убедиться, что у вас есть правило, позволяющее разрешить TCP через порт 3389. Дополнительные сведения см. в разделе "Устранение неполадок с подключением к приложению".

Дальнейшие действия

Дополнительные сведения о создании и использовании ключей SSH с виртуальными машинами Linux см. в статье "Создание ключей SSH для виртуальных машин Linux в Azure".

Сведения об использовании SSH из Windows см. в статье "Использование ключей SSH с Windows".