ѕодпишитесь на наш Telegram-канал Ѕудьте в курсе последних новостей 👇 😉 ѕодписатьс€
ѕоддержим в трудное врем€ —пециальное предложение на техническую поддержку вашей »“ - инфраструктуры силами наших экспертов ѕодобрать тариф
ѕоставка оборудовани€ √аранти€ и помощь с настройкой. —кидка дл€ наших читателей по промокоду WIKIMERIONET  упить
»нтерфейс статистики Merion Mertics показывает ключевые диаграммы и графики по звонкам, а также историю звонков в формате, который легко поймет менеджер ѕопробовать бесплатно
¬недрение
офисной телефонии
Ўаг на пути к созданию доступных унифицированных коммуникаций в вашей компании ¬недрить
»нтеграци€ с CRM ѕомогаем навести пор€док с данными
и хранить их в единой экосистеме
ѕодключить
»“ Ѕезопастность ”мна€ информационна€ безопасность дл€ вашего бизнеса «аказать
ћерион Ќетворкс

6 минут чтени€

Virtual Network Computing (VNC) - это графическа€ система общего доступа к рабочему столу, котора€ позвол€ет использовать клавиатуру и мышь дл€ удаленного управлени€ другим компьютером.

¬ этой статье описываютс€ шаги по установке и настройке VNC-сервера в CentOS 8. ћы также покажем, как безопасно подключатьс€ к VNC-серверу через туннель SSH.

 ”становка и настройка VNC сервера в CentOS 8

ѕодготовка

„тобы следовать этому руководству, вам необходимо войти в систему как пользователь с привилеги€ми sudo на удаленном компьютере CentOS.


”становка окружени€ рабочего стола

 ак правило, на серверах не установлена среда рабочего стола. ≈сли машина, к которой вы хотите подключитьс€, не имеет графического интерфейса, сначала установите ее. ¬ противном случае пропустите этот шаг.

¬ыполните следующую команду, чтобы установить Gnome, среду рабочего стола по умолчанию в CentOS 8 на удаленной машине:

sudo dnf groupinstall "Server with GUI"

¬ зависимости от вашей системы загрузка и установка пакетов и зависимостей Gnome может зан€ть некоторое врем€.


”становка VNC-сервера

¬ качестве сервера мы будем использовать TigerVNC - активно поддерживаемый высокопроизводительный VNC-сервер с открытым исходным кодом. ќн доступен в репозитори€х CentOS по умолчанию, дл€ его установки введите:

sudo dnf install tigervnc-server

ѕосле установки VNC-сервера выполните команду vncserver, чтобы создать начальную конфигурацию и установить пароль. Ќе используйте sudo при выполнении следующей команды:

vncserver

¬ам будет предложено ввести и подтвердить пароль и указать, следует ли устанавливать его в качестве парол€ только дл€ просмотра (view-only). ≈сли вы решите установить пароль только дл€ просмотра, пользователь не сможет взаимодействовать с экземпл€ром 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.linuxize.com:1 (linuxize)' desktop at :1 on machine server2.linuxize.com

Starting applications specified in /etc/X11/Xvnc-session
Log file is /home/linuxize/.vnc/server2.linuxize.com:1.log

ѕри первом запуске команды vncserver она создаст и сохранит файл паролей в каталоге ~/.vnc, который будет создан, если его не будет.

ќбратите внимание, что : 1 после имени хоста в выводе выше. Ёто указывает номер порта диспле€, на котором работает сервер VNC. ¬ нашем случае сервер работает по TCP-порту 5901 (5900 + 1) . ≈сли вы создадите второй экземпл€р, он будет работать на следующем свободном порту, то есть : 2, что означает, что сервер работает на порту 5902 (5900 + 2) .

¬ажно помнить, что при работе с серверами VNC: X - это порт диспле€, который относитс€ к 5900 + X.

ѕрежде чем перейти к следующему шагу, сначала остановите экземпл€р VNC, использу€ команду vncserver с параметром -kill и номером сервера в качестве аргумента. ¬ нашем случае сервер работает в порту 5901 (: 1), поэтому, чтобы остановить его, запустите:

vncserver -kill :1

ћы получим такой вывод:

Killing Xvnc process ID 19681

Ќастройка VNC-сервера

“еперь, когда и Gnome, и TigerVNC установлены на удаленной машине CentOS, следующим шагом €вл€етс€ настройка TigerVNC дл€ использовани€ Gnome. —ервер VNC использует файл ~/.vnc/xstartup дл€ запуска приложений при создании нового рабочего стола. ќткройте файл:

vim ~/.vnc/xstartup

» отредактируйте его следующим образом:

#!/bin/sh
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
vncconfig -iconic &
dbus-launch --exit-with-session gnome-session &

—охраните и закройте файл (напоминаем, что в vim дл€ этого нужно ввести :wq). ѕриведенный выше скрипт автоматически выполн€етс€ при каждом запуске или перезапуске сервера TigerVNC.

≈сли вы хотите передать дополнительные параметры серверу VNC, откройте файл ~/.vnc/config и добавьте один параметр в каждой строке. Ќаиболее распространенные параметры перечислены в файле. –аскомментируйте и измените по своему вкусу. ¬от пример:

# securitytypes=vncauth,tlsvnc
# desktop=sandbox
geometry=1920x1080
# localhost
# alwaysshared

—оздание файла модул€ Systemd

‘айлы модулей позвол€ют легко запускать, останавливать и перезапускать службы.  ак правило, лучшим местом дл€ хранени€ файлов пользовательских модулей €вл€етс€ ~/.config/systemd/user. —оздайте каталог при помощи команды mkdir:

mkdir -p ~/.config/systemd/user

—копируйте дефолтный файл модул€ vncserver:

cp /usr/lib/systemd/user/vncserver@.service ~/.config/systemd/user/

—ообщите systemd, что существует новый файл пользовательского модул€:

systemctl --user daemon-reload

«апустите службу VNC и включите ее при загрузке:

systemctl --user enable vncserver@:1.service --now

„исло 1 после @: определ€ет порт диспле€, который будет прослушивать служба VNC. ћы используем 1, что означает, что VNC-сервер будет прослушивать порт 5901, как мы обсуждали ранее.

¬ключите задержку, чтобы служба пользовател€ запускалась при загрузке и продолжала работать, когда пользователь не в системе:

loginctl enable-linger

”бедитесь, что служба успешно запущена:

systemctl --user status vncserver@:1.service

ѕолучим такой вывод:

? vncserver@:1.service - Remote desktop service (VNC)
   Loaded: loaded (/home/linuxize/.config/systemd/user/vncserver@.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-01-30 22:14:08 UTC; 2s ago
  Process: 20813 ExecStart=/usr/bin/vncserver :1 (code=exited, status=0/SUCCESS)
  Process: 20807 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
   CGroup: /user.slice/user-1000.slice/user@1000.service/vncserver.slice/vncserver@:1.service
  ...

ѕодключение к серверу VNC

VNC не €вл€етс€ зашифрованным протоколом и может подвергатьс€ перехвату пакетов. –екомендуемый подход заключаетс€ в создании туннел€ SSH дл€ безопасной пересылки трафика с локального компьютера через порт 5901 на удаленный сервер с тем же портом.

Ќастройка SSH-туннелировани€ в Linux и macOS

≈сли вы используете Linux, macOS или любую другую операционную систему на основе Unix на своем компьютере, вы можете легко создать туннель с помощью следующей команды ssh:

ssh -L 5901:127.0.0.1:5901 -N -f -l username remote_server_ip

¬ам будет предложено ввести пароль пользовател€. «амените username и remote_server_ip своим именем пользовател€ и IP-адресом вашего сервера.

Ќастройка SSH-туннелировани€ в Windows

ѕользователи Windows могут настроить SSH-туннелирование с помощью PuTTY.

ќткройте Putty и введите IP-адрес вашего сервера в поле Host name or IP address.

 Host name or IP address

¬ меню ЂConnectionї разверните пункт ЂSSHї и выберите ЂTunnelsї . ¬ведите порт VNC-сервера 5901 в поле Source Port, введите адрес_сервера: 5901 в поле Destination и нажмите кнопку Add.

 Tunnels

¬ернитесь на страницу ФSessionФ, чтобы сохранить настройки, чтобы вам не приходилось каждый раз вводить их. „тобы войти на удаленный сервер, выберите сохраненный сеанс и нажмите кнопку ЂOpenї .

ѕодключение с помощью Vncviewer

„тобы подключитьс€ к удаленному —ерверу, откройте программу просмотра VNC и введите localhost: 5901.

¬ы можете использовать любую программу просмотра VNC, такую как TigerVNC, TightVNC, RealVNC, UltraVNC Vinagre и VNC Viewer дл€ Google Chrome.

ћы будем использовать TigerVNC:  TigerVNC

ѕри по€влении запроса введите пароль, и вы увидите рабочий стол Gnome по умолчанию. Ёто должно выгл€деть примерно так:

 Gnome

√отово! “еперь вы можете начать работу на удаленном рабочем столе с локального компьютера, использу€ клавиатуру и мышь.


»тоги

ћы показали вам, как настроить VNC-сервер и подключитьс€ к удаленной машине CentOS 8.

„тобы запустить отображение дл€ более чем одного пользовател€, повторите те же шаги. —оздайте исходную конфигурацию, установите пароль с помощью команды vncserver и создайте новый файл службы, использу€ другой порт.