Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Linux

Настройка удаленного доступа в графику (X-server) Linux : Linux

29.03.2024 3:09


28.05.2020 20:21
OlegON
 
Долгое время я пользовался форвардом X-приложений, поскольку кроме RDP-сессий у меня никаких других нужных мне удаленно приложений и не было. Однако, последние изменения в клиентах RDP (xfreerdp и rdesktop) привели к тому, что тупить через форвард они начали просто адски, причем, без видимых причин.
Сначала я просто заблокировал обновление, однако, время не стоит на месте, надо было обновить полностью дистрибутив, потому пришлось обновить и эти клиенты. Поскольку категорически запретил себе хранить на ноуте какие-либо учетные записи, то в итоге приходилось лезть на комп домой, смотреть там пароли, потом поднимать проброс порта, как это описано здесь. Немного утомляло.

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

во-первых, инсталлируем tiger-vnc, который на данный момент является лучшим из VNC по функционалу и качеству работы.
Код:
install tigervnc-server
подчеркну, что раньше я крайне негативно относился к VNC, который сильно подтупливал, да и точка на экране вместо курсора немного раздражала. Сейчас это все изменилось. Однако, вопросы безопасности сейчас актуальны, потому крайне рекомендую закрыть порты VNC снаружи, не забудьте про IPv6.

Заходим под пользователем, которым будем работать по удаленке и запускаем из под него
Код:
vncpasswd
задаем пароль для доступа

копируем файлик юнита
Код:
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@.service
в новом, скопированном файлике меняем <USER> в строке
Код:
ExecStart=/usr/bin/vncserver_wrapper <USER> %i
на пользователя, из под которого запускали vncpasswd

После этого маленький нюанс, дело в том, что если вы работаете из под гнома, как я, то гном в отдельном втором терминале почему-то хреново работает, у меня просто падал. Кроме того, если вы планируете постоянно держать сессию открытой, то она будет подъедать ресурсы. Чтобы этого не случилось, рекомендую установить мой любимый VM - Openbox
Код:
dnf install openbox xbacklight feh conky xorg-x11-drv-libinput tint2 volumeicon xorg-x11-server-utils network-manager-applet
после этого в файлик /etc/sysconfig/desktop надо внести единственную строку
Код:
/usr/bin/openbox-session
это определит, какой десктоп будет использовать ваш терминальный сервер.
После этого надо решить, будете ли вы запускать сессию по требованию, либо держать ее постоянно запущенной. Я предпочитаю из соображений безопасности и экономии ресурсов по требованию запускать, поэтому мой выбор
Код:
systemctl start vncserver@:1
желающим запустить сессию напостоянно можно посоветовать
Код:
systemctl enable --now vncserver@:1
и можете подключиться к сессии (можно клиентом вроде Remmina или Vinagre, можно из консоли)
Код:
vncviewer хост:порт
обычно, раз мы указали :1 в параметрах запуска, это обозначает, что это сессия в DISPLAY=:1 и порт 5901, если бы указали :2, то были бы DISPLAY=:2 и порт 5902 и т.п.
мне, собственно, ничего, кроме терминала в этой сессии не надо, если кого-то шокирует отсутствие чего-либо на экране, то кликните правой кнопкой на рабочем столе, появится вполне симпатичная менюшка.


все летает, включая вложенный RDP, размер рабочей области меняется в зависимости от размера окна VNC. В общем, вполне себе рабочий вариант.

Единственное, конечно, неудобство, что в подключении SSH домой теперь надо добавить параметр -L 5901:хост:5901, чтобы пробросить порт. Но это фиксированная опция, не меняется в зависимости от порта клиента, как в варианте по ссылке выше.
Часовой пояс GMT +3, время: 03:09.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.