Перейти до змісту

Спільний доступ до робочого столу через x11vnc+SSH (LAN)

Вступ

x11vnc — потужна програма VNC. Те, що відрізняє x11vnc від інших програм VNC, полягає в тому, що адміністратор може отримати наявний X-сеанс користувача, а не створювати новий. Це робить X11VNC ідеальним для надання віддаленої підтримки робочим столам Linux.

Цей посібник навчить вас, як налаштувати сервер X11vnc і як віддалено до нього підключитися.

Примітка

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

Припущення

Для цього посібника передбачається, що у вас є:

  • Робоча станція Rocky Linux
  • привілеї sudo

Налаштування сервера VNC

Ви повинні встановити сервер x11vnc на вашій робочій станції Rocky, щоб записати сеанс X.

Вимкнути Wayland

По-перше, вам потрібно вимкнути Wayland. Відкрийте файл custom.conf за допомогою обраного вами текстового редактора:

sudo vim /etc/gdm/custom.conf

Розкоментуйте WaylandEnable=false:

# GDM configuration storage

[daemon]
WaylandEnable=false

[security]

[xdmcp]

[chooser]

[debug]
# Uncomment the line below to turn on debugging
#Enable=true

Перезапустіть службу gdm:

sudo systemctl restart gdm

Встановлення та налаштування x11vnc

Увімкніть репозиторій EPEL:

sudo dnf install epel-release

Створіть пароль для x11vnc:

x11vnc -storepasswd ~/.x11vnc.pwd

Створіть новий файл за допомогою обраного вами текстового редактора. Це буде використано для створення служби для запуску x11vnc:

sudo vim /etc/systemd/system/x11vnc.service

Скопіюйте та вставте наступний текст у файл, потім напишіть і вийдіть:

Примітка

Замініть шлях `rfbauth` шляхом до файлу паролів, який ви створили раніше. Також замініть значення `User` і `Group` на користувача, якому ви збираєтеся надавати віддалену підтримку.
[Unit]
Description=Start x11vnc at startup
After=display-manager.service

[Service]
Type=simple
Environment=DISPLAY=:1
Environment=XAUTHORITY=/run/user/1000/gdm/Xauthority
ExecStart=/usr/bin/x11vnc -auth /var/lib/gdm/.Xauthority -forever -loop -noxdamage -repeat -rfbauth /home/server/.x11vnc.pwd -rfbport 5900 -shared
User=server
Group=server

[Install]
WantedBy=multi-user.target

Увімкніть і запустіть службу x11vnc:

sudo systemctl enable --now x11vnc.service

Підключення до сервера VNC з робочої станції Rocky

Встановіть репозиторій EPEL

sudo dnf install epel-release

Встановіть клієнт VNC

Встановіть TigerVNC. Сервер не використовується, але ви будете використовувати клієнта:

sudo dnf install tigervnc

Створіть тунель SSH

The ssh command in a terminal window

Створіть тунель SSH для безпечного підключення до сервера VNC:

ssh -L 5900:localhost:5900 REMOTEIP

Запустіть програму перегляду VNC

Відкрийте засіб перегляду VNC за допомогою такої команди:

vncviewer

TigerVNC viewer

Підключіться до сервера VNC, ввівши 127.0.0.1 або localhost у TigerVNC і підключіться.

TigerVNC viewer password prompt

Введіть пароль x11vnc, який ви створили раніше.

TigerVNC viewer connected to an X session

Вітаємо! Тепер ви можете віддалено керувати робочим столом!

Підключення до машини через Інтернет

Поки що ця стаття показала вам, як налаштувати сервер x11vnc і підключитися до нього за допомогою VNC, що пересилається через тунель SSH. Здавалося б, очевидна, але все ж важлива деталь, про яку слід знати, полягає в тому, що цей метод працюватиме лише для комп’ютерів, підключених до мережі. Припустимо, ви хочете підключитися до комп’ютера в іншій локальній мережі. Спосіб досягти цього — налаштувати VPN. Нижче наведено кілька посібників щодо налаштування VPN:

Висновок

Вітаємо! Ви успішно налаштували сервер x11vnc і підключилися до нього за допомогою клієнта TigerVNC. Це рішення ідеально підходить для віддаленої підтримки, оскільки воно використовує той самий сеанс X, що й користувач, що забезпечує безперебійну підтримку.

Author: Joseph Brinkman

Contributors: Steven Spencer, Ganna Zhyrnova