X2Go и использование командной строки?

Я начал пробовать X2Go вместо VNC для управления моими компьютерами с Ubuntu - и, хотя в целом это работает, я не могу понять, как делать вещи, перечисленные ниже.

Но сначала я использую Ubuntu 20.04 с рабочим столом MATE на обоих ПК и использую sudo add-apt-repository ppa:x2go/stable( http://ppa.launchpad.net/x2go/stable/ubuntu). На управляемом компьютере (сервере) я установил:

      sudo apt install x2goserver x2goserver-xsession
sudo apt install x2godesktopsharing
sudo usermod -a -G x2godesktopsharing myuser

На компьютере, который управляет (клиент), я установил:

      sudo apt install x2goclient
  1. На сервере я фактически получаю настольный «апплет», где я могу включать или отключать сервер, что мне очень нравится:

Однако предположим, что я захожу на сервер через ssh, а сервер x2go деактивировал совместное использование рабочего стола. Тогда мой вопрос:

  • Как активировать (и деактивировать) общий доступ к рабочему столу на сервере x2go из командной строки (через ssh)?

Далее меня интересует размер клиента и экрана — позвольте мне проиллюстрировать это на примере с VNC:

Если у меня есть сервер VNC на моей серверной машине (скажем, 192.168.0.100) на порту 5900, я могу подключиться к нему из командной строки, например:

      ssvncviewer 192.168.0.100

Если у моего сервера есть рабочий стол с большим разрешением (размер пикселя, скажем, 1920 x 1200), а у моего клиента рабочий стол с меньшим разрешением (размер пикселя, скажем, 800 x 600), то приведенная выше команда показывает "вырез" рабочий стол сервера без масштабирования:

Затем, если я нажму F9, чтобы передать «Полный экран» в SSVNC, этот «вырез» займет весь экран — и, поскольку нет масштабирования, текст на рабочем столе сервера читается, но я все еще могу перемещаться, помещая указатель мыши по краям экрана (сверху, снизу, слева, справа) - и далее выполняется автопрокрутка (или автопанорамирование) по ssvncviewer.

С другой стороны, если я выдаю

      ssvncviewer -scale auto 192.168.0.100

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

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

  1. Я не могу найти параметры масштабированного и немасштабированного представления в графическом интерфейсе клиента X2Go, кроме этих (Сеанс/Управление сеансом.../(выберите сеанс)/Настройки сеанса/Ввод/Вывод):

Итак, если я подключаюсь через X2GoClient с размером «Пользовательский», я получаю вырез, но по центру:

... и я не могу найти способ панорамирования; если я затем нажму CTRL+ALT+SHIFT+F, я перейду в полноэкранный режим, но он масштабируется (нечитаемый текст); если я снова нажму CTRL+ALT+SHIFT+F, я выйду из полноэкранного режима, но тогда в окне больше не будет отображаться вырез, а вместо этого будет масштабированный вид:

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

Итак, мои вопросы здесь:

  • Есть ли способ запустить клиентское соединение X2Go из командной строки (например, я могу запустить клиентское соединение VNC, скажем, ssvncviewer 192.168.0.100)?
  • Есть ли в клиенте X2Go «вырезанный» (то есть немасштабированный) режим с какой-либо формой интерактивного панорамирования, и если есть, то как его активировать (либо через графический интерфейс, либо через командную строку)?

1 ответ

В конце концов я нашел этот пост в списке рассылки Альтернативы командной строки для x2goclient-cli , по-видимому, с 2011 года:

Если я правильно интерпретировал недавний почтовый трафик (и дорожную карту в вики), x2goclient-cli устарел и больше не будет активно развиваться. Насколько я вижу, в настоящее время существует две альтернативы использованию x2goclient-cli:

  • x2goclient (клиент QT) с параметрами командной строки.
  • пихоча-кли.

Я попытался изучить параметры командной строки x2goclient, и я не могу понять, как начать сеанс, используя это...

С другой стороны, я обнаружил, что в репозиториях Ubuntu:

... и я нашел документ по его использованию:

Итак, я установил его с помощью:

      sudo apt install pyhoca-cli

... и следуя инструкциям, я попробовал это (так как я уже сделал подключения из x2goclient gui, я сбрасываю --add-to-known-hostsиз примеров на странице); сначала нужно «перечислить рабочие столы», то есть перечислить сеансы рабочего стола (поэтому вам нужно будет хотя бы один раз установить соединение из графического интерфейса клиента X2Go)

      $  pyhoca-cli --server 192.168.0.100 --list-desktops --user myuser
pyhoca-cli[139077] NOTICE: preparing requested X2Go session
...
Password: 
pyhoca-cli[139077] (x2gocontrolsession-pylib) NOTICE: connecting to [192.168.0.100]:22
pyhoca-cli[139077] (PyHocaCLI) NOTICE: authentication has been successful

X2Go desktops available for sharing
===================================
Host: 192.168.0.100 - [192.168.0.100]:22
Username: myuser

myuser@:0

Итак, сверху у меня есть сессия myuser@:0- и это то, к чему я могу подключиться:

      $  pyhoca-cli --server 192.168.0.100 --share-desktop myuser@:0 --user myuser --share-mode 1
pyhoca-cli[139324] NOTICE: preparing requested X2Go session
...
pyhoca-cli[139324] (PyHocaCLI) NOTICE: proceeding to interactive login for user ,,myuser''
Password: 
pyhoca-cli[139324] (x2gocontrolsession-pylib) NOTICE: connecting to [192.168.0.100]:22
pyhoca-cli[139324] (PyHocaCLI) NOTICE: authentication has been successful
pyhoca-cli[139324] (x2gosession-pylib) NOTICE: Using session myuser-50-1639641479_stS1XSHADmyuserXSHADPP0_dp24 as master session for profile Pyhoca-Client_Session.
pyhoca-cli[139324] (PyHocaCLI) NOTICE: Press CTRL+C to end desktop sharing for this session...


^CKeyboardInterrupt
2021-12-16T07:58:35Z
pyhoca-cli[139324] (x2gosession-pylib) WARN: local folder sharing is disabled for this session profile
pyhoca-cli[139324] (x2gosession-pylib) WARN: local folder sharing is disabled for this session profile
pyhoca-cli[139324] (x2goterminalsession-pylib) NOTICE: cleaning up session myuser-50-1639641479_stS1XSHADmyuserXSHADPP0_dp24 after termination
pyhoca-cli[139324] (PyHocaCLI) NOTICE: X2Go session myuser-50-1639641479_stS1XSHADmyuserXSHADPP0_dp24 has been terminated

Итак, это работает - обратите внимание, что:

  • Я столкнулся с тем, что команда может не подключиться; в таком случае мне пришлось остановиться pyhoca-cli; затем запустите клиент X2Go в графическом режиме и подключитесь оттуда один раз (успешно); потом после этого снова начал работать
  • The --share-desktopКоманда снова открывает вырез по центру, как описано в OP, для которого затем требуется масштабированный полноэкранный режим, и масштабирование сохраняется после выхода из полноэкранного режима.

Итак, это хорошо - теперь просто нужно выяснить:

  • Как включить/активировать сервер X2Go из командной строки по ssh
  • Как указать, что я хочу немасштабируемый «вырез» в полноэкранном режиме с автоматическим панорамированием (путем перемещения указателя мыши к верхнему/нижнему/правому/левому краям экрана).

РЕДАКТИРОВАТЬ: Обнаружено следующее: приведенные выше примеры были выполнены с (я думаю) X2GOClient GUI/Настройки сеанса/Тип сеанса «X2Go/X11 Desktop Sharing». Под влиянием Windows клиент x2go отображается с неправильным разрешением ,

Я попытался изменить тип сеанса на «MATE» (это среда рабочего стола, которую я использую как на сервере, так и на клиенте, и она показана на снимках экрана выше). При этом открывается окно, которое масштабируется до максимально доступного размера при разрешении рабочего стола клиента, а внутри я получаю рабочий стол клиента, отображаемый с точным размером в пикселях, начиная с верхнего левого края (и верхняя панель масштабируется до размера этого окна) - так что я могу запускать программы и хорошо видеть, что происходит.

Чего я не могу сказать на данный момент, так это того, является ли это копией действительно работающего рабочего стола или это новый сеанс для того же пользователя (вероятно, новый, pyhoca-cli --list-desktops --server 192.168.0.100впоследствии перечисляет два сеанса вместо одного); по крайней мере, для некоторых программ, которые я использую, это не имеет значения, так что это решило нечитаемое разрешение для меня (по крайней мере, частично на данный момент). Также обратите внимание, что как только вы закроете соединение с графическим интерфейсом X2GoClient, когда вы в следующий раз откроете настройки сеанса/тип сеанса (как сказано в связанном посте):

автоматически меняется на «Пользовательский рабочий стол» с помощью команды «MATE».

Я думаю, эквивалентом этого в командной строке является создание нового сеанса:

      pyhoca-cli --server 192.168.0.100 --username myuser --new --command MATE

... и как только новый сеанс будет создан, после того, как вы закроете окно (обратите внимание, что также, если вы нажмете CTRL+Cна pyhoca-cli`, он также закроет окно и не удалит сеанс, а вместо этого приостановит сеанс ) и хотите снова подключиться, вам не нужно снова создавать новый сеанс. Сначала подтвердите, что существует сеанс с:

      pyhoca-cli --username myuser --list-sessions --server 192.168.0.100

... или, альтернативно, перечислите рабочие столы:

      pyhoca-cli --username myuser --list-desktops --server 192.168.0.100

... а затем вместо этого вы можете возобновить сеанс (обратите внимание, что требуется имя сеанса, а не имя рабочего стола, но также можно использовать имена сеансов OLDEST и NEWEST):

      pyhoca-cli --username myuser --server 192.168.0.100 --resume NEWEST

... вернее, могли бы, если бы не эта ошибка #1445 - pyhoca-cli не удается подключиться к приостановленному сеансу x2go - Журналы отчетов об ошибках X2Go , что, по-видимому, исправлено в pyhoca-cli 0.6.1.3, однако мой Ubuntu 20.04 все еще имеет 0.6.1.2.

И, наконец, чтобы уничтожить/убить/стереть сессию, используйте --terminate(который также принимает ВСЕ):

      pyhoca-cli --username myuser --server 192.168.0.100 --terminate ALL
Другие вопросы по тегам