Установка VNC сервера на CentOS 7 / Fedora

У меня используется базовая версия ОС на которую я установил MATE, просмотр возможности установки доступной DE в Yum можно просмотреть так:

yum grouplist | grep -i desk
...
MATE Desktop
GNOME Desktop
Desktop
Desktop Platform
Desktop Platform Development
General Purpose Desktop

Информацию по пакетам можно получить к примеру так:

yum groupinfo "MATE Desktop"

поэтому в настройках у меня будет присутствовать наименование именно этой DE, итак поехали, устаналиваем VNC сервер:

yum install tigervnc-server

Копируем шаблон сервиса:

cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service

Правим файл сервиса сессии 1 заменяя на имя подключаемого пользоватя, к примеру root:

nano /etc/systemd/system/vncserver@:1.service
....
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

Добавляем имя сессии по умолчанию:

echo 'PREFERRED="$(type -p mate-session)"' >> /etc/sysconfig/desktop

Если к примеру установлен xfce4 то строка будет выглядеть след. образом - PREFERRED="$(type -p xfce4-session)" на Gnome echo PREFERRED="$(type -p gnome-session)"

Включаем исключение на файерволе:

firewall-cmd --permanent --zone=public --add-service vnc-server

Переподгружаем конфигурацию Firewall:

firewall-cmd --reload

Задаем пароль VNC на подключение:

vncpasswd
Password :
Verify :

Проверяем наличие passwd файла в дерриктории пользователя:

ls -l /root/.vnc/
-rw------- 1 root root    8 Jul 25 16:59 passwd

Перезружаем systemctl:

systemctl daemon-reload

Включаем и стартуем сервис:

systemctl enable vncserver@:1.service && systemctl start vncserver@:1.service

Проверяем наличие файла xstartup:

ls -l /root/.vnc/
-rw------- 1 root root    8 Jul 25 16:59 passwd
-rwxr-xr-x 1 root root   92 Jul 25 16:57 xstartup

Подключаемся любым VNC клиентом - АдресСервера:1

Примечание: у меня с первого раза сервис не стартанул, помогла перезагрузка ОС.

Доп. инфо, статья от производителя )

Столкнулся с подобной настройкой сегодня сам, хотел тоже написать поэтапную настройку но вижу опоздал :smile3:

Хочу от себя добавить не много дополнений:

После запуска вводим команду systemctl status vncserver@:1.service
и убеждаемся, что нет красных записей символизирующие проблемы, также там можно увидеть строку -geometry …, т.е. мы можем изменить разрешение экрана при подключение VNC клиентом к примеру у нас стоит 1024x768 то мы можем сменить на 800x600, для этого внесем изменения:

ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i -geometry  800x600"

после перезапускам сервис:

systemctl stop vncserver@:1.service && systemctl start vncserver@:1.service

Примечание: restart не работает.

  1. Также можно запустить VNC для дополнительного пользователя с обеспечением шифрования методом SSH:
    Для этого копируем [email protected] с дополнительным указанием имени пользователя (в моем примере это будет vnc_user):
cp /etc/systemd/system/vn[email protected] /etc/systemd/system/[email protected]

и вносим поправки как описано выше заменяя пользователя root на нужного нам.

Запускам сервис:

systemctl stop vncserver-vns_user@:2.service

Для подключения в Линуксе вводим команду:

vncviewer -via vns_user@localhost :2

Потребуется ввести пароль 2 раза: от учетной записи и пароль созданный командой vncpasswd

Полезно, спасибо )

P.S. пробовал останавливать сервис, потом запускать, статус тоже вроде никаких ошибок не показывал, в след. раз обязательно попробую приведенные шаги еще раз )