Вход в многопользовательскую систему через VNC. Удалённое управление компьютером. Настройка UltraVnc

Для установки нам потребуется сервер или удаленный компьютер, локальный компьютер с клиентом VNC с поддержкой соединения через SSH тунель. Пользователям Windows мы рекомендуем RealVNC, UltraVNC или TightVNC. В Mac OS можно использовать стандартную утилиту Screen Sharing, или же в app store установить другие VNC приложения. Пользователи Linux имеют более широкий выбор программ, таких как krdc, vinagre, TightVNC, RealVNC, Remmina и др.

Установка Desktop Environment и сервера VNC

По умолчанию образы Ubuntu 16.04 не имеют графической оболочки рабочего стола и сервера VNC, которые нужно устанавливать дополнительно. Для начала установим пакеты последней версии среды рабочего стола Xfce и пакет TightVNC из репозиториев Ubuntu.

На заказанном сервере установите пакеты Xfce и TightVNC.

$ sudo apt install xfce4 xfce4-goodies tightvncserver

Для завершения первичной настройки VNC сервера после его установки воспользуйтесь командой vncserver для установки надёжного пароля.

$ vncserver

Будет предложено ввести и подтвердить пароль, а также указать пароль для просмотра. Пользователи, использующие пароль для просмотра, не смогут ничего делать клавиатурой и мышью на машине с VNC. Это может быть полезно для демонстрации чего-либо на вашем VNC сервере другим людям.

Выполнение vncserver завершает установки VNC созданием файлов конфигурации по умолчанию, а также созданием информации для соединения с нашим сервером. После установки этих пакетов можно настраивать сервер.

Настройка сервера VNC

Сначала укажем команды, которые сервер VNC должен выполнять при запуске. Эти команды задаются в конфигурационном файле xstartup в поддиректории .vnc вашей домашней директории. Скрипт запуска был создан во время выполнения команды vncserver на предыдущем шаге, сейчас мы изменим некоторые команды для работы с Xfce.

При первом запуске VNC запускает инстанс сервера по умолчанию на порту 5901. Этот порт называется портом отображения (display port), и в VNC он имеет обозначение:1. VNC может запускать много инстансов на других портах, например, :2, :3, и так далее. При работе с серверами VNC помните, что порт отображения с номером:X работает на порту 5900 X.

Поскольку мы собираемся внести изменения в конфигурацию сервера VNC, сначала нам необходимо остановить инстанс сервера, работающего на порту 5901.

$ vncserver -kill:1

Вывод должен выглядеть похожим образом с точностью до идентификатора процесса (process ID):

Вывод
Killing Xtightvnc process ID 17648

Перед внесением изменений в новый файл xstartup, сделаем резервную копию исходного файла.

$ mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

Теперь создадим новый файл xstartup используя nano или другой текстовый редактор.

$ nano ~/.vnc/xstartup

Вставьте эти команды в файл для автоматического их выполнения при запуске или перезапуске сервера VNC, затем сохраните и закройте файл.

~/.vnc/xstartup
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &

Первая команда файла xrdb $HOME/.Xresources сообщает фреймворку графического интерфейса пользователя VNC, что необходимо использовать пользовательский файл.Xresources. Файл .Xresources сохраняет определённые пользовательские настройки рабочего стола, например, цвета терминала, тему курсора, рендеринг шрифтов. Вторая команда предписывает серверу запустить Xfce, который и позволяет вам комфортно управлять вашим сервером.

Для того, чтобы сервер VNC мог использовать эти настройки, сделаем файл исполняемым.

$ sudo chmod x ~/.vnc/xstartup

Теперь перезапустим сервер VNC.

$ vncserver

Сервер должен перезапуститься и вывести нечто похожее в консоль:

Вывод
New "X" desktop is your_server_name.com:1
Starting applications specified in /home/sammy/.vnc/xstartup
Log file is /home/sammy/.vnc/liniverse.com:1.log

Тестирование рабочего стола VNC

Сперва создадим SSH соединение на локальной машине для установки безопасного соединения с VNC. Вы можете сделать это с помощью терминала на Linux или OS X следующей командой. Не забудьте заменить username и server_ip_address на имя своего пользователя с правами sudo и IP адрес вашего сервера.

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

Если вы используете графический клиент SSH, например, PuTTY, задайте server_ip_address в качестве IP адреса соединения, а также установите localhost:5901 в качестве пробрасываемого порта в настройках соединения SSH своего клиента.

