Версия дистрибутива используемого в этом примере
[root@vnc-host ~]# cat /etc/redhat-release Fedora release 16 (Verne)
Установка VNC сервера
[root@vnc-host ~]# yum -y install tigervnc-server
Добавление сервиса для запуска VNC сервера на виртуальном DISPLAY :1
[root@vnc-host ~]# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
Прописать необходимого пользователя и его каталог с PID файлом (в примере это user002)
[root@vnc-host ~]# cat /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 user002 -c "/usr/bin/vncserver %i" PIDFile=/home/user002/.vnc/%H%i.pid ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' [Install] WantedBy=multi-user.target
Установка пароля для пользователя user002 (пароль устанавливается в используя домашний каталог из окружения пользователя)
[root@vnc-host ~]# su user002 [root@vnc-host ~]$ vncpasswd Password: Verify:
Эта команда запишет или перезапишет файл $HOME/.vnc/passwd у пользователя user002.
Настройка Firewall
Ручной IPTABLESNetwork manager
[root@vnc-host ~]# cat /etc/sysconfig/iptables # Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :VNC - [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp -m multiport --dports 5900:5910 -j VNC -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited -A VNC -s 192.168.12.0/24 -j ACCEPT -A VNC -j REJECT --reject-with icmp-host-prohibited COMMIT
[root@vnc-host ~]# firewall-cmd --permanent --zone=public --add-service vnc-server
Перезагрузим демона, разрешим автозапуск vncserver, и запустим его вручную.
[root@vnc-host ~]# systemctl daemon-reload [root@vnc-host ~]# systemctl enable vncserver@:1.service [root@vnc-host ~]# systemctl start vncserver@:1.service
Такая попытка привязать vncserver на DISPLAY :0 не пройдёт.
[root@vnc-host ~]# x0vncserver -rfbport=5900 -PasswordFile=/root/.vnc/passwd -display :0 No protocol specified x0vncserver: unable to open display ":0"
Для того чтобы подключиться по VNC к текущему реальному DISPLAY :0 читайте статью …