Как подключиться к серверу linux с графическим интерфейсом

Обновлено: 07.07.2024

В мире ИТ существует уже довольно широкий спектр операционных систем, начиная с серверных, заканчивая операционными системами для мобильных устройств. В обычных пользовательских компьютерах и в серверах довольно часто используются две ОС — Linux и Windows. Поэтому очень часто возникают ситуации, когда приходится подключаться по сети из одной операционной системы к другой для выполнения разнообразных операций.

В этой статье мы рассмотрим варианты подключения к Linux из Windows. Существуют бесплатные и условно бесплатные утилиты вроде AnyDesk или TeamViewer, но установка их довольно тривиальна и не нуждается в дополнительном пояснении. Утилиты подобного рода обладают рядом ограничений при бесплатном некоммерческом использовании, либо их функциональность не удовлетворяет тем или иным потребностям пользователя. Мы рассмотрим полностью бесплатные способы как подключится к Linux из Windows.

Удалённый доступ к Linux с помощью VNC

На сегодняшний день самое популярное удаленное подключение к Linux из Windows, с использованием привычный в Windows графического интерфейса, является VNC (Virtual Network Computing) — утилита, использующая протокол RFB (Remote FrameBuffer — удалённый кадровый буфер). Управление осуществляется путём передачи нажатий клавиш на клавиатуре и движений мыши с одного компьютера на другой и ретрансляции содержимого экрана через компьютерную сеть.

В качестве сервера VNC в данном примере будет использоваться TightVNC, установленный в Ubuntu 20.04. Для установки сервера VNC необходимо выполнить ряд действий:

Шаг 1. Установка рабочей среды XFCE

Xfce — одна из самых легковесных рабочих сред, используемых в Linux, она будет быстро работать даже при слабом и нестабильном сетевом подключении. Установите её с помощью команд:

sudo apt update

sudo apt install xfce4 xfce4-goodies

Шаг 2. Установка TightVNC

Далее установите TightVNC:

sudo apt install tightvncserver

Шаг 3. Настройка пароля

Перед началом выполнения всех действий необходимо задать пароль пользователя VNC. Выполните команду:

Вам будет предложено создать новый пароль, а также пароль только для просмотра. Откажитесь от второй опции:


Завершите процесс vncserver:

vncserver -kill :1

Шаг 4. Настройка скрипта запуска

Отредактируйте скрипт, который выполняется после запуска VNC-сервера:

Он должен содержать такой текст:

Сделайте файл исполняемым:

Шаг 5. Запуск VNC сервера

На этом этапе уже можно запустить VNC-сервер с помощью команды:

Шаг 6. Подключение из Windows

Для того, чтобы подключиться из Windows к вашему Linux-серверу, используйте TightVNC Viewer.

Укажите IP-адрес компьютера, к которому нужно подключиться, и номер порта в поле Remote Host. В данном примере — 192.168.56.102::5901:


После того, как будет введён пароль, вы должны увидеть рабочий стол Xfce:


Шаг 8. Настройка systemd

Для того, чтобы запуск вашего VNC-сервера добавить в автозагрузку надо использовать systemd. Создайте новый файл сервиса systemd:

sudo nano /etc/systemd/system/vncserver@.service

Его содержимое должно быть следующим:

[Unit]
Description=Systemd VNC server startup script for Ubuntu 20.04
After=syslog.target network.target
[Service]
Type=forking
User=ubuntu
ExecStartPre=-/usr/bin/vncserver -kill :%i &> /dev/null
ExecStart=/usr/bin/vncserver -depth 24 -geometry 800x600 :%i
PIDFile=/home/ubuntu/.vnc/%H:%i.pid
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target

Измените имя пользователя ubuntu и рабочего каталога ubuntu на нужные вам значения. Если у вас запущен VNC-сервер, остановите его:

vncserver -kill :1

Сообщите systemd о появлении нового сервиса:

sudo systemctl daemon-reload

Добавьте запуск вашего нового сервиса в список автозагрузки:

sudo systemctl enable vncserver@1.service

sudo systemctl start vncserver@1

Использование RDP для удалённого подключения

Помимо VNC, для управления Linux-сервером из Windows можно воспользоваться RDP (Remote Desktop Protocol). Для этого на компьютере с Ubuntu 20.04 установите утилиту xrdp:

sudo apt install xrdp

Для корректной работы сервиса необходимо добавить пользователя xrdp в группу ssl-cert:

sudo adduser xrdp ssl-cert

sudo apt-get install xfce4

Добавьте Xfce в сессии RDP в качестве рабочего стола по умолчанию:

Перезапустите сервис xrdp:

sudo systemctl restart xrdp.service

Процедура подключения из Windows к Linux-серверу по протоколу RDP почти ничем не отличается от подключения к удалённым Windows-серверам. Введите IP-адрес сервера, логин и пароль пользователя в Linux:


Если всё сделано правильно, вы увидите рабочий стол Xfce:


Подключение к Linux из Windows по SSH

Для подключения к компьютеру под управлением Linux по протоколу SSH из Windows можно воспользоваться PowerShell. Сначала становите OpenSSH Client, если ещё не установлен. Запустите на вашем компьютере PowerShell от имени администратора системы и выполните следующую команду:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'


Это необходимо для того, чтобы узнать текущую версию SSH-клиента. В данном примере доступна версия OpenSSH.Client-0.0.1.0. Установите OpenSSH.Client с помощью команды:

Add-WindowsCapability -Online -Name OpenSSH.Client


Для того, чтобы подключиться к устройству, на котором запущен SSH-сервер, необходимо ввести имя пользователя и IP-адрес. Команда для подключения по SSH используя PowerShell выглядит так:

Здесь ubuntu — имя пользователя на удалённом компьютере, а 192.168.56.1 — IP-адрес Linux-сервера, на котором запущен демон SSH.

При первом подключении необходимо подтвердить использование специального персонального ключа для шифрованного соединения по SSH-протоколу (введите слово Yes), затем введите пароль пользователя (в данном случае для пользователя ubuntu):

Как видите, соединение прошло успешно. Теперь можно выполнять все команды так же, как если бы вы их выполняли используя стандартный Linux SSH-клиент:


Для завершения терминальной сессии на удалённом компьютере введите команду exit. Теперь вы знаете как выполняется подключение к Linux из Windows по SSH.

Использование Putty для подключения к Linux

Пожалуй, одним из самых популярных способов подключения к Linux из Windows является кроссплатформенная утилита Putty — небольшая по размерам, но очень часто незаменима для подключения по таким протоколам как SSH, Telnet, rlogin и даже с помощью последовательных портов.

Для обычного подключения к Linux-серверу по протоколу SSH достаточно в поле Host Name (or IP-address) указать его IP-адрес и нажать кнопку Open (в данном примере Linux-сервер имеет IP-адрес: 192.168.56.102):



Далее нужно будет ввести логин и пароль. Если всё сделано правильно, запустится удалённая сессия терминала Linux:


Мало кто знает, что Putty позволяет запустить почти любое приложение, установленное на компьютере с Linux, по сети в Windows. Для этого на компьютере с Windows нужно установить собственный X-сервер. В данном примере воспользуемся Xming.

Скачайте Xming с официального сайта. Установка довольно тривиальная, поэтому не будем на ней останавливаться. Ничего не меняйте в процессе установки. Просто нажимайте кнопку Next до тех пор, пока программа не установится и не запустится:


Когда установка Xming завершится, откройте Putty и в настройках сессии для вашего подключения в разделе SSH -> X11 включите флажок напротив опции Enable X11 forwarding, а также, в строке Отображение дисплея X впишите значение localhost:0, после чего откройте сессию подключения с помощью кнопки Open:


В открывшемся терминале Putty введите консольное название программы, обладающей графическим интерфейсом. В данном примере введено название графического редактора drawing:

(Знак & позволит запустить программу в фоновом режиме, в этом случае в окне Putty можно будет выполнять и другие команды):


Как видите, Linux-приложение drawing успешно запустилось по сети на X-сервере, установленном в Windows. С ним можно работать так же, как и с локальным приложением.

Выводы

Сегодня не существует слишком уж больших проблем для подключения к Linux из Windows. Способов существует довольно много. Каждый из них обладает своими достоинствами и недостатками, например, скорость работы VNC, да и других тоже, существенно зависит от скорости сетевого соединения. Существуют также программные средства, позволяющие подключаться к Linux-серверам используя мессенджеры или браузеры.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Для удаленного подключения к графической подсистеме Linux из Windows используются два основных способа:

- перенаправление графического ввода-вывода из среды Linux на графический сервер , работающий на стороне Windows ( X11 Forwarding )

- подключение с использованием X Display Manager Control Protocol (XDMCP) - протокола, обеспечивающего удаленное подключение графических терминалов (X-терминалов) к графическому серверу (X-серверу).

Первый способ проще реализуется и позволяет получить приемлемое быстродействие графических приложений на системах с малой производительностью. Менеджер дисплея и TCP-соединения X-сервера на стороне Linux в данном случае не используются. Второй – позволяет получить полноценное удаленное рабочее место пользователя, функционально ничем не отличающееся от обычного, локального. При реализации данного вида удаленного подключения используются дополнительные настройки конфигурации для X-сервера и менеджера дисплея.

Подключение из Windows к графической подсистеме Linux на примере Ubuntu Desktop .

