
В этом руководстве мы покажем вам шаги по установке и настройке VNC-сервера в системе CentOS 7. Мы также покажем, как безопасно подключиться к VNC-серверу через SSH-туннель.
Виртуальные сетевые вычисления (VNC) — это графическая система общего доступа к рабочему столу, которая позволяет использовать клавиатуру и мышь для удаленного управления другим компьютером.
Предпосылки
Прежде чем продолжить обучение, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo . Мы предполагаем, что вы вошли в систему как пользователь linuxize .
Установка среды рабочего стола Xfce
Установки серверов CentOS часто не включают в себя установленную среду рабочего стола, поэтому мы начнем с установки облегченной среды рабочего стола.
Мы установим Xfce . Он быстрый, стабильный и потребляет мало системных ресурсов, что делает его идеальным для использования на удалённых серверах.
Пакеты Xfce доступны в репозитории EPEL . Если репозиторий не включён на вашем сервере, вы можете включить его, выполнив команду:
sudo yum install epel-release
После добавления репозитория установите Xfce на CentOS с помощью:
sudo yum groupinstall xfce
В зависимости от вашей системы загрузка и установка пакетов Xfce и зависимостей может занять некоторое время.
Установка VNC-сервера
В качестве VNC-сервера мы будем использовать TigerVNC. TigerVNC — это активно поддерживаемый высокопроизводительный VNC-сервер с открытым исходным кодом.
Введите следующую команду для установки TigerVNC на сервер CentOS:
sudo yum install tigervnc-server
Теперь, когда VNC-сервер установлен, следующим шагом будет выполнение команды vncserver , которая создаст начальную конфигурацию и настроит пароль. Не используйте sudo при выполнении следующей команды:
vncserver
Вам будет предложено ввести и подтвердить пароль, а также указать, следует ли установить его как пароль только для просмотра. Если вы решите установить пароль только для просмотра, пользователь не сможет взаимодействовать с экземпляром VNC с помощью мыши и клавиатуры.
You will require a password to access your desktops. Password: Verify: Would you like to enter a view-only password (y/n)? n /usr/bin/xauth: file /home/linuxize/.Xauthority does not exist New 'server2.linuxgazette.ru:1 (linuxize)' desktop at :1 on machine server2.linuxgazette.ru Starting applications specified in /etc/X11/Xvnc-session Log file is /home/linuxize/.vnc/server2.linuxgazette.ru:1.log
При первом запуске команды vncserver она создаст и сохранит файл паролей в каталоге ~/.vnc который будет создан, если его нет.
Обратите внимание на :1 после имени хоста в выводе выше. Это указывает номер порта дисплея, на котором работает VNC-сервер. В нашем случае сервер работает на TCP-порту 5901 (5900+1). Если вы создадите второй экземпляр с помощью vncserver , он будет работать на следующем свободном порту, то есть :2 , что означает, что сервер работает на порту 5902 (5900+2).
Важно помнить, что при работе с VNC-серверами :X — это порт дисплея, который относится к 5900+X .
Прежде чем перейти к следующему шагу, остановите экземпляр VNC с помощью команды vncserver с опцией -kill и номером сервера в качестве аргумента. В данном случае сервер работает на порту 5901 ( :1 ), поэтому мы остановим его с помощью:
vncserver -kill :1
Killing Xvnc process ID 2432
Настройка VNC-сервера
Теперь, когда Xfce и TigerVNC установлены на сервере, следующим шагом будет настройка TigerVNC для использования Xfce. Для этого откройте следующий файл:
nano ~/.vnc/xstartup
И измените последнюю строку с exec /etc/X11/xinit/xinitrc на exec startxfce4 :
~/.vnc/xstartup
#!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS exec startxfce4
Сохраните и закройте файл. Приведённый выше скрипт будет автоматически выполняться при каждом запуске или перезапуске сервера TigerVNC.
Если вам нужно передать дополнительные параметры VNC-серверу, откройте файл ~/.vnc/config и добавьте по одному параметру в каждой строке. Наиболее распространённые параметры перечислены в файле. Раскомментируйте и измените по своему усмотрению.
Вот пример:
~/.vnc/config
# securitytypes=vncauth,tlsvnc # desktop=sandbox geometry = 1920x1080 # localhost # alwaysshared dpi = 96
Создание файла модуля Systemd
Мы создадим файл модуля systemd, который позволит нам легко запускать, останавливать и перезапускать службу VNC по мере необходимости, так же, как и любую другую службу systemd.
Скопируйте файл модуля vncserver с помощью команды cp :
sudo cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
Откройте файл с помощью текстового редактора, отредактируйте строки, выделенные желтым цветом, и замените «linuxize» на свое фактическое имя пользователя:
sudo nano /etc/systemd/system/vncserver@:1.service
/etc/systemd/system/vncserver@:1.service
[Unit] Description = Remote desktop service (VNC) After = syslog.target network.target [Service] Type = forking User = linuxize Group = linuxize # Clean any existing files in /tmp/.X11-unix environment ExecStartPre = /bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' ExecStart = /usr/bin/vncserver %I PIDFile = /home/linuxize/.vnc/%H%i.pid ExecStop = /bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' [Install] WantedBy = multi-user.target
Сохраните и закройте файл. Сообщите systemd о создании нового файла модуля:
sudo systemctl daemon-reload
Следующим шагом будет включение файла модуля с помощью следующей команды:
sudo systemctl enable vncserver@:1.service
Число 1 после знака @ определяет порт дисплея, на котором будет работать служба VNC. В данном примере это порт по умолчанию 1 , и VNC-сервер будет прослушивать порт 5901 , как мы обсуждали в предыдущем разделе.
Запустите службу VNC, выполнив:
sudo systemctl start vncserver@:1.service
Убедитесь, что служба успешно запущена, выполнив:
sudo systemctl status vncserver@:1.service
● vncserver@:1.service - Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2020-04-06 19:27:47 UTC; 16s ago Process: 909 ExecStart=/usr/bin/vncserver %I (code=exited, status=0/SUCCESS) Process: 891 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS) Main PID: 923 (Xvnc) ...
Подключение к VNC-серверу
VNC не использует шифрование и может быть подвержен перехвату пакетов. Рекомендуемый подход — создать SSH-туннель , который будет безопасно пересылать трафик с вашего локального компьютера через порт 5901 на сервер через тот же порт.
Настройка SSH-туннелирования в Linux и macOS
Если на вашем компьютере установлена операционная система Linux, macOS или любая другая операционная система на базе Unix, вы можете легко создать туннель с помощью следующей команды ssh :
ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address
Вам будет предложено ввести пароль пользователя.
Не забудьте заменить username и server_ip_address на свое имя пользователя и IP-адрес вашего сервера.
Настройка SSH-туннелирования в Windows
Если вы используете Windows, вы можете настроить SSH-туннелирование с помощью клиента PuTTY SSH .
Откройте Putty и введите IP-адрес вашего сервера в поле Host name or IP address .

В меню Connection разверните раздел SSH и выберите Tunnels . Введите порт VNC-сервера ( 5901 ) в поле Source Port и введите server_ip_address:5901 в поле Destination . Нажмите кнопку Add , как показано на рисунке ниже:

Вернитесь на страницу Session , чтобы сохранить настройки и не вводить их каждый раз.
Чтобы войти на удаленный сервер, выберите сохраненный сеанс и нажмите кнопку Open
Подключение с помощью Vncviewer
Теперь, когда вы настроили SSH-туннелирование, пришло время открыть Vncviewer и подключиться к VNC-серверу по адресу localhost:5901 .
Вы можете использовать любой просмотрщик VNC, такой как TigerVNC, TightVNC, RealVNC, UltraVNC, Vinagre и VNC Viewer для Google Chrome .
В этом примере мы будем использовать TigerVNC. Откройте VNC-клиент, введите localhost:5901 и нажмите кнопку « Connect .

Введите пароль при появлении запроса, и вы увидите рабочий стол Xfce по умолчанию. Он должен выглядеть примерно так:

Теперь вы можете начать взаимодействовать с удаленным рабочим столом XFCE с локального компьютера с помощью клавиатуры и мыши.
Заключение
К настоящему моменту у вас должен быть установлен и запущен VNC-сервер, и вы можете легко управлять своим сервером CentOS 7 с помощью графического интерфейса.
Чтобы настроить VNC-сервер для запуска отображения для более чем одного пользователя, создайте начальную конфигурацию и настройте пароль с помощью команды vncserver , а также создайте новый файл службы, используя другой порт.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии.
centos vnc Не используете CentOS 7?
Выберите другую ОС: центос 8 дебиан 9 убунту 18.04 убунту 20.04
Связанные руководства
- Как установить и настроить VNC на CentOS 8
- Как установить и настроить Zabbix на CentOS 7
- Как установить текстовый редактор Atom на CentOS 7
- Как установить Sublime Text 3 на CentOS 7
- Как установить Visual Studio Code на CentOS 7
- Как установить VMware Workstation Player на CentOS 7
- Как добавить пространство подкачки в CentOS 7