Установка VNCserver на CentOS/RedHat/Fedora

Установка VNCserver на CentOS/RedHat/Fedora

VNC используется для отображения сеанса X Windows на другом компьютере. В отличие от удаленного соединения X, X-сервер работает на удаленном компьютере, а не на локальной рабочей станции. Ваша рабочая станция (Linux или Windows) отображает только копию дисплея (реального или виртуального), запущенного на удаленной машине.Есть несколько способов настроить сервер VNC. Эта статья «Установка VNCserver на CentOS/RedHat/Fedora» показывает, как можно настроить VNC сервер на примере CentOS.

1. Установка VNCserver на CentOS/RedHat/Fedora:

# yum install vnc-server

Можно еще сразу установить и VNC клиент, он не помешает и может пригодится вам в дальнейшем, для этого выполните:

# yum install vnc

Убедитесь, что установитt менеджер окон, чтобы получить полнофункциональный настольный компьютер с графическим интерфейсом. Вы можете использовать команду Yum groupinstall «GNOME Desktop Environment» для установки графического интерфейса — Gnome Desktop, так же можно установить и другие популярные окружения рабочего стола, например «KDE» и «XFCE». XFCE больше легкий, чем Gnome или KDE.

# yum groupinstall "GNOME Desktop Environment"

Если вы приверженец минимализма или просто проверяете работу то достаточно иметь  простой клиент XTerm:

# yum install xterm

Если вы используете CentOS 6, то выполните yum groupinstall Desktop чтобы установить графическую оболочку.

Если вы используете CentOS 5, то выполните yum groupinstall «GNOME Desktop Environment» чтобы установить графическую оболочку.

У меня будет создано 2 пользователя (captain, vncuser) и им будет разрешено подключаться к установленному серверу, по этому я создам их сейчас и мы продолжим настройку:

# su -
# useradd captain
# useradd vncuser

Установим сейчас пароли для пользователей:

# passwd captain
# passwd vncuser

Далее необходимо отредактировать соединение с сервером ( разрешить подключение именно указанным пользователям):

# vim  /etc/sysconfig/vncservers
VNCSERVERS="1:captain 2:vncuser "
VNCSERVERARGS[1]="-geometry 640x480"
VNCSERVERARGS[2]="-geometry 800x600"

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

1. Для пользователя captain:

# su - captain
# vncpasswd

2. Для пользователя vncserver:

# su - vncserver
# vncpasswd

Чтобы убедиться что все нормально, выполним команду:

# cd .vnc && ls

Должен в папках ( у каждого из пользователей) появится файл под названием passwd. Если нет, значит что то сделали не так!

Добавим сервер VNC в автозагрузку ОС:

# /sbin/chkconfig vncserver on

Для того чтобы запустить или остановить сервер ВНЦ, используйте:

# /sbin/service vncserver start
# /sbin/service vncserver stop

Нужно еще добавить для каждого пользователя скрипт запуска Х-в:

# vim /home/captain/.vnc/xstartup
# vim /home/vncuser/.vnc/xstartup
#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &

Можно просто перейти в директорию /home/your_user_name/.vnc/ и скачать готовый скрипт, чтобы не писать его вручную ( мне кажется, так проще будет):

# wget  https://linux-notes.org/wp-content/uploads/files/vnc_server/centos/xstartup

Выставим права 777 для данного файла ( у меня вроде бы не работало без этого, мучался и искал долго ошибку тупую):

# chmod 777 xstartup

Если установлен IPtables, то нужно  добавить некоторые правила:

# cat /etc/sysconfig/iptables
[...]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth1 -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 5901:5902,6001:6002 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
[...]

После чего перезапускаем ипитаблес:

# /sbin/service iptables restart

На этом все, теперь нужно только запустить сервер:

# /sbin/service vncserver restart

Чтобы проверить работает ли все нормально, то перейдите в браузер и откройте:
http://your_IPadress:5801 — для пользователя 1
http://your_IPadress:5802 — для пользователя 2
и так далее.

Можно скачать ( установить) клиент для VNC, например, если вы используете Windows, то этот клиент называется — UltraVNC. Для centos, я установил в самом начале. В программе вводим IP:port. Для примера , покажу как у меня:

Пользователь captain будет запущен если ввести:
178.62.44.69:5901

После чего попросят ввести пароль.

Пользователь vncuser будет запущен если ввести:
178.62.44.69:5902

После чего тоже попросят ввести пароль.

ПРИМЕЧАНИЕ! Если долго не использовать графическую оболочку ( когда вы подключились уже), то она заблокируется. Решение только одно- это перезапустить сам сервер и подключится к нему заново!

Настройка VNC зашифрования через SSH туннель

Вы будете подключать через SSH туннель. Вы должны быть подключены по SSH для пользователя на компьютере. Для этого примера, пользователь captain. Это имя пользователя учетной записи должно существовать на машине и должен быть установлен пароль или ключ доступа SSH. Система имена пользователей и пароли Linux и VNC не обязаны быть