Способы и средства удаленного подключения к графической подсистеме Linux из Windows уже рассматривались подробно в статье Подключение из Windows к графической подсистеме Mandriva Linux. В данной же статье рассматриваются вопросы, связанные с особенностями настройки X-сервера Ubuntu и менеджера дисплея LightDM. На стороне Windows используется бесплатный пакет Xming, последнюю версию которого, а также дополнительные пакеты с поддержкой различных шрифтов, и локализованную версию мастера Xlaunch найдете здесь:

Удаленная работа с графическими приложениями при использовании X11 Forwarding.

Перенаправление графического вывода удаленной подсистемы ( X11 Forwarding ) позволяет работать напрямую с графическими приложениями среды Linux на компьютере с графическим сервером Xming на стороне Windows. Данный режим реализуется с помощью SSH-подключения, в котором ssh-сервер sshd на стороне Linux перехватывает графический ввод-вывод и перенаправляет его ssh-клиенту ( PuTTY ) на стороне Windows, который в свою очередь , перенаправляет его графическому серверу Xming , развернутому в среде Windows. Таким образом, для реализации данного режима не требуется настройка X-сервера и менеджера дисплея для работы по сети, но требуется установка и настройка демона ssh на стороне Linux. В большинстве дистрибутивов Linux для рабочих станций (например, Ubuntu Desktop), сервер SSH по умолчанию, не устанавливается, поэтому его нужно установить командой :

sudo apt-get install ssh

… ncurses-term openssh-server python-requests python-urllib3 ssh-import-id, rssh molly-guard monkeysphere openssh-blacklist openssh-blacklist-extra ) НОВЫЕ пакеты, которые будут установлены: ncurses-term openssh-server python-requests python-urllib3 ssh ssh-import-id обновлено 0, установлено 6 новых пакетов, для удаления отмечено 0 пакетов, и 273 пакетов не обновлено. Необходимо скачать 848 kБ архивов. После данной операции, объём занятого дискового пространства возрастёт на 3 480 kB. Хотите продолжить [Д/н]? После ответа Д будет установлен и запущен сервер SSH

Для проверки работоспособности ssh-сервера можно воспользоваться командой:

netstat -na | more

Строка Означает, что сервер ожидает входящие соединения ( “слушает”, LISTEN ) стандартный порт 22 на всех сетевых интерфейсах (0 0.0.0.0:22 )

Для режима перенаправления графического вывода X11 forwarding в настройках демона sshd необходимо включить ( проверить ) некоторые параметры. Все действия требуют права root.

Переходим в каталог /etc/ssh и открываем конфигурационный файл демона SSH sshd_config . Для работы через X11 Forwarding в нем должна присутствовать незакомментированная строка

X11Forwarding yes

Естественно, в данном режиме, работа с удаленной графической подсистемой Linux, выполняется напрямую с графическими приложениями, без использования рабочего стола Ubuntu. Если количество нужных для работы приложений невелико, то такой способ предпочтительнее, поскольку позволяет снизить степень использования ресурсов удаленной системы и позволяет получить более высокое быстродействие, по сравнению с технологией, основанной на использовании XDMCP. Таким образом, при перенаправлении графического вывода, ( X11 forwarding )программа Xming, используется в качестве X-сервера, работающего поверх вашего рабочего стола Windows, с запускаемыми на удаленной системе с ОС Linux графическими приложениями. При этом, графический сервер на удаленном Linux не используется и может быть даже не установлен.

Кроме Xming, в данной технологии используются клиент и сервер SSH. Клиентская часть - на компьютере с ОС Windows, сервер - на компьютере с Linux. Разработчики Xming с некоторых пор, включили клиентское программное обеспечение для реализации режима X11 Forwarding в состав инсталляционных пакетов (Standart PuTTY и Portable PuTTY).

Выбор варианта инсталляции Xming

При установке пакета Xming имеется возможность выбрать устанавливаемые версии PuTTY.

Однако, лучшим выбором будет скачать актуальную версию бесплатного SSH - клиента для Windows на странице загрузки PuTTY, где размещены ссылки для скачивания файлов утилиты putty.exe и дополнительных программных модулей, которые могут использоваться для работы с ней (копирование файлов, генерация ключей, телнет-клиент и т.п.). Имеется также ссылка для скачивания архива, включающего putty.exe и дополнительных программ для 32-х и 64-х разрядных ОС. Инсталляция не требуется. Просто скопируйте исполняемый файл putty.exe в каталог с установленным Xming, или любой другой, по вашему выбору.

PuTTY для X11 forwarding

Данные настройки означают, что разрешено X11 Forwarding и для него будет использоваться графический дисплей (X-дисплей) с номером 0 . Использовать 0-й номер дисплея не обязательно, но важно, чтобы этот номер совпадал с номером дисплея, указанном при запуске Xming ( поле Display number ):

Xming - X11 forwarding

