logo

nixscript

Keep it simple, stupid !

Ссылка на статью в формате MarkDown для Curl, кодировка RU.UTF-8

VNC на XFCE4

Адрес страницы: https://nixscript.ru/xfce4-vnc

Знаю, много написано, но тем не менее. Всё кусками, разрозненно, каждый раз искать по всей сети... Хочу всё в одном месте.

Примечание: всё написано под Archlinux и Manjaro.

Установка

Устанавливаем следующие пакеты:

sudo pacman -Sy tigervnc xscreensaver

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

Настройка

Для настройки VNC просто запустите:

vncserver

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

Создастся директория ~/.vnc в которой будут и файлы конфигурации VNC, и файл пароля.

В файле ~/.vnc/config надо раскомментировать строки:

securitytypes=vncauth,tlsvnc
desktop=sandbox
geometry=1200x700
dpi=96
localhost
alwaysshared

В файле xstartup закомментируйте всё, оставив рабочим только это:

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
xfce4-terminal --drop-down --display=:1 --command xfce4-session --minimize

Осталось настроить блокировку экрана.

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

Выполните xscreensaver-demo укажите необходимые настройки хранителя и энергосбережения.

Теперь система не будет блокировать сессию VNC при блокировке экрана.

VNC настроен. Теперь можно подключаться с другой машины или даже со смартфона Android

Подключаемся

На машине, с которой собираетесь подключаться, делаем проброс порта через SSH:

ssh -p 22 userlogin@remotemachine -L 8900:localhost:5901

Как только видим приглашение bash удалённой машины, запускаем на ней vncserver

[userlogin@remotemachine ~]$ vncserver

New 'remotemachine:1 (userlogin)' desktop is remotemachine:1

Starting applications specified in /home/userlogin/.vnc/xstartup
Log file is /home/userlogin/.vnc/remotemachine:1.log

[userlogin@remotemachine ~]$

VNC сообщает вам, что запустил первую сессию (remotemachine:1). Соответственно на удалённой машине, под это дело выделился порт 5901. Именно его мы и указали пробрасывая порт. И соответственно на той машине, с которой вы сейчас управляете процессом, нужно использовать порт 8900, который мы указали локальным, принимающим, при пробросе порта.

Соответственно в клиенте VNC следует указать следующее:

localhost:8900

И на запрос пароля, ввести тот, что мы указывали при первом запуске VNC.

После подключения, вы увидите свежезапущенную, параллельную X-сессию. Да, именно параллельную. Текущая X-сессия затронута не будет.

Подключение с Android

Отключиться очень просто. Закрываем соединение клиента VNC, убиваем процесс сервера VNC и выходим из удалённой машины:

pkill Xvnc
exit

Подключаемся в активную X-сессию.

Пробрасываем порт, но чуть иначе:

ssh -p 22 userlogin@remotemachine -L 8900:localhost:5900

Как видите, мы указываем не 5901, как в прошлый раз, а 5900, так как именно этот порт используется VNC для подключения к активной сессии.

После появления приглашения bash с удалённой машины, надо выполнить следующее:

x0vncserver -rfbauth ~/.vns/passwd -display=:0

И подключившись на localhost:8900 и введя пароль VNC вы увидите активную сессию на удалённой машине.

Если увидите окно ввода пароля, вводите пароль юзера активной сессии, а не VNC.

Подключение с Android

Подключение с Android

Отключение от активной сессии

Отключаться довольно просто. Закрываете соединение VNC-клиента и выполняете следующее:

Всё. Вы отключились.

Автор: Grigruss 16.04.2019


Статья написана в формате MarkDown и сконвертирована в HTML с помощью скрипта Parsedown.

Вверх 🡑