Далее вы можете использовать свой клиент VNC для установки соединения с сервером VNC на localhost:5901 . Вам будет предложено аутентифицироваться. Используйте пароль, заданный вами на первом шаге.

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

Теперь вы имеете полный доуступ к управлению сервером и файлам в вашей домашней директории.

Создание файла сервиса VNC

Сначала создадим юнит-файл /etc/systemd/system/ с помощью вашего текстового редактора:

$ sudo nano /etc/systemd/system/

Скопируйте и вставьте в него следующее содержимое. Убедитесь, что вы изменили значение поля User и имя пользователя в поле PIDFILE на ваши значения.

$ /etc/systemd/system/

Description=Start TightVNC server at startup
After=syslog.target network.target


Type=forking
User=sammy
PAMName=login
PIDFile=/home/sammy/.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


WantedBy=multi-user.target

$ sudo systemctl daemon-reload

Активируем юнит-файл.

$ sudo systemctl enable

Остановим текущий инстанс сервера VNC, если он запущен.

$ sudo systemctl start

Убедимся, что сервис запущен, этой командой:

$ sudo systemctl status >

Если запуск прошёл корректно, вывод должен выглядеть похожим образом:

Название Вывод
This email address is being protected from spambots. You need JavaScript enabled to view it. - TightVNC server on Ubuntu 16.04
Loaded: loaded (/etc/systemd/system/ ; enabled; vendor preset: enabled)
Active: active (running) since Mon 2016-04-25 03:21:34 EDT; 6s ago
Process: 2924 ExecStop=/usr/bin/vncserver -kill:%i (code=exited, status=0/SUCCESS) ... systemd: Starting TightVNC server on Ubuntu 16.04...
systemd: pam_unix(login:session): session opened for user finid by (uid=0)
systemd: Started TightVNC server on Ubuntu 16.04.

Готово! Вы смогли установить и настроить сервер VNC на вашем сервере с Ubuntu 16.04. Отныне Вы можете управлять файлами, программным обеспечением и настройками с помощью привычного графического интерфейса.

Недавно встала задача настроить удалённый доступ по VNC к рабочему столу Ubuntu, и ничто не предвещало беды, т.к. в последних версиях Ubuntu есть встроенный VNC-сервер Vino, который прекрасно работает. Но на Ubuntu 14.04 почему-то работать он отказался, подключение заканчивалось ошибкой » no supported authentication methods!», и никакие манипуляции с настройками проблему не решили. Чтобы не тратить время зря, я решил воспользоваться альтернативным VNC-сервером — X11vnc. Давайте разберёмся, как его настроить.

Установка и настройка X11vnc на Ubuntu 14.04

Первым делом давайте удалим Vino, всё равно корректной работы от него добиться не удаётся, да и в функциональности X11vnc он несколько проигрывает.

Удалим Vine

Для этого открываем терминал и вводим:

Sudo apt-get remove vino

По запросу вводим пароль администратора, подтверждаем удаление.

Теперь установим X11vnc (необходимо подключение к сети Интернет), всё очень просто — вводим в терминале команду:

Sudo apt-get install x11vnc

Подтверждаем установку пакета. Загрузка и установка займёт около одной минуты, ждём завершения.

Соглашаемся с записью пароля в файл

Теперь зададим пароль, который будет запрашиваться при подключении по VNC. Для этого вводим:

X11vnc -storepasswd

Вводим пароль два раза, после соглашаемся на запись в файл. Пароль будет сохранён в файл /home/USER/.vnc/passwd (где «USER» — имя пользователя, под которым мы совершаем настройку, у меня, например, пользователь именуется «test»).

В общем-то уже можно пользоваться, но это будет не слишком удобно по нескольким причинам:

  • X11vnc не будет запускаться при загрузке системы, это не удобно, так как каждый раз для удалённого подключения придется вручную запускать VNC сервер, а это иногда просто не возможно.
  • Если за удалённым компьютером не зарезервирован IP-адрес, то будет непонятно, куда подключаться (или пробрасывать порт), и каждый раз перед подключением нам каким-то образом придётся узнавать IP-адрес удалённого компьютера.

Давайте решим данные проблемы.

Автозагрузка X11vnc на Ubuntu

Тут всё тоже очень просто. Первым делом с помощью встроенного текстового редактора Gedit создадим файл /etc/init/x11vnc.conf, для этого в терминале вводим:

Sudo gedit /etc/init/x11vnc.conf