При запуске Xming , с помощью мастера Xlaunch , задается номер дисплея (при необходимости) и выбирается многооконный режим Multiple windows , остальные параметры можно оставить по умолчанию. Фактически, номер дисплея определяет номер порта графического сервера на стороне Windows

– 0 соответствует порту 6000/TCP

Как уже рассматривалось выше, настройки X11 Forwarding в секции SSH/X11 PuTTY, также определяют X-сервер, на который будет перенаправляться графический ввод-вывод:

localhost:0 - X-сервер, слушающий порт 6000/TCP

localhost:1 - X-сервер, слушающий порт 6001/TCP

xmessage $DISPLAY - отобразить значение переменной DISPLAY

В результате выполнения команды получим:

xmessage – вывод значения переменной DISPLAY

После того, как Xming стартовал, с помощью ssh-клиента PuTTY подключаемся к ssh-серверу Linux Ubuntu, и в командной строке запускаем нужное графическое приложение, Например, если запустить графический терминал xterm , то на компьютере с Windows появляется окно графического терминала Linux.

Xterm на компьютере с Windows через X11 forwarding

При запуске из сессии SSH-клиента PuTTY, или из окна уже запущенного терминала xterm , какого-либо графического приложения, например, обозревателя firefox на рабочем столе Windows отобразится его окно, в котором можно работать точно так же, как и на локальном компьютере с Linux Ubuntu.

Удаленное подключение к графической подсистеме из Linux .

Настройки демона sshd для удаленного доступа к графической подсистеме Linux выполняются точно так же, как и в случае перенаправления для X-сервера на стороне Windows. Графический вывод удаленной системы, в данной конфигурации, будет перенаправляться демоном sshd и разворачиваться графическим сервером на стороне подключившегося клиента.

Для удаленного подключения к графической подсистеме с использованием перенаправления X11 Forwarding клиентов Linux-систем, можно воспользоваться стандартным SSH-клиентом:

ssh -X -l user 192.168.0.1

-X - использовать перенаправление графического вывода X11Forwarding.

-l user - имя пользователя для подключения к удаленному компьютеру.

192.168.0.1 - адрес удаленного компьютера

После регистрации в удаленной системе, пользователь user имеет возможность работать с графическими приложениями на удаленном компьютере 192.168.0.1

Для запуска конкретного приложения на удаленной системе, можно указать его имя:

ssh -X -l user 192.168.0.1 ‘xterm’

После авторизации, на локальном дисплее отобразится окно терминала xterm удаленного компьютера под управлением Linux.

По соображениям безопасности, вместо параметра ssh -X желательно использовать параметр -Y , предотвращающий возможность взаимодействия удаленного клиента с локальным графическим дисплеем системы, к которой выполняется подключение.

Подключение к рабочему столу Linux Ubuntu с использованием XDMCP.

Менеджер дисплея ( Display Manager или DM ) - это специальная системная служба обеспечивающая запуск графического сервера, вывод на графический дисплей приглашения на вход в систему, регистрацию пользователей, запуск оконных менеджеров, монтирование необходимых устройств, ведение баз данных входов и выходов пользователей в системе utmp и wtmp и т.п.

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


Особенности настроек безопасности в Linux Ubuntu Desktop последних версий не предусматривают возможности удаленного подключения к графической среде по локальной сети – сервер X11 не слушает порт 6000/TCP и менеджер LightDM не слушает порт 177/UDP. Поэтому, в первую очередь нужно выполнить соответствующие настройки, обеспечивающие возможность сетевого подключения по протоколу XDMCP.

Все файлы конфигурации менеджера дисплея LightDM размещаются в системном каталоге /etc/lightdm . Основные настройки - это lightdm.conf, который после инсталляции имеет следующее содержание:

Для разрешения TCP-подключений к графическому серверу X11 , нужно в файл конфигурации lightdm.conf добавить строку :

Для разрешения удаленных подключений к менеджеру дисплея нужно добавить секцию

Внесенные изменения вступят в силу только после перезапуска менеджера дисплея или перезагрузки системы. Для перезапуска LightDM можно воспользоваться командой:

service lightdm restart

Естественно, перезапуск менеджера дисплея приведет к закрытию всех сессий пользователей, вошедших в систему через него.

После перезапуска графической подсистемы или перезагрузки Ubuntu, можно проверить, слушаются ли порты 6000/TCP и 177/UDP:

netstat –na | more

В результате, видим, что менеджер дисплея ( LightDM ) настроен на использование протокола XDMCP и принимает входящие подключения на UDP порт 177 (по умолчанию) , а графический сервер (сервер X11 ) – принимает входящие подключения на порт 6000/TCP. Вообще-то, сетевой доступ к графическому серверу на стороне Linux для случая с применением Xming на стороне Windows не потребуется, и настройка для порта 6000/TCP приведена лишь в качестве примера.

Для удаленного подключения к рабочему столу Linux по протоколу XDMCP используется порт 177/UDP, который должен слушаться на стороне Linux и не должен быть закрыть брандмауэром. Кроме того, на компьютерах с несколькими сетевыми интерфейсами возможны проблемы с удаленным подключением, вызванные нестыковкой IP-адресов и имен узлов. Поэтому, в файлах /etc/hosts ( Ubuntu ) и \windows\system32\drivers\etc\hosts ( Windows ) нужно прописать соответствие имен и IP-адресов компьютеров для того сетевого интерфейса, через который будет выполняться подключение ( например, только для подсети 192.168.0.0/24). Очень часто в среде Linux, после установки системы, например на компьютер с именем Ubuntu13, в файле /etc/hosts присутствуют записи :

Как видно, имени Ubuntu13 сопоставлен адрес петлевого интерфейса, и следовательно, реальный обмен данными по протоколу IP с использованием имени узла, невозможен. Чтобы устранить данную проблему, нужно в последней строке заменить 127.0.0.1 на IP-адрес компьютера в локальной сети например:

Аналогично, в системе с Windows, в файле hosts нужно оставить ( добавить) только те записи, которые задают однозначное соответствие имен и IP-адресов в одной и той же подсети.

Для подключения к удаленному Linux Ubuntu, можно воспользоваться ярлыком Xlaunch . При подключении с использованием XDMCP необходимо выбрать режим работы в одном окне ( One Window ):

Xlaunch - режим XDMCP

Выбираем сессию с использованием XDMCP:

Xlaunch - режим XDMCP

Указываем IP-адрес или имя компьютера с ОС Linux, к которому необходимо подключиться:

Xlaunch - адрес или имя удаленного Linux

Следующий экран служит для определения дополнительных параметров сессии и его пока можно оставить без изменений. Жмем кнопку "Далее" и, если все сделано правильно - перед нами приглашение менеджера дисплея Linux.

Николай Беляшов

Удаленное подключение к рабочему столу Linux из Windows с помощью Xming и SSH


Вы видите приложения Linux прямо на рабочем столе Windows! Как же они туда попали?

Но это еще не все! Дело в том, что оконная система может находиться на другом компьютере, а графическое приложение связываться с ней через сеть. Так вы можете запустить приложение на удаленном компьютере, заставив его рисоваться на том компьютере, за которым сейчас работаете. Или наоборот. Или запустить программу на одном удаленном компьютере с отрисовкой интерфейса на другом удаленном компьютере. Заманчивая возможность, неправда ли? 🙂

Думаю, достаточно теории, давайте приступим к практике.

$ sudo apt-get install openssh-server

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

1. SSH-клиент. Я установил PuTTY.
2. X Server для Windows. Я выбрал Xming.

Для начала установим соединение по SSH с удаленным компьютером. Для этого запускаем PuTTY. Вводим IP-адрес компьютера Linux.



Теперь переходим в раздел Connection / SSH / X11 и включаем перенаправление графического интерфейса. В качестве расположения X-сервера водим IP-адрес компьютера Windows, за которым сейчас сидим.



На втором шаге нам предлагается автоматически запускать какое-нибудь приложение вместе с иксами. Я предпочел сделать это позже по мере необходимости посредством уже запущенного нами PuTTY.



В системном лотке появится иконка Xming



В дальнейшем запустить сервер с теми же настройками можно просто путем открытия сохраненного файла. Изменить настройки можно через контекстное меню файла.



Итак, X-сервер запущен. Возвращаемся в нашу консоль, предоставленную соединением SSH. Здесь мы можем удаленно запустить консольное приложение, и в этой же консоли увидим вывод этого приложения. А что теперь будет, если мы попытаемся запустить в этой консоли графическое приложение? Обычно, если вы подключились по SSH и пытаетесь запустить оконное приложение, вы получите ошибку, потому что вы подключились к удаленному компьютеру в консольном режиме, и рисовать окна просто нечем. Однако, в этот раз мы включили перенаправление графики на наш компьютер Windows, на котором уже запущен свой X-сервер. Поэтому, если вы попытаетесь запустить оконное приложение в удаленном консольном терминале, его окно нарисуется на компьютере Windows. Попробуйте, например, набрать следующую команду:

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

Ну, надеюсь, у вас все получилось, и на вашем рабочем столе Windows красуются оконные приложения Linux.

Обзор графических сред Linux и настройка удаленного рабочего стола

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

Linux – мощная и самодостаточная операционная система. Несмотря на то, что она распространяется с открытым исходным кодом и является бесплатной, в плане защищенности и стабильности многие дистрибутивы Linux существенно превосходит всемирно-популярную ОС от Microsoft. Пожалуй, единственный недостаток – сложность использования командной консоли для простых пользователей. Чтобы работать с ПК, нужно хорошо ориентироваться в огромном перечне команд.