идентичными и 'не' автоматически синхронизируются.
# vim /etc/sysconfig/vncservers
VNCSERVERS="1:captain 2:vncuser"
VNCSERVERARGS[1]="-geometry 640x480 -localhost"
VNCSERVERARGS[1]="-geometry 800x600 -localhost"

Перезапускаем ВНЦ сервер:

# service vncserver restart

Проверяем, только запускаем на другом компьютере (машине) и тестируем сервер с ВНЦ:

# vncviewer -via captain@178.62.44.69 localhost:1
# vncviewer -via vncuser@178.62.44.69 localhost:2

Установка и настройка удаленного доступа через vnc-ltsp-config

Для включения удаленного доступа для входа через VNC-клиента к системе Centos. Когда VNC-клиент подключается к одному из настроенных портов, пользователь будет дано экран входа. Сессия  не будет постоянной. Когда пользователь выходит из системы, сеанс завершается.
Нужно подключить репозиторий EPEL  и потом уже выполнять команду:

# yum install xinetd vnc-ltsp-config
# /sbin/chkconfig xinetd on
# /sbin/chkconfig vncts on
# /sbin/service xinetd restart

Подредактируем настройки GDM:

# sudo vim /etc/gdm/custom.conf
[...]
[security]
"DisallowTCP=false"
[...]
"Enable=true"

Это добавит возможность получить следующие основанные сеансовые соединение по умолчанию для VNC-клиента:

параметры соединений сессий vnc-client

параметры соединений сессий vnc-client

Если вам не нравится вышеуказанные значения по умолчанию, просто изменить /etc/xinetd.d/vncts по мере необходимости. Основное преимущество использования установки VNC-LTSP-конфигурации является сокращение использования системных ресурсов по сравнению со стандартом «для настройки каждого пользователя «. Недостатком установки VNC-LTSP-конфигурации является то, что * любой * пользователь с возможность захода вероятно, будет иметь возможность войти в систему через VNC-клиента с полным графическим интерфейсом, если не будут приняты меры, чтобы ограничить этот тип доступа.

 Настройка 2-х соединений консольных сессий

x11vnc является способ просмотра удаленно и взаимодействовать с реальными X дисплеев (т.е. дисплей, соответствующий физическому монитора, клавиатуры и мыши) с любой VNC Viewer. Таким образом, он играет роль для Unix / X11, что WinVNC играет для Windows.

x11vnc  с опцией adhoc 

Установим мы его сейчас.

# cd /usr/local/src
# wget wget http://dag.wieers.com/rpm/packages/x11vnc/x11vnc-0.9.3-1.el5.rf.i386.rpm

Устанавливаем только что созданный пакет:

# yum install x11vnc-0.9.3-1.el5.rf.i386.rpm

Запускаем процесс x11vnc на хосте к VNC-клиенту:

# x11vnc -nopw -display: 0.0

Затем подключите (без пароля) через VNC-клиент к IP / имя хоста и порт отметил командой x11vnc. По умолчанию, x11vnc позволит соединения от всех интерфейсов. Настройки брандмауэра на основе хоста возможно, должны быть изменены.

Вы можете совместить это с SSH туннелирования:

# ssh -C -t -L 5900:localhost:5900 [remote ip] 'x11vnc -usepw -localhost -display :0'

Вот и все! Моя статья «Установка VNCserver на CentOS/RedHat/Fedora» подошла к завершению, надеюсь все понятно было как разложил, если нет, то пишите и спрашивайте. Спасибо за использование https://linux-notes.org

3 thoughts on “Установка VNCserver на CentOS/RedHat/Fedora

  1. Подскажите как сделать так, что бы русский текст копировался правильно, не иероглифами. Какие настройки нужно изменить. Копирование происходит с vnc на ПК пользователя.

    • Для начала проверяем какая локаль прописана:

      $ locale
      

      После чего, можно добавить в bashrc:

      vim ~/.bash_profile
      

      И прописать следующие строки:

      export LANG=ru_RU.UTF-8
      export LC_CTYPE="ru_RU.UTF-8"
      export LC_NUMERIC="ru_RU.UTF-8"
      export LC_TIME="ru_RU.UTF-8"
      export LC_COLLATE="ru_RU.UTF-8"
      export LC_MONETARY="ru_RU.UTF-8"
      export LC_MESSAGES="ru_RU.UTF-8"
      export LC_PAPER="ru_RU.UTF-8"
      export LC_NAME="ru_RU.UTF-8"
      export LC_ADDRESS="ru_RU.UTF-8"
      export LC_TELEPHONE="ru_RU.UTF-8"
      export LC_MEASUREMENT="ru_RU.UTF-8"
      export LC_IDENTIFICATION="ru_RU.UTF-8"
      export LC_ALL= 
      

      Затем, выполнить:

      $ source ~/.bash_profile 
      

      Так же, можно подключатся к VNC следующим образом:

      $ LC_MESSAGES=C vncviewer your_server
      

      Более детально, я расскажу в своей статье.

      Должно помочь 😉

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.