По запросу вводим пароль администратора. Откроется текстовый редактор, в тело открытого файла пишем:

Start on login-session-start script x11vnc -dontdisconnect -display:0 -auth /var/run/lightdm/root/:0 -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg -o /var/log/x11vnc.log -rfbauth /home/USER/.vnc/passwd end script

В предпоследней строчке вместо «USER» необходимо указать имя пользователя, под которым выполнялась настройка, у меня это «test».

Теперь при включении удалённого компьютера X11vnc будет включаться автоматически. Что важно — запуск сервера будет происходить до авторизации пользователя.

Сетевые настройки для VNC

Теперь давайте разберёмся с IP-адресом.

Жмём на «стрелки»

Жмём на иконку передачи данных в правом верхнем углу экрана и в открывшемся списке выбираем «Изменить соединение».

Изменим способ настройки

В открывшемся окне выбираем используемое соеденение (у меня это «Проводное соединение 1») и правее жмём «Изменить».

В открывшемся окне переходим на вкладку «Параметры IPv4», выбираем из выпадающего списка способ настройки «Вручную».

Ниже жмём «Добавить» и прописываем сетевые настройки, которые соответствуют настройкам DHCP-сервера Вашего маршрутизатора (в столбце «Адреса» будет постоянный IP-адрес удалённого компьютера).

Когда все сетевые параметры вписаны, сохраняем

На этом настройка удалённого доступа на Ubuntu закончена — теперь при включении компьютера у нас автоматически запустится настроенный VNC-сервер, и мы сможем удалённо подключиться.

Подключение к удалённому компьютеру по VNC с Windows

Всё настроено, осталось только подключиться. Для этого нам понадобится VNC-клиент. Я использую UltraVNC Viewer (скачать можно прямо с официального сайта бесплатно — ссылка , зеркало — ссылка (v. 1.2.0.3)).

После загрузки запускаем *.exe файл и, следуя инструкциям установщика, инсталлируем программу. После завершения запускаем.

Указываем IP сервера

Настройки очень простые: в поле «VNC Server:» вписываем IP-адрес (который получает удалённый компьютер) и жмём «Connect». После будет запрошен пароль — вводим пароль и жмём «Log On».

Подключение произошло

Произойдёт подключение к удёлённому компьютеру, можно пользоваться 🙂

Почему не заработал Vino — остаётся загадкой.. С такими же настройками на прошлых версиях Ubuntu всё работало. Если кому-нибудь известна причина — пишите в комментариях.

В статье рассказано о настройке возможности подключения к Ubuntu по удаленному рабочему столу (аналогично RDP в Windows). Примеры команд выполнены на Linux Ubuntu 18.04.

Установка и настройка VNC сервера

Рассмотрим два варианта использования графической оболочки — xfce и gnome.

Если используется брандмауэр, добавляем правило:

iptables -A INPUT -p tcp --dport 5901 -j ACCEPT

* в данном примере, мы разрешаем входящие соединения на порту 5901 . Для работы с несколькими портами, добавляем их по аналогии.

XFCE

Установка

apt install xfce4 xfce4-goodies tightvncserver

y n ).

Настройка

vncserver -kill:1

* экземпляр :1

Настраиваем VNC сервер:

vi ~/.vnc/xstartup

#!/bin/bash
xrdb $HOME/.Xresources
startxfce4

Снова запускаем vncserver:

Gnome

Установка

Установку выполняем следующей командой:

apt install ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal vnc4server

Задаем пароль для доступа по удаленному рабочему столу. Для этого вводим команду:

На запрос пароля вводим его дважды. После будет предложено ввод пароля для гостевого доступа — можно согласиться (y ) и ввести пароль или отказаться (n ).

Настройка

Для начала, останавливаем экземпляр VNC сервера:

vncserver -kill:1

* экземпляр :1 , по умолчанию, слушает на порту 5900+1 (5901).

Настраиваем VNC сервер для текущего пользователя:

vi ~/.vnc/xstartup

#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &

Gnome-panel &
gnome-settings-daemon &
metacity &

Снова запускаем vncserver:

Подключаемся к удаленному рабочему столу

Запускаем клиент VNC. Например, в Linux — Remmina, в Windows — TightVNC Viewer или RealVNC . Вводим IP-адрес компьютера с VNC и номер порта:

Будет запрошен пароль — вводим тот, что устанавливали при настройке.

Автозапуск сервиса

Чтобы VNC сервер запускался после перезагрузки, создаем новый юнит в systemd:

vi /etc/systemd/system/vncserver.service


Description=VNC server
After=syslog.target network.target


Type=forking
User=root
PAMName=login
PIDFile=/root/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill:1 > /dev/null 2>&1
ExecStart=/usr/bin/vncserver
ExecStop=/usr/bin/vncserver -kill:1


WantedBy=multi-user.target

Обновляем systemd:

systemctl daemon-reload

Разрешаем автозапуск сервиса.

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

Данный мануал поможет установить VNC на виртуальный выделенный сервер Ubuntu 16.04 и настроить безопасное подключение при помощи SSH-туннеля. Сервер VNC будет использовать TightVNC , быстрый и легковесный пакет удалённого управления, поддерживающий работу даже при медленном интернете.

Требования

  • Сервер Ubuntu 18.04, настроенный по .
  • Локальный компьютер с предустановленным клиентом VNC, который поддерживает VNC-соединения через SSH-туннель. Пользователи Windows могут установить TightVNC , RealVNC или UltraVNC . Пользователи Mac OS X могут обратиться к встроенному пакету Screen Sharing или использовать кроссплатформенные приложения (например, RealVNC). Пользователи Linux могут выбрать vinagre, krdc, RealVNC , TightVNC и т.п.

1: Установка среды рабочего стола и сервера VNC

По умолчанию серверы Ubuntu 18.04 поставляются без предустановленного графического окружения рабочего стола и сервера VNC. Потому сначала нужно установить эти компоненты. В данном мануале используются пакеты Xfce и TightVNC, доступные в официальном репозитории Ubuntu.

Чтобы установить на сервер указанные пакеты, обновите индекс и введите команду:

sudo apt update
sudo apt install xfce4 xfce4-goodies

Теперь установите TightVNC:

sudo apt install tightvncserver

Чтобы завершить начальную настройку сервера VNC после его установки и выбрать надёжный пароль, используйте команду vncserver.

Команда предложит выбрать и подтвердить пароль:

You will require a password to access your desktops.
Password:
Verify:

Пароль должен быть длинной от шести до восьми символов. Более длинные пароли будут автоматически сокращены до 8 символов.

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

Затем процесс завершит начальную настройку VNC и создаст конфигурационные файлы.

Would you like to enter a view-only password (y/n)? n
xauth: file /home/8host/.Xauthority does not exist
New "X" desktop is your_hostname:1
Creating default startup script /home/8host/.vnc/xstartup

2: Настройка сервера VNC

Сначала нужно определить команды, которые сервер VNC будет выполнять при запуске. Эти команды должны находиться в файле xstartup в каталоге.vnc, который хранится в домашнем каталоге текущего пользователя. Сценарий запуска был создан командой vncserver, но его нужно откорректировать для взаимодействия с Xfce.

При первом запуске VNC использует порт 5901. VNC называет этот порт:1. VNC может запускать другие экземпляры на другие порты, которые будут называться:2, :3, и т.д.

Чтобы изменить настройки сервера VNC, нужно остановить экземпляр, использующий порт 5901.

vncserver -kill:1

Команда вернёт такое сообщение (PID будет отличаться):

Killing Xtightvnc process ID 17648

Создайте резервную копию файла xstartup:

mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

Затем создайте новый файл xstartup:

nano ~/.vnc/xstartup

Вставьте в него следующие команды, которые будут выполняться автоматически при запуске сервера VNC. Сохраните и закройте файл.

~/.vnc/xstartup
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &

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

Теперь нужно сделать файл исполняемым:

sudo chmod +x ~/.vnc/xstartup

Перезапустите VNC:

Во время запуска сервер вернёт:

New "X" desktop is your_hostname:1
Starting applications specified in /home/8host/.vnc/xstartup
Log file is /home/8host/.vnc/your_hostname:1.log

3: Безопасное подключение к VNC

При подключении VNC не использует безопасные протоколы. Создайте SSH-туннель для безопасного подключения к серверу, а затем настройте клиент VNC для поддержки туннеля вместо прямого подключения.

Создайте на локальном компьютере соединение SSH, которое перейдет в localhost соединение для VNC. Вы можете сделать это в Linux или macOS через терминал с помощью следующей команды:

Флаг -L указывает привязки портов. В этом случае мы привязываем порт 5901 удаленного подключения к порту 5901 на локальном компьютере. Флаг -C включает сжатие, а -N сообщает ssh, что выполнять удаленную команду не нужно. Параметр -l указывает имя удаленного входа.

Не забудьте заменить 8host и your_server_ip своими данными.

Если вы работаете через графический SSH-клиент, например PuTTY, используйте настройках SSH-туннеля your_server_ip в качестве IP-соединения и установите localhost: 5901 в качестве нового порта.

Когда туннель запустится, используйте VNC клиент для подключения к localhost:5901. При этом будет запрошен пароль, который вы выбрали в разделе 1.

После этого вы увидите стандартный экран Xfce.

Вы можете получить доступ к файлам в своем домашнем каталоге с помощью диспетчера файлов или из командной строки.

Нажмите CTRL + C в терминале, чтобы закрыть туннель SSH и вернуться в командную строку. Это также завершит ваш сеанс VNC.

4: Создание файла сервиса VNC

Теперь нужно настроить сервер VNC как сервис system.

Создайте новый юнит-файл /etc/systemd/system/[email protected]:

sudo nano /etc/systemd/system/[email protected]

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

Добавьте в файл следующие строки. Обязательно измените значение User, Group, WorkingDirectory и имя пользователя в значении PIDFILE.

/etc/systemd/system/[email protected]
Description=Start TightVNC server at startup
After=syslog.target network.target
Type=forking
User=8host
Group=8host
WorkingDirectory=/home/8host
PIDFile=/home/8host/.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
WantedBy=multi-user.target

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

Сохраните и закройте файл.

Затем дайте сообщите системе про новый юнит файл.

sudo systemctl daemon-reload

Включите его:

sudo systemctl enable [email protected]

Цифра 1, идущая за @, определяет, какой номер дисплея должен отображаться в сервисе, в этом случае это значение по умолчанию.

Остановите текущий экземпляр сервера VNC, если он еще запущен.

vncserver -kill:1

Теперь попробуйте запустить его как любой другой сервис systemd:

sudo systemctl start vncserver@1

Чтобы убедиться, что сервер запущен, проверьте его состояние:

sudo systemctl status vncserver@1

[email protected] — Start TightVNC server at startup

Loaded: loaded (/etc/systemd/system/[email protected]; indirect; vendor preset: enabled)
Active: active (running) since Mon 2018-07-09 18:13:53 UTC; 2min 14s ago
Process: 22322 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800:1 (code=exited, status=0/SUCCESS)
Process: 22316 ExecStartPre=/usr/bin/vncserver -kill:1 > /dev/null 2>&1 (code=exited, status=0/SUCCESS)
Main PID: 22330 (Xtightvnc)
...

Теперь сервис VNC добавлен в автозагрузку.

Снова запустите туннель SSH:

ssh -L 5901:127.0.0.1:5901 -C -N -l 8host your_server_ip

Создайте новое подключение с клиента VNC на localhost:5901, чтобы протестировать настройку.

Заключение

Теперь на сервере Ubuntu 18.04 установлен сервер VNC. С его помощью вы можете управлять файлами, программами и настройками удалённого сервера (например, удаленно запускать веб-браузер).

Tags: , |

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

Данное руководство поможет установить VNC на виртуальный выделенный сервер Ubuntu 16.04 и настроить безопасное подключение при помощи SSH-туннеля. Сервер VNC будет использовать TightVNC, быстрый и легковесный пакет удалённого управления, поддерживающий работу даже при медленном интернете.

Требования

  • Настроенный сервер Ubuntu 16.04 (для этого обратитесь к ).
  • Не-root пользователь с доступом к sudo.
  • Локальный компьютер с предустановленным клиентом VNC, который поддерживает VNC-соединения через SSH-туннель. Пользователи Windows могут установить TightVNC, RealVNC или UltraVNC. Пользователи Mac OS X могут обратиться к встроенному пакету Screen Sharing или использовать кроссплатформенные приложения (например, RealVNC). Пользователи Linux могут выбрать vinagre, krdc, RealVNC, TightVNC и т.п.

1: Установка среды рабочего стола и сервера VNC

По умолчанию серверы Ubuntu 16.04 поставляются без предустановленного графического окружения рабочего стола и сервера VNC. Потому сначала нужно установить эти компоненты. В данном руководстве используются пакеты Xfce и TightVNC, доступные в официальном репозитории Ubuntu.

Чтобы установить на сервер указанные пакеты, введите:

sudo apt install xfce4 xfce4-goodies tightvncserver

Чтобы завершить начальную настройку сервера VNC после его установки и выбрать надёжный пароль, используйте команду vncserver.

Команда предложит выбрать и подтвердить пароль, а также пароль для просмотра (опционально). Пользователи, получающие доступ к VNC при помощи пароля для просмотра, не смогут управлять VNC при помощи мыши или клавиатуры. Такой пароль позволяет вам демонстрировать VNC другим пользователям в случае необходимости.

Команда vncserver завершит начальную настройку VNC и создаст конфигурационные файлы.

2: Настройка сервера VNC

Сначала нужно определить команды, которые сервер VNC будет выполнять при запуске. Эти команды должны находиться в файле xstartup в каталоге.vnc, который хранится в домашнем каталоге текущего пользователя. Сценарий запуска был создан командой vncserver, но его нужно откорректировать для взаимодействия с Xfce.

При первом запуске VNC использует порт 5901. VNC называет этот порт:1. VNC может запускать другие экземпляры на другие порты, которые будут называться:2, :3, и т.д.

Чтобы изменить настройки сервера VNC, нужно остановить экземпляр, использующий порт 5901.

vncserver -kill:1

Команда вернёт такое сообщение (PID будет отличаться):

Killing Xtightvnc process ID 17648

Создайте резервную копию файла xstartup:

mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

Затем создайте новый файл xstartup:

nano ~/.vnc/xstartup

Вставьте в него следующие команды, которые будут выполняться автоматически при запуске сервера VNC. Сохраните и закройте файл.

~/.vnc/xstartup
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &

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

Теперь нужно передать права на файл:

sudo chmod +x ~/.vnc/xstartup

Перезапустите VNC:

Во время запуска сервер вернёт:

New "X" desktop is your_server_name.com:1
Starting applications specified in /home/8host/.vnc/xstartup
Log file is /home/8host/.vnc/liniverse.com:1.log

3: Тестирование рабочего стола VNC

Теперь нужно убедиться в том, что сервер VNC настроен правильно.

Создайте SSH-подключение на локальном компьютере, перенаправляемое на localhost сервера VNC. Для этого можно использовать терминал Linux или OS X.

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

Примечание : Вместо user и server_ip_address укажите имя пользователя с доступом к sudo и свой IP-адрес.

Если вы используете графический клиент SSH (например, PuTTY), используйте server_ip_address в качестве IP-адреса соединения, а затем укажите localhost:5901 в настройках туннеля SSH.

Теперь можно использовать клиент VNC для подключения к серверу. Для этого нужно пройти аутентификацию. Введите пароль, установленный в разделе 1.

После этого на экране появится стандартный рабочий стол Xfce.

Вы можете получить доступ к файлам домашнего каталога при помощи файлового менеджера или командной строки.

4: Создание файла сервиса VNC

Теперь нужно настроить сервер VNC как сервис system.

Создайте новый файл /etc/systemd/system/[email protected]:

sudo nano /etc/systemd/system/[email protected]

Скопируйте и вставьте в него следующий код:

/etc/systemd/system/[email protected]
Description=Start TightVNC server at startup
After=syslog.target network.target
Type=forking
User=8host
PAMName=login
PIDFile=/home/8host/.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
WantedBy=multi-user.target

Примечание : Укажите имя своего пользователя вместо 8host.

Сохраните и закройте файл.

Перезапустите демон:

sudo systemctl daemon-reload

Включите новый файл:

sudo systemctl enable [email protected]

Остановите текущий экземпляр сервера VNC, если он ещё запущен:

vncserver -kill:1

Теперь попробуйте запустить его как любой другой сервис systemd:

sudo systemctl start vncserver@1

Чтобы убедиться, что сервер запущен, проверьте его состояние:

sudo systemctl status vncserver@1

Если сервер запущен, команда вернёт:

[email protected] - TightVNC server on Ubuntu 16.04
Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: enabled)
Active: active (running) since Mon 2016-04-25 03:21:34 EDT; 6s ago
Process: 2924 ExecStop=/usr/bin/vncserver -kill:%i (code=exited, status=0/SUCCESS)
...
systemd: Starting TightVNC server on Ubuntu 16.04...

systemd: pam_unix(login:session): session opened for user finid by (uid=0)
systemd: Started TightVNC server on Ubuntu 16.04.

Заключение

Теперь на сервере Ubuntu 16.04 установлен защищённый сервер VNC. Его помощью можно управлять файлами, программами и настройками удалённого сервера.

Tags: ,

Понравилась статья? Поделиться с друзьями: