Встановлення та налаштування VNC-сервера в CentOS і RHEL

VNC (Virtual Network Computing) Server – це програмне забезпечення, яке дає змогу віддалено керувати комп’ютером через мережу. З його допомогою користувач може зайти на інший комп’ютер і виконувати на ньому будь-які дії так, ніби він сидить перед ним. VNC Server використовується для віддаленого доступу до комп’ютерів, керування серверами і навіть для навчання. У цій статті ми розглянемо, як налаштувати та використовувати VNC Server у різних операційних системах.

На відміну від інших доступних VNC-серверів, які підключаються безпосередньо до робочого столу, таких як VNC X або Vino, tigervnc-vncserver використовує інший механізм, який налаштовує окремий віртуальний робочий стіл для кожного користувача.

Крок 1: Встановлення та налаштування VNC на CentOS

1. Tigervnc-server – це програма, яка виконує Xvnc-сервер і запускає паралельні сесії Gnome або інших настільних середовищ на робочому столі VNC.

Запущена сесія VNC може бути доступна одному і тому ж користувачеві з декількох VNC-клієнтів. Щоб встановити TigerVNC сервер у CentOS/RHEL, відкрийте термінальну сесію і виконайте наступну команду yum з правами root.

$ sudo yum install tigervnc-server

2. Після встановлення програми увійдіть у систему під користувачем, під яким ви хочете запустити програму VNC, і виконайте в терміналі таку команду, щоб налаштувати пароль для сервера VNC.

Пам’ятайте, що пароль має складатися щонайменше з шести символів.

$ su - your_user
$ vncpasswd

3. Далі додайте файл конфігурації служби VNC для вашого користувача через файл конфігурації демона, розміщений у дереві каталогів systemd. Для копіювання файлу шаблону VNC необхідно виконати таку команду cp з привілеями root.

Якщо ваш користувач не має привілеїв sudo, або перейдіть безпосередньо на обліковий запис root, або виконайте команду з облікового запису з привілеями root.

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

4. На наступному етапі відредагуйте скопійований файл конфігурації шаблону VNC з каталогу /etc/systemd/system/ і замініть такі значення, щоб відобразити вашого користувача, як показано в прикладі нижче.

Значення 1 після знака @ являє собою номер дисплея (порт 5900+дисплей). Крім того, для кожного запущеного VNC-сервера порт 5900 буде збільшуватися на 1.

# vi /etc/systemd/system/vncserver@\:1.service

Додайте такі рядки у файл vncserver@:1.service.

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
 
[Service]
Type=forking
User=tecmint
Group=tecmint
WorkingDirectory=/home/tecmint
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver %i -geometry 1280x1024
PIDFile=/home/tecmint/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' 

[Install]
WantedBy=multi-user.target

5. Після внесення відповідних змін до файлу служби VNC перезавантажте програму ініціалізації системи systemd, щоб підхопити новий файл конфігурації vnc і запустити сервер TigerVNC.

Також перевірте стан служби VNC і увімкніть демон VNC по всій системі, виконавши такі команди.

# systemctl daemon-reload
# systemctl start vncserver@:1
# systemctl status vncserver@:1
# systemctl enable vncserver@:1

6. Щоб перерахувати відкриті порти в стані прослуховування, що належать серверу VNC, виконайте команду ss, яка використовується для відображення мережевих сокетів. Оскільки ви запустили тільки один екземпляр VNC-сервера, перший відкритий порт – 5901/TCP.

Знову ж таки, команда ss має бути виконана з привілеями root. Якщо ви запустите паралельно інші екземпляри VNC для різних користувачів, значення порту буде 5902 для другого, 5903 для третього і так далі. Порти 6000+ використовуються для дозволу X-додатків підключатися до VNC-сервера.

# ss -tulpn| grep vnc

7. Для того щоб зовнішні клієнти VNC могли підключатися до VNC-сервера, необхідно переконатися, що відповідні відкриті порти VNC пропускаються через ваш брандмауер.

Якщо запущено тільки один екземпляр VNC-сервера, необхідно відкрити тільки перший виділений VNC-порт: 5901/TCP, виконавши такі команди для застосування конфігурації брандмауера під час виконання.

# firewall-cmd --add-port=5901/tcp
# firewall-cmd --add-port=5901/tcp --permanent

Крок 2: Підключення до робочого столу CentOS через VNC-клієнт

8. Будучи платформно-незалежним протоколом, віддалені VNC-підключення з графічним інтерфейсом користувача можуть бути виконані практично з будь-якої операційної системи з графічним інтерфейсом і спеціалізованим VNC-клієнтом.

Популярним VNC-клієнтом, використовуваним в операційних системах на базі Microsoft і повністю сумісним із сервером Linux TigerVNC, є RealVNC VNC Viewer.

Для того щоб віддалено під’єднатися до CentOS Desktop з ОС Microsoft за протоколом VNC, відкрийте програму VNC Viewer, введіть IP-адресу і номер порту VNC-сервера CentOS і натисніть клавішу [enter].

Після встановлення VNC-з’єднання на екрані з’явиться попередження про те, що з’єднання не зашифровано, як показано на скріншотах нижче.

9. Щоб обійти попередження, натисніть кнопку Продовжити, додайте пароль, встановлений для VNC-сервера в пункті 2, і ви маєте бути віддалено під’єднані до CentOS Desktop з користувачем, налаштованим на запуск екземпляра VNC-сервера.

10. Якщо на екрані з’явиться повідомлення про нову аутентифікацію, а користувач не має прав root, просто натисніть кнопку Cancel, щоб продовжити роботу з CentOS Desktop, як показано на скріншоті нижче.

Майте на увазі, що встановлений зв’язок VNC між сервером і клієнтом та обмін будь-якими даними (окрім пароля) відбувається незашифрованим каналом. Щоб зашифрувати і захистити передачу даних VPN, спочатку необхідно налаштувати безпечний SSH-тунель і запускати будь-який подальший VPN-трафік через SSH-тунель.

11 Щоб віддалено під’єднатися до робочого столу CentOS за протоколом VNC з інших робочих столів CentOS, спочатку переконайтеся, що пакет vinagre встановлено у вашій системі, виконавши таку команду.

$ sudo yum install vinagre

12. щоб відкрити утиліту vinagre, перейдіть у Applications -> Utilities -> Remote Desktop Viewer, як показано на скріншоті нижче.

13. Для віддаленого підключення до робочого столу CentOS натисніть кнопку Connect, виберіть протокол VNC зі списку і додайте IP-адресу і порт (5900+номер дисплея) віддаленого сервера VNC. Також вкажіть пароль для користувача VNC, як показано на наступних скріншотах.

14. Іншим популярним клієнтом VNC для платформ на базі Linux є Remmina, клієнт віддаленого робочого столу, який особливо часто використовується в дистрибутивах на базі Debian, що працюють у середовищі робочого столу GNOME.

Для встановлення клієнта Remmina Remote Desktop у дистрибутивах на базі Debian виконайте таку команду.

$ sudo apt-get install remmina

Крок 3: Налаштування декількох сеансів VNC на CentOS

15. Якщо вам потрібно запустити нову паралельну сесію VNC під тим самим користувачем, відкрийте консоль Terminal, увійдіть під користувачем, під яким ви хочете запустити нову сесію VNC, і виконайте таку команду.

Під час першого запуску сервера вам буде запропоновано ввести новий пароль для цієї сесії. Однак майте на увазі, що ця сесія запускається з правами вашого користувача, який увійшов у систему, і незалежно від запущеної сесії VNC-сервера systemd.

$ vncserver

16. Нові сеанси VNC відкриють такі доступні порти на базі VNC (у цьому прикладі 5900+3). Для відображення відкритих портів виконайте команду ss без привілеїв root, як показано в наведеному нижче уривку. У списку будуть перераховані тільки запущені сеанси VNC, що належать вашому користувачеві.

$ ss -tlpn| grep Xvnc

17. Тепер віддалено підключіться до CentOS Desktop, використовуючи нову сесію VNC, і введіть комбінацію IP:порт (192.168.1.23:5903) у VNC-клієнті, як показано на малюнку нижче.

Щоб зупинити екземпляри VNC-сервера, запущені з правами цих користувачів, які увійшли в систему, виконайте таку команду без привілеїв root. Ця команда знищить усі запущені екземпляри VNC, що належать тільки користувачеві, який їх запустив.

$ su - your_user
$ killall Xvnc

Ось і все! Тепер ви можете отримати доступ до вашої системи CentOS і виконувати адміністративні завдання, використовуючи графічний інтерфейс користувача, що надається операційною системою.

Поділіться своєю знахідкою
Підписатися
Сповістити про
guest

0 комментариев
Вбудовані Відгуки
Переглянути всі коментарі
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x