Особенности графического окружения Linux

Графический интерфейс в Linux не является обязательным компонентом и устанавливается в операционной системе отдельно, наряду с другими программными приложениями. Комплекс программ, используемых в UNIX-системах для прорисовывания и вывода графики называется графической подсистемой. Внутреннее устройство таких оболочек кардинально отличается от знакомой Microsoft Windows

В основе современных графических интерфейсов Linux лежит стандарт X Window System, разработанный в 1987 году. Он построен по модульному принципу типа клиент/сервер, включающий четыре компонента:

  • Сервер Х (его можно назвать драйвером видеосистемы) передает управление оборудованием (видеокартой, мышью, клавиатурой) в распоряжение непосредственно выполняемым приложениям;
  • клиент – запускаемое приложение. Это может быть текстовый или графический редактор, видеопроигрыватель и др.;
  • библиотека X-lib – содержит информацию, необходимую для прорисовки окон;
  • менеджер окон принимает управление от пользовательского приложения (клиента) и прорисовывает все его элементы: рамки, меню, иконки и др.

Обратите внимание! Сервер Х и клиент – это отдельные процессы. Благодаря разделению, приложение можно запускать на сервере, а управление и графическое отображение всех действий передавать удаленной машине, при условии подключения к единой сети.

Обзор графических окружений для ОС Linux

Как сказано выше, графическая оболочка создавалась чтобы облегчить взаимодействие обычного пользователя с операционной системой. Но собрать все модули воедино без специализированных знаний и подготовки нелегко. На помощь приходят готовые графические окружения рабочего стола (Desktop Environment или DE). Они просты в настройке, содержат комплекс необходимых утилит и полезных программ.

Существуют десятки графических интерфейсов для Linux, мы же рассмотрим наиболее популярные и стабильные.

KDE Software Compilation

Одна из первых и самых распространенных графических оболочек. Среда KDE отличается красивым интерфейсом, напоминающим Windows 7, и изобилием графических эффектов. В отличие от других подобных проектов, оболочка создана при помощи библиотек Qt.

Если у вас установлена производительная машина, KDE – лучший выбор. Интерфейс широко используется не только частными лицами, но и государственными учреждениями (в США, ЕС), коммерческими предприятиями (DELL) и др.

Графическое окружение включает: файловый менеджер, аудио и видеопроигрыватель, архиватор, приложение для просмотра и обработки фотографий, электронный секретарь, приложение для записи дисков, эмулятор терминала, средство для запуска Windows-приложений и много других полезных приложений,

Достоинства KDE:

  • высокая стабильность, проработанность до мелочей;
  • в состав дистрибутива входит набор ПО для решения всевозможных задач;
  • окружение будет удобным и понятным для тех, кто только перешел на Linux с Windows.

Недостатки:

  • это тяжеловесное решение, которое не подойдет для слабых машин. По потребляемым ресурсам KDE можно приравнивать к той же Windows 7.

Преимущества:

  • не требовательна к ресурсам, работает даже на устаревших ПК;
  • в базовую поставку входит большой набор ПО;
  • комфортна в работе;
  • простая в настройке (с помощью графических утилит).

Недостатки:

  • редко выходят обновления;
  • сложно найти информацию по настройке.

Еще одна нетребовательная к аппаратным ресурсам графическая оболочка. Появилась в результате слияния свободного программного обеспечения от различных производителей. Прри разработке использован движок GTK+.

Преимущества:

  • работает на слабых машинах, требует минимум аппаратной части;
  • современный и отзывчивый интерфейс;
  • по сравнению с другими графическими оболочками потребляет меньше энергии.

Недостатки:

  • небольшое количество настроек по сравнению с Xfce.

Устанавливаем графическое окружение рабочего стола

Пример установки приводим для Linux Debian. В состав дистрибутива уже входит пакет GNome, который мы и будем использовать. Перед установкой скачивать отдельно пакет с графической оболочкой не нужно – система сама свяжется с репозиторием и установит актуальное ПО.

Подключаемся к серверу с правами root. Чтобы использовать самые последнюю версию ПО, обновляем индекс пакетов:

Теперь приступаем к установке GNome - в Debian предусмотрено четыре варианта:

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

После ввода команды открывается диалог. Нажимаем Y и Enter , чтобы продолжить. После этого начинается процесс установки, который, в зависимости от производительности аппаратной части, может занимать от 15 до 30 минут. Придется подождать…

Для достижения максимальной интеграции с системой рекомендовано установить графический менеджер входа GDM. Без него нативные механизмы блокировки экрана будут недоступными. Для установки в командной строке вводим:

Для запуска графической оболочки используем команду:

Удаленное управление рабочим столом Linux

Для удаленного подключения и управления рабочим столом можно использовать один из следующих протоколов:

  • Remote Desktop Protocol (RDP) – прикладной протокол удаленного управления рабочим столом. Широко используется в продуктах Microsoft. Для передачи сигналов с клавиатуры и мыши, используются флаги. Достоинство протокола RDP – возможность передавать как точную копию изображения с экрана (по сети передается ряд изображений или аудиопоток) или только графические примитивы (команды на построение изображения в графической подсистеме на компьютере в клиенте). Второй вариант позволяет существенно сократить трафик.
  • Virtual Network Computing (VNC) – это полноценная система для удаленного управления рабочим столом. В качестве протокола передачи данных используется RFB (удаленный кадровый буфер). Это кроссплатформенное решение. Для экономии трафика при передаче изображений удаленного рабочего стола, сервер отправляет только изменившиеся пиксели, например, затронутые перемещением мыши. Однако серьезные изменения, к примеру, при проигрывании видео, существенно увеличивают трафик.

Подключение к удаленному рабочему столу через протокол RDP

Установка и настройка подключения займет не более двух-трех минут. Устанавливаем сервер:

Чтобы графическая оболочка загружалась вместе с запуском сервера, редактируем конфигурационный файл. Открываем:

В документе добавляем строку: gnome-session . Должно получиться так:

service xrdp restart

После этого перезапускаем удаленный сервер:

Теперь подключаемся с локального компьютера к удаленному серверу. Для этой цели мы используем утилиту, встроенную в Windows. Открываем меню «Пуск», «Выполнить» и запускаем mstsc . В появившемся окне вводим адрес сервера, имя пользователя (по умолчанию – root) и нажимаем «Подключить»:

VPS на Linux с графическим интерфейсом: запускаем сервер VNC на Ubuntu 18.04


Некоторые пользователи арендуют относительно недорогие VPS с Windows для запуска сервиса удаленных рабочих столов. То же самое можно сделать и на Linux без размещения в датацентре собственного железа или аренды выделенного сервера. Кому-то нужна привычная графическая среда для тестов и разработки или удаленный десктоп с широким каналом для работы с мобильных устройств. Есть масса вариантов применения основанной на протоколе Remote FrameBuffer (RFB) системы Virtual Network Computing (VNC). В небольшой статье мы расскажем, как настроить ее на виртуальной машине с любым гипервизором..

Оглавление:

Выбор сервера VNC

Сервис VNC может быть встроен в систему виртуализации, при этом гипервизор свяжет его с эмулируемыми устройствами и никакой дополнительной настройки не потребуется. Этот вариант предполагает значительные накладные расходы и поддерживается далеко не всеми провайдерами — даже в менее ресурсоемкой реализации, когда вместо эмуляции реального графического устройства виртуальной машине передается упрощенная абстракция (фреймбуфер). Иногда VNC-сервер привязывается к работающему X-серверу, но этот способ больше подходит для доступа к физической машине, а на виртуальной он создает ряд технических сложностей. Проще всего установить VNC-сервер со встроенным X-сервером. Он не требует наличия физических устройств (видеоадаптера, клавиатуры и мыши) или их эмуляции с помощью гипервизора, а потому подходит для VPS любого типа.

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

Нам потребуется виртуальная машина с Ubuntu Server 18.04 LTS в конфигурации по умолчанию. В стандартных репозиториях этого дистрибутива есть несколько серверов VNC: TightVNC , TigerVNC , x11vnc и прочие. Мы остановились на TigerVNC — актуальном форке не поддерживаемого разработчиком TightVNC. Настройка других серверов выполняется сходным образом. Также нужно выбрать окружение рабочего стола: оптимальным, на наш взгляд, вариантом будет XFCE из-за относительно невысоких требований к вычислительным ресурсам. Желающие могут установить другой DE или WM: тут все зависит от личных предпочтений, однако выбор ПО напрямую влияет на потребность в оперативной памяти и вычислительных ядрах.

VPS на Linux с графическим интерфейсом: запускаем сервер VNC на Ubuntu 18.04

Установка окружения рабочего стола со всеми зависимостями выполняется следующей командой:

Дальше необходимо инсталлировать сервер VNC:

Запускать его с правами суперпользователя — плохая идея. Создаем пользователя и группу:

VPS на Linux с графическим интерфейсом: запускаем сервер VNC на Ubuntu 18.04

Добавим пользователя в группу sudo, чтобы он мог решать связанные с администрированием задачи. Если такой потребности нет, этот шаг можно пропустить:

На следующем шаге нужно запустить сервер VNC с привилегиями пользователя vnc, чтобы создать безопасный пароль и конфигурационные файлы в каталоге

/.vnc/. Длина пароля может быть от 6 до 8 символов (лишние обрезаются). При необходимости также задается пароль только для просмотра, т.е. без доступа к клавиатуре и мыши. Следующие команды выполняются от имени пользователя vnc:

VPS на Linux с графическим интерфейсом: запускаем сервер VNC на Ubuntu 18.04


По умолчанию протокол RFB использует диапазон TCP-портов от 5900 до 5906 — это т.н. порты дисплея, каждый из которых соответствует экрану X-сервера. При этом порты ассоциированы с экранами от :0 по :6. Запущенный нами экземпляр сервера VNC слушает порт 5901 (экран :1). Прочие экземпляры могут работать на других портах с экранами :2, :3 и т. д. Перед дальнейшей настройкой нужно остановить сервер:

При запуске TigerVNC выполняет сценарий

/.vnc/xstartup для настройки параметров конфигурации. Создадим собственный скрипт, предварительно сохранив резервную копию имеющегося, если он существует:

Сеанс окружения рабочего стола XFCE запускается следующим скриптом xstartup:

Команда xrdb необходима, чтобы система VNC прочитала файл .Xresources в домашнем каталоге. Там пользователь может определить различные параметры графического рабочего стола: рендеринг шрифтов, цвета терминала, темы курсора и т.д. Сценарий необходимо сделать исполняемым:

На этом настройка сервера VNC завершена. Если запустить его командой vncserver -localhost no (от имени пользователя vnc), можно будет подключиться с заданным ранее паролем и увидеть такую картину:

VPS на Linux с графическим интерфейсом: запускаем сервер VNC на Ubuntu 18.04

Запуск службы через systemd

Ручной запуск сервера VNC плохо подходит для боевого применения, поэтому мы настроим системную службу. Команды выполняются от имени root (используем sudo). Для начала создаем новый юнит-файл для нашего сервера:

Символ @ в имени позволяет передавать аргумент для настройки службы. В нашем случае он задает порт дисплея VNC. Юнит-файл состоит из нескольких разделов:

Затем нужно уведомить systemd о появлении нового файла и активировать его:

Цифра 1 в имени задает номер экрана.

Останавливаем сервер VNC, запускаем его как службу и проверяем статус:

Если служба работает, мы должны получить примерно такой результат.

VPS на Linux с графическим интерфейсом: запускаем сервер VNC на Ubuntu 18.04

Подключение к рабочему столу

Наша конфигурация не использует шифрование, поэтому сетевые пакеты могут быть перехвачены злоумышленниками. К тому же в VNC-серверах достаточно часто находят уязвимости , так что открывать их для доступа из интернета не стоит. Для безопасного подключения на локальном компьютере нужно упаковать трафик в туннель SSH, а затем настроить клиент VNC. Под Windows можно использовать графический клиент SSH (например, PuTTY). Для безопасности TigerVNC на сервере слушает только localhost и недоступен напрямую из сетей общего пользования:

VPS на Linux с графическим интерфейсом: запускаем сервер VNC на Ubuntu 18.04


В Linux, FreeBSD, OS X и прочих UNIX-подобных ОС туннель с клиентского компьютера делается с помощью утилиты ssh (на сервере VNC должен быть запущен sshd):

Опция -L привязывает порт 5901 удаленного подключения к порту 5901 на localhost. Опция -C включает сжатие, а -N указывает утилите ssh на отсутствие необходимости выполнять удаленную команду. Опция -l задает login для удаленного входа в систему.

После настройки туннеля на локальном компьютере необходимо запустить клиент VNC и установить соединение с хостом 127.0.0.1:5901 (localhost:5901), использовав для доступа к серверу VNC заданный ранее пароль. Теперь мы можем безопасно взаимодействовать через шифрованный туннель с графическим окружением рабочего стола XFCE на VPS. На скриншоте в эмуляторе терминала запущена утилита top, чтобы показать незначительное потребление виртуальной машиной вычислительных ресурсов. Дальше все будет зависеть от пользовательских приложений.

VPS на Linux с графическим интерфейсом: запускаем сервер VNC на Ubuntu 18.04


Установить и настроить сервер VNC в Linux можно практически на любом VPS. Для этого не нужны дорогостоящие и ресурсоемкие конфигурации с эмуляцией видеоадаптера или покупка коммерческих лицензий на программное обеспечение. Помимо рассмотренного нами варианта системной службы есть и другие: запуск в режиме демона (через /etc/rc.local) при загрузке системы или по требованию через inetd. Последний интересен для создания многопользовательских конфигураций. Интернет-суперсервер запустит сервер VNC и свяжет с ним клиента, а VNC-сервер создаст новый экран и начнет сессию. Для аутентификации внутри нее можно использовать графический дисплейный менеджер (например, LightDM ), а после отключения клиента сессия будет закрыта и все работающие с экраном программы завершены.

Читайте также: