Глава 9. Рабочее место Linux в WSL

В этой главе мы намерены изучить инструменты и службы, которые требуются для включения практики рабочего стола в нашей подсистеме Windows для Linux, а также пошаговое конфигурирование и процесс настройки. Для предоставления полной практики рабочего стола в нашей подсистеме Windows для Linux существуют два важных требования. Во- первых, нам необходима среда рабочего стола, которая позволяет пользователям взаимодействовать с Linux посредством меню и множества оконных приложений с применением графического интерфейса пользователя (GUI). Во- вторых, нам требуется некая служба, которая способна соединять с пользователя Windows с запущенной в WSL средой рабочего стола Linux.

Мы изучим как применять “Xfce” в качестве среды рабочего стола и “xRDP” как службу для запуска сервера Remote Desktop Protocol (RDP) в дистрибутиве Linux, который способен распознавать входящие запросы подключения RDP из Windows.

Давайте рассмотрим один за другим те шаги, которые вовлекаются в настройку рабочего стола Linux.

Xfce

Xfce это бесплатная среда рабочего стола с открытым исходным кодом для Unix подобных операционных систем, которая обладает визуальной привлекательностью и дружественным пользователю интерфейс по сравнению с интерфейсом командной строки, что отражено на Рисунке 9-1.

 

Рисунок 9-1


Использующая Xfce среда рабочего стола

Как и рабочий стол GNOME, Xfce также основывается на GTK, который является популярным инструментарием для создания программ с графическим интерфейсом пользователя (GUI, graphical user interface), который работает с X Window System. Подобный GTK инструментарий делает возможным для пользователей создавать окна, меню, а также всплывающие окна диалога для взаимодействия с пользователями и прочими программами GUI.

Для предоставления полной функциональности среды с рабочим столом, которая обладает высокой степенью настраиваемости, совместно поставляется множество пакетов и компонентов, что означает что пользователи способны выбирать добавление или удаление доступные пакеты для сборки подходящей практики рабочего стола под свои собственные потребности. Вот некоторые ключевые компоненты Xfce:

  • Window Manager - контролирует и управляет местоположением окон на вашем экране.

  • Desktop Manager - обрабатывает фоновые изображения, меню и самого рабочего стола.

  • Panel - предоставляет возможность переключения между окнами и приложениями.

  • Session Manager - управляет регистрацией сеансов пользователя.

  • Application Finder - разбивает на категории и отображает установленные приложения с тем, чтобы они были проще доступны для пользователя.

  • File Manager - предоставляет возможности управления файлами в графическом интерфейсе пользователя.

  • Setting Manager - управляет всеми настройками установленной практики рабочего стола, например, темы и установки дисплея.

xRDP

xRDP это инструмент с открытым исходным кодом, который позволяет пользователям Windows удалённый доступ к рабочему столу через Windows Remote Desktop Protocol (RDP) предоставляя графический интерфейс для регистрации в заданной удалённой машины и подключения к ней. Поддерживаемые клиенты RDP (например, MSTSC.exe) могут отправлять запросы подключения к соответствующему серверу xRDP, запущенному в определённом дистрибутиве Linux. Вот некоторые поддерживаемые клиенты RDP.

  • Microsoft Terminal Services Client (MSTSC)

  • FreeRDP

  • Rdesktop

  • NeutrinoRDP

Иными словами, xRDP это реализация с открытым исходным кодом частного протокола RDP Microsoft, который может служить мостом подключения для пользователей Windows к некой системе Linux через сетевое подключение. xRDP теперь поддерживает протокол Transport Layer Security (TLS), который превращает его в более безопасный.

Все настройки конфигурации xRDP хранятся в файле /etc/xrdp/xrdp.ini, в котором вы можете обнаружить такие настройки как номер порта, по которому пользователи способны подключаться к рабочему стола Linux или настройки протокола, используемые для безопасности соответствующего подключения, например, RDP, TLS или Negotiate, как это показано на Рисунке 9-2.

 

Рисунок 9-2


Настройка сервера xRDP через файл конфигурации /etc/xrdp/xrdp.ini

Такой сервер xRDP также поддерживает регистрацию всех входящих соединений привязок порта, включая некий уровень безопасности и тому подобного в соответствующем файле регистрации /var/log/xrdp.log, как это показано на Рисунке 9-3.

 

Рисунок 9-3


Регистрационные записи сервера xRDP хранятся в /var/log/xrdp.log

Теперь, когда мы понимаем чем занимаются Xfce и xRDP, давайте настроим среду рабочего стола в установленной подсистеме Windows для Linux, которая снабдит нас GUI (граическим интерфейсом пользователя) и расширяет общую практику разработки.

[Замечание]Замечание

Во всех примерах данной книги мы использовали дистрибутивы Ubuntu 18.04, однако поскольку начиная с апреля 2020 в WSL был выпущен дистрибутив Linux Ubuntu 20.04 LTS, мы будем основываться в своих примерах данной главы на самом последнем выпуске Ubuntu. Прежде чем мы продолжим работу с этими примерами, пройдите, пожалуйста, в Microsoft store и выгрузите в своей машине пакет дистрибутива Linux “Ubuntu 20.04 LTS”.

Установка и настройка

Для получения практики рабочего стола в подсистеме Windows для Linux:

  1. В своей подсистеме Windows для Linux откройте дистрибутив Ubuntu 20.04 LTS и полностью обновите этот дистрибутив, запустив приводимую ниже команду. Этот этап может потребовать некое время для завершения обновления в зависимости от скорости Интернета, поэтому, будьте любезны, позвольте ему завершиться как это показано на Рисунке 9-4.

    
    > sudo apt update && sudo apt upgrade –y
    		
     

    Рисунок 9-4


    Обновление и изменение дистрибутива Linux

  2. После завершения нашего предыдущего шага установите оба сервера и Xfce, и xRDP при помощи следующей команды. Если это включит предупреждающие сообщения от Windows Defender Firewall, будьте добры проследовать далее и кликнуть “Allow access” для своих частных сетевых сред (privte networks).

    
    > sudo apt install xfce4 xrdp
    		
  3. После завершения установки предыдущего шага нам потребуется убедиться что xRDP не пользуется портом 3389, как это показано на Рисунке 9-5, иначе он будет конфликтовать с любым сервером RDP, который может запускаться в самом хосте Windows. {Прим. пер.: или наоборот, а ещё лучше, из соображений безопасности изменить оба.}

     

    Рисунок 9-5


    По умолчанию, xRDP выполняет ожидание по порту RDP 3389

  4. Измените настройки в /etc/xrdp/xrdp.ini с тем, чтобы наш сервер xRDP выполнял ожидание по порту 5000 для Ubuntu 20.04, запущенного в WSL при помощи любого текстового редактора (например, nano), он должен выглядеть так, как на Рисунке 9-6.

    
    > sudo nano /etc/xrdp/xrdp.ini
    		
     

    Рисунок 9-6


    Настройка сервера xRDP на прослушивание порта 5000

  5. Запустите в своём дистрибутиве Linux службу xRDP при помощи приводимой ниже команды и, как это показано на Рисунке 9-7, вы обнаружите, что ваш сервер протокола RDP начнёт ожидание по назначенному порту, который будет применяться клиентом RDP Microsoft (mstsc.exe) для подключения к Ubuntu 20.04 и предоставлению полной практики рабочего стола.

    
    > sudo service xrdp start
    		

    Необходимо запускать службу “xrdp” всякий раз, когда вы желаете устанавливать некий удалённый сеанс, но вы также можете создать некий сценарий запуска для его выполнения при каждом запуске своего дистрибутива Linux, что позволит быть уверенным, что эта служба запущена когда она вам потребуется.

     

    Рисунок 9-7


    Запуск службы xRDP

  6. Если ваш предыдущий шаг был успешен и никаких ошибок не выдано, как это показано на Рисунке 9-7, вы почти завершили свою установку и настройку.

  7. Теперь запустите свой Windows Remote Desktop Connection Manager (mstsc.exe) и подключитесь к порту 5000 “localhost”, как это показано на Рисунке 9-8. Обратите, пожалуйста, внимание что это сработает только в WSL1, а поскольку WSL2 запускается в облегчённой вспомогательной ВМ, для установления удалённого подключения к экземпляру WSL2 вам может потребоваться получить его IP адрес.

     

    Рисунок 9-8


    Подключение сервера xRDP при помощи клиента RDP

  8. Если предыдущий шаг завершился неудачно, откройте консоль PowerShell с правами администратора и выполните приводимую ниже команду, которая перезапустит ваш экземпляр Linux и снова затем запустит WSL. Теперь снова запустите службу “xrdp”, как это описывалось на шаге 5 и поробуйте снова шаг 7.

    
    PS > Get-Service LxssManager | Restart-Service
    		
  9. Это установит соединение с запущенным под WSL дистрибутивом Linux, который мы только что настроили с Xfce and xRDP.

  10. Теперь просто примените полномочия для Ubuntu 20.04 и нажмите кнопку OK, как это показано на Рисунке 9-9.

     

    Рисунок 9-9


    Предоставление полномочий Linux

  11. После предоставления этих полномочий xRDP запустит полную практику рабочего стола под WSL, как это показано на Рисунке 9-10.

     

    Рисунок 9-10


    Рабочий стол Linux в нашей подсистеме Windows для Linux

Выводы

В этой главе мы изучили пошаговые установку и настройку Xfce и xRDP, которые включают полную практику рабочего стола в подсистеме Windows для Linux. После того как настройка выполнена, это позволяет пользователям взаимодействовать с экземпляром подсистемы Windows для Linux через графический интерфейс пользователя. Xfce создаёт среду рабочего стола для своих пользователей, а xRDP это служба, которая делает возможными подключения пользователей Windows к экземплярам Linux через протокол RDP.