Pull to refresh

Удаленной рабочий стол в Linux без VNC

Reading time3 min
Views3.7K
Есть очень много способов управлять удаленного рабочего стола Linux компьютера — VNC, RDP и т.д. Я затрону самой базовой способ — CLI (командная строка).

Часть первая уже была на хабре здесь как один из советов. С этого и начнем — это довольно простой способ для запуска приложения с удаленного компьютера на локальный экран. Это может быть полезно как быстрое решение для преодоления местных ограничений которых нет на удаленной машине (сетевые или аппаратные ограничения, запуск приложения которого нет на локального компьютера). Необходимо иметь X сервер работающий на локальной машине и по крайней мере одно рабочее окно терминала. С терминала (GNOME-Terminal, Konsole, Xterm) делаем SSH к другой машине с экспедиций сессии для X.

localuser@localhost:~$ ssh -X remoteuser@remotehost
localuser@localhost:~$ ssh -Y remoteuser@remotehost

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

remoteuser@remotehost:~$ firefox &

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

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

Альтернатива этого метода это запустить только Х-сервер и Xterm (или другой терминальной эмулятор) на локальной машине, a оконный менеджер (Window Manager) запустить на сервере. В конце концов оконный менеджер это только еще одно приложение, работающее в Х сервере. Таким образом, все меню на рабочем столе фактически являются меню из удаленного компьютера. Приложения тоже запускаются на удаленном компьютере как и прежде, а их интерфейс отображается тоже на локального рабочего стола. Преимущество этого метода в возможности использовать старых машин (Pentium I, II) в качестве Х терминала для мощного компьютера, когда LTSP больше чем нам нужно.

В текстовой консоли (Ctrl-Alt-F1) запускаем Х-сервер с единственным терминальным окном, без менеджера окон:

localuser@localhost:~$ xinit /usr/bin/xterm -- :1 &

(Можно и попроще:

localuser@localhost:~$ xinit /usr/bin/xterm

но только при условий, что Х сервер не работает, т.е. gdm, kdm или xdm неактивны, и никто не запустил Х чрез startx)


Теперь нужно добавить разрешение для сессий на удаленного компьютера. Соединение может быть выполнено через SSH туннелирование, если сеть не является безопасной, но это приводит к снижению скорости. Если сеть достаточно безопасна, можно разрешить X сессию чрез “xhost +remotehost”

1. SSH туннелирование:

localuser@localhost:~$ ssh -fY remoteuser@remotehost /usr/bin/wmaker

2. Или без туннелирования:

localuser@localhost:~$ xhost +remotehost
localuser@localhost:~$ ssh -f remoteuser@remotehost /usr/bin/wmaker -display localhost:1

В первом варианте, если удаленный SSH сервер поддерживает его, используются локальную переменную DISPLAY и туннелирование сессий через SSH. Второй вариант позволяет remotehost-а отправлять данные непосредственно в локальном Х дисплеем. Все ваши действия осуществляются на удаленной машине, но отображаются на локальном рабочем столе.

Примечание: Вместо WindowMaker может быть использован Fluxbox, Blackbox, TWM, FVWM или другой менеджер окон. Использование KDE или Gnome возможно, но не рекомендуется из за высоких требований к скорости. Лучше выберите простого и легкого менеджера окон.

PS Русский у меня не матерный, данный материал редактировался с помощи SpellChecker.net. Пишите в комментах, буду изправлять(ся).

PPS Здесь оригинал и перевод на болгарском
Tags:
Hubs:
Total votes 13: ↑9 and ↓4+5
Comments9

Articles