X2go client for windows не переключает раскладку

Обновлено: 05.07.2024

Потребовалось мне развернуть терминальный сервер для пользователей. Денег нет, поэтому СПО. Доступ с Windows на Linux. Из всего опенсорчного ПО самым вменяемым оказался проект X2Go:

Исходники клиента под Windows:

В X2Go работает решительно все, за одним маленьким исключением: при копировании текста с кириллическими символами в буфер обмена на удаленной Linux машине, и вставке на клиенской Windows, текст превращается в циферки:

В обратную сторону, кстати, работает правильно.

Пытаясь побороть этот глюк, я сделал себе среду, требуемую для компиляции X2Go Client под Windows, и собрал этого клиента.

Но оказалось, что X2Go-клиент - это по сути всего лишь GUI-конфигурялка для специализированной версии X-сервера, собранного под Win. Называется этот X-сервер VcXsrv Windows X Server (Custom builds by X2Go & Arctica). Его исходники не входят в исходники клиента X2Go. Находятся они в отдельном репозитарии:

И там какой-то ад и содомия. Для сборки требуется Python, в качестве компилятора надо использовать неизвестный мне Visual Studio. Вроде как должно собираться на Community Edition, но от этого не легче. Какие-то куски надо доставлять через pip. Нужно раздобыть утилиты Gnuwin32 gperf, gawk, gzip, flex, bison, sed, и даже nasm. В общем, я в одиночку такой квест не осилю.

А теперь к сути вопроса. Я решил проверить, нельзя ли что-нибудь наконфигурять в конфигах X-сервера, идущего вместе с X2Go Client. В дереве установленых файлов клиента обнаружился каталог:

В нем есть следующие файлы с интересным содержанием:

Так же есть каталоги:

С интересными файлами:

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

Но возможно, через эти файлы можно настроить правильную работу буфера обмена в направлении Linux (сервер) -> Windows (Клиент).

Я сделал копию всех файлов в установочной директории X2Go:

Кто-нибудь может сказать, как можно тут наконфигурять правильную кодировку на клиенте и как это сделать?

Заменив текст SELINUX=enforcing на SELINUX=permissive
Выполните:

Более подробно см.ссылку
Не забудьте включить selinux после завершения настройки.

Для установки x2go на РЕД ОС выполните:
для РЕД ОС версии 7.1 или 7.2:

для РЕД ОС версии 7.3 и старше:

После настройки сервера требуется запустить x2go desktop sharing


И активировать доступ к рабочей станции


Установка клиента производится одной командой через терминал с использованием root-прав:
для РЕД ОС версии 7.1 или 7.2:

для РЕД ОС версии 7.3 и старше:

После откройте x2go client


После открытия потребуется настроить параметры согласно рисунку

Хост: ip адрес машины;

Пользователь: имя учетной записи. SSH-порт: если не менялся на клиенте, оставить 22.

Выбрать тип сессии — Соединение с локальным десктопом.

Обратите внимание, у вас должен быть открыт и доступен 22 порт на клиенте и сервере.


Далее потребуется ввести пароль


Выбираем пункт только просмотр или полное управление


После этого откроется удаленный рабочий стол сервера

Типы сессий x2go

X2go довольно распространенное терминальное решение. Так как существует большое количество графических оболочек, то x2go не является исключение, что бы уметь поддерживать работоспособность большинства из них таких как: Cinanmon, Mate, Gnome, KDE, Gnome и т.д.


Проброс принтеров

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

На сервере:
для РЕД ОС версии 7.1 или 7.2:

для РЕД ОС версии 7.3 и старше:

На клиенте:
для РЕД ОС версии 7.1 или 7.2:

для РЕД ОС версии 7.3 и старше:

Перевести selinux в режим уведомлений:

На время настройки сервиса переведите selinux в режим уведомлений. Для этого измените содержимое конфигурационного файла:

Заменив текст SELINUX=enforcing на SELINUX=permissive
Выполните:

Более подробно см.ссылку
Не забудьте включить selinux после завершения настройки.

После этого перезапустить ПК

Далее на клиенте можно выбрать, какой принтер вы хотите пробросить. (Опции->Установки->Печать)


После подключения к серверу необходимо добавить принтер в CUPS


Теперь можно отправлять задания на печать.

Настройка трансляции токенов в сессию сервера

Настройка трансляции на клиенте проходит следующим образом:

Проверяется работоспособность токена в утилите token-manager и затем выставите галочку в x2go client ->медиа-> поддержка смарт карт

Данная поддержка обеспечивает трансляцию как смарт карт, так и usb токенов.


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

Завершение сессий x2go

Команда покажет все активные терминальные сессии:

Примерный вывод данной команды:


Для завершения сессии выполните:

Пример:

Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.

x2go - программное обеспечение с открытым исходным кодом для удаленного администрирования машин Linux , использующее протокол NX technology. X2Go обеспечивает удаленный доступ к графическому интерфейсу Linux.
В качестве клиентской машины могут использоваться Linux и Windows.

Защищенность соединения обеспечивается благодаря использованию ssh.

Для применения пакета x2go требуется наличие прямого подключения между компьютером-клиентом и компьютером -сервером. Если такого подключения нет, то следует обратить внимание на программу Ассистент, работающую через внешний сервер.

Пакет сервера удалённого доступа x2goserver входит в стандартный репозиторий Astra Linux Common Edition и в минимальной конфигурации может быть установлен с помощью графического менеджера пакетов или из командной строки командой:

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

  • в файле /etc/systemd/logind.conf указать параметр:
    KillUserProcesses=no
  • перезагрузить машину.

Добавление принтера x2go

Для добавления службы разделения принтеров через x2go требуется установить два дополнительных пакета x2goserver-printing и cups cups-x2go. Эти пакеты могут быть установлены одновременно с сервером или добавлены позже::

sudo apt install x2goserver x2goserver-printing cups-x2go После установки этих пакетов принтер x2go будет доступен в менеджере печати как Virtual_X2Go_printer.

Установка клиента x2go на Windows

Имя пользователя Windows должно содержать только латинские буквы!

Установить, выбрать тип установки "Recommended":

Для печати на локальном принтере, обязательно установить программу для чтения PDF. Например Foxit Reader.

Запустить x2go клиент. В меню выбрать "Опции" - "Установки", перейти на вкладку "Печать"

Выбрать команда печати и нажать кнопку ". "

Ввести команду печати (путь до Foxit Reader с параметром "-р", Формат вывода PDF, Структура данных - "Указать путь к файлу в параметре командой строки"

Подключение к серверу x2go

В клиенте х2go нажать "Создать новую сессию"

  • выбрать "Другой оконный менеджер" и указать команду: "fly-wm";
  • или выбрать "x2Go/X11 desktop sharing" (или "Подключение к сущетвующей сессии") для подключения к существующей сессии (может не работать на ранних версиях Astra Linux).

На вкладке "Соединение" выбрать тип соединения соответствующий вашему подключению.

На вкладке "Экспорт каталогов" можно добавить локальные папки для подключения их к удаленному серверу.

Кликнуть на появившуюся сессию справа:

Ввести имя пользователя и пароль:

При печати выбирать принтер x2go, установленный ранее. В появившемся окошечке x2go нажать "Печать":



Настройку VNC и RDP на виртуальном сервере мы уже освоили, осталось изучить еще один вариант подключения к виртуальному рабочему столу Linux. Возможности созданного компанией NoMachine протокола NX достаточно интересны, к тому же он хорошо работает через медленные каналы. Фирменные серверные решения стоят дорого (клиентские бесплатны), но существует и свободная реализация, о которой пойдет речь в этой статье — система X2Go. Она отпочковалась от проекта с открытым исходным кодом FreeNX, когда NoMachine прекратила его поддерживать и отпустила в свободное плавание.

Оглавление:

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

Для виртуального графического десктопа на Linux мощные машины не нужны, пока пользователь не начнет запускать прикладные программы. Для тестов мы возьмем крепкого середнячка с Ubuntu Server 18.04 LTS с двумя вычислительными ядрами, четырьмя гигабайтами оперативной памяти и жестким диском (HDD) на двадцать гигабайт. На RuVDS уже доступны образы Ubuntu Server 20.04 LTS, процесс настройки более свежей версии будет аналогичным. Не забывайте использовать промокод Habrahabr10 для получения скидки в 10% при заказе.


В качестве окружения рабочего стола снова берем XFCE из-за относительно невысоких требований к вычислительным ресурсам. К тому же с запуском этого DE через удаленный доступ в виртуальных средах не возникает проблем:

Русификация сервера и установка ПО

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


Того же эффекта можно достичь, отредактировав вручную файл /etc/default/locale.

Для локализации GNOME и KDE в репозитории есть пакеты language-pack-gnome-ru и language-pack-kde-ru — они понадобятся, если вы будете использовать программы из этих сред рабочего стола. В XFCE переводы устанавливаются вместе с приложениями. Дальше можно инсталлировать словари:


Кроме того, инсталляция переводов может потребоваться для некоторых прикладных программ:

Установка сервера X2Go

Стабильные версии сервера и клиента X2Go можно установить из внешнего репозитория PPA (Personal Packages Archive) на Launchpad или из штатных репозиториев актуальных релизов Ubuntu. Мы остановимся на втором варианте, поскольку версии софта в обоих источниках одинаковы, но если вам потребуются дополнительные пакеты, сторонний репозиторий придется подключить. Нам необходимо инсталлировать два пакета:


В случае если вы используете окружение MATE или LXDE, дополнительные пакеты потребуются (для XFCE они не нужны):


Вишенка на торте: X2Go работает через SSH и в дальнейшей настройке не нуждается. На VPS должен быть запущен sshd и открыт доступ к порту 22 в правилах межсетевого экрана. Поскольку речь идет про виртуальный сервер, это наверняка уже сделано из коробки. На физической машине открыть удаленный доступ по SSH несложно. Остается только проверить статус сервера X2Go:


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


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

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

Клиентское ПО X2Go для Windows, Linux и OS X можно загрузить на сайте проекта. Клиент под Android находится в стадии разработки, а бесплатные мобильные приложения от NoMachine с сервером X2Go несовместимы. Если на локальном компьютере установлена Ubuntu, достаточно добавить пакет x2goclient:


Для сохранения видового разнообразия в этот раз мы возьмем клиент для Windows:


Здесь можно настроить параметры соединения, устройств ввода-вывода, а также мультимедийных устройств.




Если все сделано правильно, после подключения появится рабочий стол XFCE.


Запуск приложения на удаленном компьютере

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



Браузер запущен на удаленном VPS с Ubuntu

Есть и более экзотические варианты использования X2Go: система позволяет, например, подключиться к сессии пользователя на удаленном компьютере (как в TeamViewer). В этом случае на обеих машинах должны быть установлены и клиентские, и серверные части. Кроме того, задавать профили сессий на каждом клиенте не обязательно: можно установить и настроить x2gobroker, чтобы определить их на сервере. Для этого придется подключить сторонний репозиторий с дополнительными пакетами.

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

В отличие от нуждающейся в высокой пропускной способности канала системы VNC, X2Go использует продвинутый протокол NX 3 для минимизации объема передаваемых данных. В системе есть собственный X-сервер, к тому же она практически не требует настроек и отличается продвинутыми возможностями. Мы рассказали только о самых основных, но X2Go умеет намного больше, включая трансляцию клиенту звука и видео с сервера, печать на локальном принтере (на VPS придется установить дополнительные пакеты для настройки виртуального принтера) и общие каталоги. Взаимодействие с сервером идет через надежный и проверенный временем sshd — пользователю доступны безопасные механизмы аутентификации, в т.ч. с ключами. X2Go автоматически настраивает среду при входе в систему (держать X-сервер постоянно запущенным не нужно), при этом поддерживается многопользовательская работа и большинство популярных окружений рабочего стола, а сеанс не убивается даже после разрыва соединения.

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