Инструменты пользователя

Инструменты сайта


миниталмуд

vnc server

Установка

Устанавливать будем на лысый debian 9.7
И так, после всех апдейтов и апгрейдов, установим Xfce из официального репозитория

apt install xfce4 xfce4-goodies

и пакеты tightvnc сервера

apt install tightvncserver

После завершения установки, нужно задать добрый пароль, для этого используем команду vncserver. После того, как мы введем добрый пароль, нам предложат создать пароль для просмотра. Пользователи, получающие доступ к vnc при помощи пароля для просмотра, не смогут управлять vnc через мышь или клавиатуру.

Настройка

Настройка ведется под обычным пользователем.

Определим команды, которые сервер vnc будет выполнять при запуске. Данные команды должны находиться в файле xstartup в каталоге .vnc, который хранится в домашнем каталоге текущего пользователя.
При первом запуске VNC использует порт 5901. VNC называет этот порт :1. VNC может запускать другие экземпляры на другие порты, которые будут называться :2, :3, и т.д.
Для того, чтобы изменить настройки сервера VNC, нужно остановить экземпляр, использующий порт 5901.

vncserver -kill :1
Killing Xtightvnc process ID 15679

Создадим новый файл xstartup и сделаем его исполняемым. В данной настройке, файл существовал, и я привел его к виду. Файл находится здесь - ~/.vnc/xstartup

#!/bin/bash
xrdb $HOME/.Xresources
# автоматически запускает терминал, при подключении к рабочему столу
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
startxfce4 &

При помощи команды, xrdb $HOME/.Xresources, GUI сервера vnc читает файл .Xresources. В файле .Xresources пользователь может вносить изменения в некоторые настройки графического рабочего стола (настраивать цвета терминала, темы курсора, шрифты). Вторая команда просто запускает xfce, в котором хранится все графическое программное обеспечение, необходимое для управления сервером.

Создание сервиса vnc

Создадим новый юнит-файл /etc/systemd/system/vncserver@.service. Символ @ в конце имени файла позволит передать аргумент, который можно использовать в конфигурации сервиса. С его помощью можно указать порт VNC, который нужно использовать при управлении сервисом

vim /etc/systemd/system/vncserver@.service

Накидаем в него следующие строки. Nota bene на поля: User, Group, WorkingDirectory и PIDFile. Их нужно изаменить на вашего пользователя.

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
 
[Service]
Type=forking
User=nevvad
Group=nevvad
WorkingDirectory=/home/nevvad
PIDFile=/home/8nevvad/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i
ExecStop=/usr/bin/vncserver -kill :%i
 
[Install]
WantedBy=multi-user.target

Команда ExecStartPre останавливает vnc, если сервис уже запущен. Команда ExecStart запускает vnc и установит глубину цвета – 24-битный цвет с разрешением 1280×800

Сообщим systemd, что существует новый юнит файл

systemctl daemon-reload

Далее включим сервис. Число 1, после знака @ определяет порт дисплея, на котором будет работать служба vnc. В данном случае это значение по умолчанию.

systemctl enable vncserver@1.service

На всяк случай прибьем текущий экземпляр vnc

vncserver -kill :1

Теперь попробуем стартануть сервис

systemctl start vncserver@1.service

Глянем на самочувствие пациента

systemctl status vncserver@1.service
● vncserver@1.service - Start TightVNC server at startup
   Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-08-06 11:56:15 MSK; 32s ago
  Process: 18434 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :1 (code=exited, status=0/SUCCESS)
  Process: 18428 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=0/SUCCESS)
 Main PID: 18445 (Xtightvnc)
    Tasks: 68 (limit: 4915)
   CGroup: /system.slice/system-vncserver.slice/vncserver@1.service
...

Подключение к vnc серверу

Клиенты linux

Тут все как два пальца об асфальт. Создаем ssh туннель и подключаемся любым vnc клиентом.

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

Клиенты windows

Для подключению к серверу, будем использовать TightVNC Viewer. Так как нативное обеспечение безопасности отсутствует, vnc не является зашифрованным протоколом и может подвергаться перехвату пакетов подключатся к vnc серверу будем через ssh туннель.

В pytty, топаем в Connections –> SSH –> Tunnels и создаем ssh туннель до vnc сервера

В VNC Viewer, в поле Remote host, указываем либо номер порта, либо номер дисплея

миниталмуд.txt · Последнее изменение: 2019/10/01 16:13 (внешнее изменение)