Удаленный рабочий стол Linux

Удаленный рабочий стол Linux

Все мы хотим работать там, где нам комфортно, и удаленный доступ к системам — очень удобная вещь. Многие удаленные рабочие системным предназначены для подключения и настройки своих узлов. Для компаний это идеально; ну, а любителям оно зачем? Конечно, всем энтузиастам хочется иметь больше одного компьютера, и в подобном случае будет удобно подключиться через вашу собственную сеть или даже через Web.

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

Распространенная причина для энтузиастов — проблемы с производительностью. Ноутбуки, способные обработать самую новейшую анимацию или скомпилировать вашу самую последнюю итерацию программы, чересчур дороги, а такую же систему в виде настольного ПК можно получить за относительно скромную сумму. Если вы работаете с Blender, рендеринг можно делать удаленно, а на локальном компьютере ограничиться только отображением всего приложения. Ваша среда разработки может требовать большого объема памяти, и дожидаясь, пока программа скомпилируется, вы бы с удовольствием отключились и занялись чем-нибудь еще.

Так какие у вас есть опции?

Вначале была опция X для SSH (-X). И она работала довольно неплохо — когда ваш удаленный компьютер был не далеко, а рядом с вами, и у вас была гарантированная пропускная способность 100 Мб/с. Использование SSH подобным образом удобно только если для работы с вашими задачами у вас есть сервер без мыши, клавиатуры и монитора — вероятнее всего, файловый сервер или нечто подобное. Если вы хотите использовать старый настольный ПК, который пылится у вас в кладовке, или если вы постоянно находитесь в отъезде, этого будет недостаточно.

Удвоим удовольствие

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

Клиентов, или просмотрщиков [viewer], для локального компьютера имеется множество, и многие адаптированы под ваш рабочий стол. Как обычно, всё, что начинается с ‘g’ — для инструментария GTK. Большинство абонентов включены в ваш дистрибутив, и их можно добавить через менеджер пакетов. Ваш автор использует для доступа к своим серверам просмотрщик tigervnc и канал SSH.

При тестировании этого вы должны начать с установки и настройки сервера, а уж потом сможете внести разные клиенты. Установка VNC-сервера на удаленной машине требует привилегий root, если только вы не решите воспользоваться инструментом области пользователя, например, Linuxbrew.

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

или

Чтобы настроить сервер, вы можете просто оставить его как есть, потому что настройки по умолчанию вполне разумны.

Теперь хитрость в том, чтобы обеспечить открытость всех портов, и здесь нам опять нужны привилегии root. Обычно vncserver начинает с порта номер 5901 и поднимается вверх по номерам. Однако этот номер можно назначить любым, если только вы не запутаете своих напарников или не обращаетесь к общим портам. Поскольку протокол VNC небезопасен, этот подход не рекомендуется, разве что вы используете его внутри своей собственной сети и при проводном соединении.

Однако, чтобы повысить безопасность, надо пресечь использование порта 59xx. Для этого добавьте опцию “localhost” в виде одной строки в ~/.vnc/config. Следующее относится к приведенному выше примеру, но в таком формате:

Система с такими настройками требует для работы канал SSH. Кстати о нем…

Канал SSH отсюда

Чтобы обеспечить себе зашифрованную коммуникацию, надо создать канал SSH со своего локального компьютера.

Когда вы открываете канал SSH, вам следует знать порт, используемый для подключения VNC. К счастью, если вы являетесь единственным пользователем удаленного сервера, то можете выбрать порт заранее. И вот как это делается.

Сначала выберите порт. Здесь мы взяли 5906, и, следовательно, дисплей (6). Чтобы не было других VNC-сессий на локальном ПК, на локальной стороне канала мы начали с 5910. При настройке полной системы выберите более запоминаемый диапазон портов: $ ssh -L 5910:localhost:5906 user@remotehost На удаленном хосте запустите vncserver; возможно, вам понадобится указать кое-какие параметры для настройки экрана и показателя дисплея.

В данном случае мы хотим запустить сессию, которая выстоит, даже если прервется соединение или мы закроем просмотр-щик. Когда этот режим включен, вы должны задать пароль VNC. Поэтому на удаленном сервер запустите

Это пароль, отдельный от пароля пользователя, но он может быть каким угодно, лишь бы вы его запомнили.

Чтобы запустить экземпляр сервера, просто запустите команду, и она присвоит очередной дисплей. В нашем случае мы хотим запустить дисплей (а именно, 6), поэтому команда выглядит так:

Для подключения к VNC-серверу скомандуйте xtigervncviewer -SecurityTypes VncAuth -passwd /home/matstage/.vnc/passwd:6.

Как видите, сервер запускается и сообщает вам, что делать для работы с ним. Однако нам нужен доступ к нему с другого компьютера, поэтому мы должны запустить несколько другую команду, чтобы получить корректное отображение. Номер 6 в инструкции относится к дисплею, и он должен соединяться через канал SSH; в этом примере мы соединили 5910 с 5906. При настройке полной системы выберите более запоминаемый диапазон портов.

Если вы запустите абонент без пароля, перед вами появится окно для его ввода:

Очень легко допустить еще одну ошибку: подключиться не к тому порту. В таком случае на стороне сервера вы увидите сообщение, где говорится: ‘channel 3: open failed: connect failed: Connection refused. Это хороший признак того, что связь между компьютерами есть и что вам просто надо подправить настройки.

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

Чтобы остановить свою сессию, вы можете выйти из вашей удаленной сессии или отключить [kill] сессию через SSH.

Но остановить сессию надо, сначала ее найдя. Чтобы убедиться, что у вас нет бесконтрольных сессий, сначала сделайте их список:

Полученный в результате список показывает имеющиеся сессии с номером дисплея на конце. И именно этот номер вы используете, чтобы остановить требуемую сессию, вот так:

Теперь у вас есть полный контроль над вашим настольным ПК, и вы можете наслаждаться несколькими компьютерами из любого места. Помните, что эта сессия выдержит разрыв соединения и продолжит работу, даже если вы остановите vncviewer.

Чтобы сделать больше опций доступными из вашего прос-мотрщика, установите на свой локальный компьютер ssvnc. Ssvncviewer — расширенная версия программы просмотра со множеством полезных опций, самая важная из которых — режим помощника SSH. Чтобы использовать режим помощника, сначала разберитесь с опциями GUI, а затем создайте профиль в соответствии со своими требованиями. Когда вы его запустите, будет много опций для запуска vncviewer, включая командное окно SSH. Сюда вы можете ввести любую команду, которую хотите запустить перед подключением. Итак, в этом примере запуск vncserver является обоснованным действием:

В этой команде вы видите параметр -useold. Он заставит сервер использовать уже запущенный экземпляр. Вы также можете видеть, что мы уже выбрали наш менеджер окон. Данное предпочтение можно также указать в файлах настройки — об этом позднее. При запуске у просмотрщика есть опция изменить параметры настройки. Многие из этих параметров контролируют качество, так что вы можете сделать отклик рабочего стола или приложения быстрым даже при малой пропускной полосе.

Для получения доступа к этим функциям вы нажимаете на F8 при работающем просмотрщике. Появится всплывающее окно ssvnc, и вы можете выбирать из списка. Начиная сверху списка, у вас есть опция полноэкранного режима. Отправка, F8, F9 и Ctrl + Alt + Del с удаленного ПК блокируются, поскольку их использует просмотрщик. Далее по списку имеются настройки качества, которые можно изменить.

Другие опции в этом всплывающем списке работают с цветом — вы можете изменить глубину цвета и вернуться к градации серого. Из того же окна запускается окно передачи файлов. Это программа Java с одним столбцом для каждой стороны соединения и кнопками между ними для выбора файлов и их отправки.

Файлы частной настройки для ssvnc размещаются в директориях .vnc/, где вы найдете файлы и для других пакетов VNC.

Некоторые из этих пакетов описаны далее. У вас также есть пароли в зашифрованной форме и ключи RSA для аутентификации. Профили, которые вы создаете из GUI ssvnc, хранятся здесь, на случай, если вам понадобится внести изменения с помощью командной строки.

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

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

Время быть реальным

Чтобы установить RealVNC, перейдите на его страницу (www. realvnc.com) и скачайте пакет VNC connect для компьютера, который хотите контролировать. Продолжайте установку так же, как для обычных пакетов для вашего дистрибутива.

Когда программа будет установлена, она запустится и появится на вашем рабочем столе в строке уведомлений или ее эквиваленте для вашего рабочего стола. Далее откройте графический интерфейс и подключитесь к своей учетной записи RealVNC, которую вы, вероятно, уже создали. Как только вы войдете, компьютер появится в вашей учетной записи RealVNC. С этого момента вы можете получать к нему доступ с любого компьютера, где установлена программа просмотра.

На вашем локальном компьютере вы должны следовать обычной процедуре установки пакета VNC-viewer и запуска программы. При первом запуске вам предложат войти в вашу учетку; и зарегистрированные вами компьютеры появятся в вашем списке учетных записей. Программа RealVNC весьма изящна, и вы быстро освоитесь; но если вам надо подключить более пяти компьютеров, придется раскошелиться.

Наш ответ Nomachine

Еще одно решение для удаленной работы — использование протоколов nomachine. Они ведут начало от проприетарного ПО под названием NX. Протокол открытый, что привело к созданию свободной версии и версии с открытым кодом: FreeNX. В настоящий момент самая популярная версия называется x2go. Она дает тяжеловесна по сравнению со сжатым X-протоколом, так что может не подойти вам, если вы используете Wayland. На самом деле, многие рабочие столы не поддерживаются или требуют обходных путей. Однако Mate поддерживается полностью, и если он ваш фаворит, тогда ищите его пакет для удаленной работы. Для лучшей производительности вы также можете использовать LXDE, который отлично сработал у автора.

Преимущество x2go в том, что в нем имеется множество опций, и он пригоден для множества задач. В x2go много модулей, которые также улучшают опыт работы. Один из достойных упоминания модулей — cups-x2go, который создает сервер принтера на вашем клиенте на случай, если у вас нет принтера рядом с сервером. Он также поддерживает звук, что может быть — или не быть — полезным вам при медленном соединении.

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

Пакет не является стандартным в Ubuntu или Debian. В Gentoo вам надо перекомпилировать пакет OpenSSH и добавить с помощью install net-misc/x2goserver. Другие крупные игроки, SUSE и прочие, имеют пакеты в сторонних репозиториях. Для этой статьи мы на нашем удаленном компьютере использовали Debian.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий