Linux перезапуск службы vnc

Обновлено: 03.07.2024

В операционной системе linux, так же как и в Windows, кроме обычных программ, которые могут взаимодействовать с пользователем есть еще один вид программ. Это работающие в фоне службы. Важность служб тяжело переоценить, они следят за состоянием системы, обеспечивают автоматическое подключение внешних устройств и сети, позволяют процессам взаимодействовать с оборудованием (dbus), а также в виде служб реализованы различные веб-серверы и серверы баз данных. В отличие от пользовательских программ, службы выполняются в фоне, и пользователь не имеет к ним прямого доступа. Пользователь еще не вошел в систему, только началась загрузка а основные службы уже запущенны и работают.

В этой статье мы рассмотрим управление службами Linux. Мы не будем трогать уже устаревшие системы, такие как SysVinit, сосредоточимся только на Systemd. Вы узнаете, как посмотреть запущенные службы linux, а также останавливать и запускать их самому.

Немного теории

Но потом на смену этому методу пришла новая модель и система инициализации systemd. Система инициализации запускается сразу после загрузки ядра и начинает инициализировать службы, теперь появилась возможность параллельной инициализации, а также зависимостей между службами. Таким образом, теперь можно определить сложное дерево порядка запуска служб. Но мы не будем вникать в подробности создания служб, нас интересует только сам процесс запуска. После запуска systemd собирает весь вывод службы в лог, и следит за ее работой, если служба аварийно завершилась, то автоматически ее перезапускает.

Служба в Systemd описывается файлом юнита, в нем описано что с ней нужно делать и как себя вести. Существуют такие типы служб:

  • service - обычная служба, программа
  • target - группа служб
  • automount - точка автоматического монтирования
  • device - файл устройства, генерируется на этапе загрузки
  • mount - точка монтирования
  • path - файл или папка
  • scope - процесс
  • slice - группа системных служб systemd
  • snapshot - сохраненное состояние запущенных служб
  • socket - сокет для взаимодействия между процессами.

Нас будут интересовать только service, и совсем немного target, но мы рассмотрели все остальные, чтобы вы смогли взглянуть на картину немного шире. Основы рассмотрели, теперь будет настройка служб LInux.

Утилита systemctl

В Systemd есть специальный инструмент для управления службами в Linux - systemctl. Эта утилита позволяет делать очень много вещей, начиная от перезапуска службы linux и проверки ее состояния, до анализа эффективности загрузки службы. Синтаксис у утилиты такой:

$ systemctl опции команда служба служба.

Опции настраивают поведение программы, подробность вывода, команда - указывает что нужно сделать со службой, а служба, это та самая служба, которой мы собираемся управлять. В некоторых случаях утилита может использоваться без указания команды и службы.

Рассмотрим все по порядку. Опции очень сильно зависят от команд, поэтому рассмотрим их позже, а пока пройдемся по командах:

А теперь основные опции:

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

Управление службами Linux

Теперь, когда вы уже знаете все основы, команды и параметры можно переходить к делу. Со всеми остальными тонкостями разберемся по пути. Сначала давайте посмотрим запущенные службы linux. Нас будут интересовать только программы, а не все эти дополнительные компоненты, поэтому воспользуемся опцией type:

systemctl list-units --type service

services

Команда отобразила все службы, которые известны systemd, они сейчас запущены или были запущены. Программа не пересматривает все файлы, поэтому будут показаны только те службы, к которым уже обращались. Состояние loaded - означает, что конфигурационный файл был успешно загружен, следующая колонка active - служба была запущена, а running или exited значит выполняется ли сейчас служба или она успешно завершила свою работу. Листать список можно кнопками вверх/вниз.

Следующая команда позволяет получить список служб linux, в который входят все службы, даже не запущенные, те, которые не запускались, но известны systemd, но это еще не все службы в системе:

systemctl list-units --type service -all

services1

Дальше больше. Вы можете отсортировать список служб systemctl по состоянию. Например, только выполняющиеся:

systemctl list-units --type service --state running

services2

Или те, которые завершились с ошибкой:

systemctl list-units --type service --state failed

service4

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

Теперь отфильтруем только службы linux:

systemctl list-unit-files --type service

Здесь вы тоже можете использовать фильтры по состоянию. Теперь вы знаете как посмотреть запущенные службы linux, идем дальше.

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

sudo systemctl start application.service

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

Остановить службу linux можно командой:

sudo systemctl stop application

Посмотреть состояние службы позволяет команда status:

sudo systemctl status application

services4

Здесь вы можете видеть, состояние running, exited, dead, failed и т д. А также несколько последних строчек вывода программы, которые очень помогут решить проблему с запуском если она возникнет.

Автозагрузка служб в systemd

Как вы знаете, systemd позволяет автоматически загружать службы при запуске системы по мере их надобности. Команда list-unit-files показывает добавлена ли служба в автозагрузку.

Вообще, здесь может быть несколько состояний - enabled - в автозагрузке, disabled - автозагрузка отключена, masked - служба скрыта и static - значит что служба в автозагрузке, но вы не можете ее отключить.

Поэтому чтобы получить список служб linux, запускаемых автоматически достаточно отфильтровать ее вывод по состоянию:

systemctl list-unit-files --state enabled

services5

services6

Все службы, запускаемые по умолчанию. Можете также посмотреть службы static. Чтобы добавить службу в автозагрузку linux используйте команду enable:

sudo systemctl enable application

services7

А для того чтобы убрать ее из автозагрузки:

sudo systemctl disable applciation

services8

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

sudo systemctl is-enabled application

services9

Утилита просто выведет состояние enabled, disabled или static.

Выводы

Теперь настройка служб Linux не вызовет у вас проблем. Много чего мы упустили, systemd - очень большая, сложная и многофункциональная система, которую не охватить в одной статье. Но и также очень сложно понять. Но я думаю, что все, что касается управления службами Linux мы разобрали. Если у вас остались вопросы, спрашивайте в комментариях!

Команда Linux: настройка и использование службы VNC

Установите и настройте службу VNC, чтобы вы могли управлять хостом Linux и управлять им через графический интерфейс:

В настоящее время более популярные методы: программа XDM (X display manager) и программа VNC, я лично считаю, что программа VNC более удобна;

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

Рабочий стол linux избавляет от необходимости устанавливать клиента.

Предварительная подготовка к установке и настройке VNC, сервера RedHat Linux, затем введите конкретные инструкции по настройке:

1. Подтвердите и установите VNC SERVER.

1. Сначала убедитесь, что сервер установлен и настроен с VNC-сервером, что можно проверить с помощью команд;

2. Если VNC SERVER не установлен, системный компакт-диск RedHad поставляется с установочным пакетом, а исходный код yum с компакт-диска конфигурации можно установить напрямую.

Loaded plugins: rhnplugin, security

Installing : vnc 1/1

Установка завершена, запускаем службу VNC!

Во-вторых, начните настраивать VNC SERVER

Starting applications specified in /root/.vnc/xstartup

Подключитесь к текущему VNCserver через программное обеспечение VNC удаленного клиента Windows

wKiom1joT6iihqEuAAGD0hogug0245.jpg

wKiom1joT6jRVqtXAAER6hOlzTc761.jpg

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

Программе необходимо передать следующие настройки:

wKiom1joUS3Rpz-2AAJZTh6g2Xo743.jpg

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

После завершения работы перезапустите службу vncserver.

Сначала проверьте запущенные процессы службы vnc:

Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ

Путем проверки выяснилось, что запущены 2 процесса vnc, и эти 2 запущенных процесса vnc необходимо завершить:

Killing Xvnc process ID 4289

Killing Xvnc process ID 4338

Starting applications specified in /root/.vnc/xstartup

Пройдите тест удаленного подключения Windows еще раз, исправен ли рабочий стол:

wKiom1joVhLwuVa-AAjH3Y4DRew771.jpg

На этом настройка сервера VNC server завершена.

Ниже приведена дополнительная конфигурация на стороне сервера vnc:

1. Установите информацию о пользователе и разрешение; (действует постоянно)

Отредактируйте документ конфигурации vncserver:

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

3. Подключение и использование клиента;

1. Метод доступа

A. В Linux просто запустите команду vncviewer, и формат адреса сервера будет иметь вид 10.109.134.249:1. В системах Linux, использующих команду vncviewer, должно быть установлено приложение vnc, иначе его нельзя будет использовать

B. Под Windows просто запустите версию программы vnc для Windows.

2. Измените пароль.
Просто запустите vncpasswd

4, настройка стабильности
vncserver по умолчанию, когда несколько клиентов подключаются к одному и тому же порту дисплея vncserver, порт vncserver - старое подключение, но для новой службы подключения вы можете отклонить новый запрос подключения с помощью -dontdisconnect и сохранить старое подключение .

6, перезапустите службу
service vncserver restart

vncserver Запустить vncserver

7. Разрешить VNCSERVER запускаться автоматически при запуске системы.
Используйте соединение VNC для входа в графический интерфейс RedHat Linux, нажмите «Система» - «Управление» - «Настройки сервера» - «Службы» и найдите VNCSERVER в «Фоновых службах». Отметьте это и нажмите "Сохранить".



Да, отчего-то не все клиенты хотят работать в таком удобном и черном терминале, панель полностью не удовлетворяет их эстетические потребности, и вообще — «где мой такой любимый и удобный VNC?».
вопрос привычки и вкуса

В данной статье будет рассмотрен пример установки и настройки VNC server и графической оболочки (GUI) на примере OC Debian 8 jessie.


Вводная: на руках имеется чистый Debian 8 и жгучее желание получить на выходе защищенный vnc-доступ к серверу.

Приступим

Обновим список доступных пакетов.

Если система свежеустановленная — стоит обновиться.

(!)Бездумно запускать данную команду не на свежеустановленном сервере не стоит, чревато сломанными зависимостями и перспективой работы напильником.

Устанавливаем Xfce и VNC server (любители GNOME, KDE, LXDE, etc. устанавливают оболочку по своему вкусу).

Создаем пользователя от которого будем запускать vnc сервер.

Устанавливаем sudo (в Debian данный пакет не установлен по умолчанию).

Добавляем пользователя vnc в группу sudo.

Переходим под пользователя vnc.

Запускаем vnc сервер.

Если это первый запуск vnc сервера, будет создан конфиг файл и запрошены некоторые параметры:

по умолчанию порт vnc сервера будет 5901, порт каждого следующего дисплея будет увеличиваться на 1 (5902,5903. ).

Проверить запущен ли VNC сервер и на каком порту слушает можно следующей командой.

Убить конкретный дисплей можно так:

:1 — какой дисплей нужно убить.

Создание скрипта автостарта vnc сервера.

Сначала убьем запущенный дисплей :1 (если он запущен).

создаем скрипт запуска

Добавляем следующие строки в файл:


если требуется — в скрипте можно изменить глубину цвета или разрешение экрана.

Делаем файл исполняемым.

использование созданного нами скрипта:

Теперь нужно позаботиться о том, чтобы настроенный нами vnc стартовал после загрузки сервера (запланированной и не очень).
Для этого создаем файл по следующему пути.


Добавляем следующий текст в файл:

[Unit] — указываем описание скрипта (так же можно указать требуемые зависимости и порядок запуска при загрузке).
[Service] — указываем какими командами запускать сервис, под каким пользователем, и тип сервиса.
[Install] — указываем на каком уровне должен запускаться скрипт (runlevel 3 — многопользовательский режим без графики).

Включаем юнит в автозагрузку при старте системы.


Смотрим статус созданного нами юнита.


Дергаем systemd для поиска новых или измененных юнитов.

Шифрование трафика

Голый VNC не шифрует трафик, и оставлять его в таком виде не стоит.
Кроме того, если на Ваш IP выйдут боты из Китая и начнут стучатся по портам, даже если пароль установлен действительно качественный (учтите, что пароль на vnc сессию ограничен 8 символами) и его не взломают, попасть на сервер посредством VNC будет затруднительно, из-за постоянной ошибки на количество неверных попыток авторизации.

Using password file /home/vnc/.vnc/passwd

Warning: password truncated to the length of 8.

Would you like to enter a view-only password (y/n)? n


Пускаем VNC поверх SSH:


Теперь для подключения к серверу сначала нужно создать тунель.

Под *nix:

Теперь возможно подключение посредством vnc клиента, указав вместо IP удаленного сервера localhost и порт на котором слушает vnc-server.

При использовании Windows и putty агента:

После запуска putty переходим Connection -> SSH -> Tunnels.
В поле Source Port вбиваем порт на котором слушает VNC сервер — 5901, в поле Destination вписываем — localhost:5901 и жмем кнопку Add.
должно получиться как на картинке.



Теперь возвращаемся на вкладку Session вписываем IP сервера и порт 22 (тут же можно и сохранить конфигурацию подключения), жмем Open.


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

Установим и настроим fail2ban.
По умолчанию защита от брутфорса для SSH включена, что нам собственно и требуется.
при превышении заданного числа неудачных вводов пароля подряд (по умолчанию — 6) бан IP, с которого были попытки подбора на заданное время (по умолчанию — 600 секунд).

Устанавливаем пакет из репозитория.

Основной интересующий нас файл настроек находится по пути /etc/fail2ban/jail.conf

Блок настроек для подключения по ssh:

ignoreip — IP адреса, которые не должны быть заблокированы. Можно задать список IP адресов разделённых пробелами, маску подсети, или имя DNS сервера.

bantime — время бана в секундах, по истечении которого IP адрес удаляется из списка заблокированных.

maxretry — количество подозрительных совпадений, после которых применяется правило. В контексте ssh — это число неудавшихся попыток логина, после которых происходит блокировка.

enabled — значение true указывает что данный jail активен, false выключает действие изолятора.

port — указывает на каком порту или портах запущен целевой сервис. Стандартный порт SSH сервера — 22, или его буквенное наименование — ssh.

filter — имя фильтра с регулярными выражениями, по которым идёт поиск «подозрительных совпадений» в журналах сервиса. Фильтру sshd соответствует файл /etc/fail2ban/filter.d/sshd.conf.

logpath — путь к файлу журнала, который программа Fail2ban будет обрабатывать с помощью заданного ранее фильтра. Вся история удачных и неудачных входов в систему, в том числе и по SSH, по умолчанию записывается в log файл /var/log/auth.log.

Дефолтная настройка удовлетворяет наши требования (6 неверных попыток авторизации по shh и IP летит в бан на 600 секунд), но я бы советовал добавить свой IP в доверенный список.
Обидно будет ждать почти два часа, в случае шестикратной ошибки ввода пароля со своего IP (шанс данного кейса отнюдь не нулевой).

Открываем конфиг файл.


В строке ignoreip = 127.0.0.1/8, адрес 127.0.0.1/8 заменяем на свой IP.

Выходим из редактора nano (ctrl+x, отвечаем y на вопрос сохранения внесенных изменений).

Перегружаем сервис для применения изменений в правилах.


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


И попытки подключения с данного адреса будут отбиваться сервером автоматически до истечения срока бана.

В этом руководстве описаны действия, необходимые для установки и настройки VNC-сервера в Ubuntu 18.04. Мы также покажем вам, как безопасно подключиться к серверу VNC через туннель SSH.

Подготовка

Прежде чем продолжить обучение, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo .

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

На большинстве серверов не установлена среда рабочего стола, поэтому мы начнем с установки облегченной среды рабочего стола.

В репозиториях Ubuntu доступно несколько окружений рабочего стола (DE). Мы будем устанавливать Xfce . Это быстрая, стабильная и легкая среда рабочего стола, что делает ее идеальной для использования на удаленном сервере.

Введите следующие команды для установки Xfce на ваш сервер:

В зависимости от вашей системы загрузка и установка пакетов Xfce может занять некоторое время.

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

Также в репозиториях Ubuntu доступно несколько различных серверов VNC, таких как TightVNC , TigerVNC и x11vnc . Каждый сервер VNC имеет свои сильные и слабые стороны с точки зрения скорости и безопасности.

Мы будем устанавливать TigerVNC. Это активно обслуживаемый высокопроизводительный сервер VNC.

Введите следующую команду, чтобы установить TigerVNC на свой сервер Ubuntu:

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

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

При первом vncserver команды vncserver она создает и сохраняет файл паролей в

/.vnc . Этот каталог будет создан, если он отсутствует.

Обратите внимание на :1 после имени хоста в выходных данных выше. Это указывает номер порта дисплея, на котором работает сервер vnc. В нашем случае сервер работает на TCP-порту 5901 (5900 + 1). Если вы создадите второй экземпляр с vncserver он будет работать на следующем свободном порту, например :2 , что означает, что сервер работает на порту 5902 (5900 + 2).

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

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

Теперь, когда на сервере установлены и Xfce, и TigerVNC, нам нужно настроить TigerVNC для использования Xfce. Для этого создайте следующий файл:

Сохраните и закройте файл. Приведенные выше команды будут автоматически выполняться при каждом запуске или перезапуске сервера TigerVNC.

/.vnc/xstartup также должен иметь разрешения на выполнение. Выполните следующую команду chmod чтобы убедиться, что разрешения верны:

Если вам нужно передать дополнительные параметры серверу VNC, создайте файл с именем config и добавьте по одному параметру в каждой строке. Вот пример:

Создание файла модуля Systemd

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

Откройте текстовый редактор, скопируйте и вставьте в него следующую конфигурацию. Обязательно измените имя пользователя в строке 7, чтобы оно соответствовало вашему имени пользователя.

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

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

Следующим шагом является включение файла модуля с помощью следующей команды:

Число 1 после знака @ определяет порт дисплея, на котором будет работать служба VNC. Это означает, что сервер VNC будет прослушивать порт 5901 , как мы обсуждали в предыдущем разделе.

Запустите службу VNC, выполнив:

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

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

Настроить SSH-туннелирование в Linux и macOS

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

Вам будет предложено ввести пароль пользователя.

Не забудьте заменить username и server_ip_address своим именем пользователя и IP-адресом вашего сервера.

Настроить SSH-туннелирование в Windows

Если вы используете Windows, вы можете настроить SSH-туннелирование с помощью SSH-клиента PuTTY .

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

В меню « Connection разверните SSH и выберите « Tunnels . Введите порт сервера VNC ( 5901 ) в поле Source Port и введите server_ip_address:5901 в поле Destination и нажмите кнопку Add , как показано на изображении ниже:

Вернитесь на страницу Session чтобы сохранить настройки, чтобы не вводить их каждый раз. На удаленном сервере выберите сохраненный сеанс и нажмите кнопку « Open .

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

Теперь, когда туннель SSH создан, пора открыть ваш Vncviewer и подключиться к VNC Server по адресу localhost:5901 .

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

Мы будем использовать TigerVNC. Откройте средство просмотра, введите localhost:5901 и нажмите кнопку « Connect .

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

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

Выводы

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

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

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

Из этого руководства вы узнаете, как настраивать сервер VNC на сервере Ubuntu 18.04 и безопасно подключаться к нему через туннель SSH. Мы будем использовать TightVNC, быстрый и компактный пакет дистанционного управления. Благодаря этому наше соединение VNC будет стабильным и удобным даже при низкой скорости подключения к интернету.

Предварительные требования

Для завершения данного обучающего модуля вам потребуется:

  • Один сервер Ubuntu 18.04, настроенный в соответствии с руководством по начальной настройке сервера Ubuntu 18.04, включая пользователя sudo без прав root и брандмауэр.
  • Локальный компьютер с клиентом VNC, поддерживающий соединения VNC через туннели SSH.
    • В Windows вы можете использовать TightVNC, RealVNC или UltraVNC.
    • В macOS вы можете использовать встроенную программу Screen Sharing или кросс-платформенное приложение, например RealVNC.
    • В Linux вы можете использовать разные решения, в том числе vinagre, krdc, RealVNC или TightVNC.

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

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

    Обновите список пакетов на своем сервере:

    Установите на свой сервер среду рабочего стола Xfce:

    После завершения установки установите сервер TightVNC:

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

    Вам будет предложено ввести и подтвердить пароль для удаленного доступа к системе:

    Пароль должен иметь длину от 6 до 8 символов. Пароли длиной более 8 символов будут автоматически обрезаны.

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

    Затем процесс создает необходимые файлы конфигурации по умолчанию и данные подключения для сервера:

    Теперь настроим сервер VNC.

    Шаг 2 — Настройка сервера VNC

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

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

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

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

    Результат должен выглядеть следующим образом, хотя вы увидите другой PID:

    Прежде чем изменять файл xstartup , следует создать резервную копию исходного файла:

    Создайте новый файл xstartup и откройте его в текстовом редакторе:

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

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

    Чтобы сервер VNC мог использовать новый файл startup, нужно сделать его исполняемым.

    Перезапустите сервер VNC.

    Результат будет выглядеть примерно так:

    Завершив настройку, подключимся к серверу с локального компьютера.

    Шаг 3 — Безопасная настройка рабочего стола VNC

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

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

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

    Не забудьте заменить sammy и your_server_ip именем пользователя sudo без привилегий root и IP-адресом вашего сервера.

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

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

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

    Подключение VNC к серверу Ubuntu 18.04

    Для доступа к файлам в каталоге home вы можете использовать менеджер файлов или командную строку, как показано здесь:

    Файлы через соединение VNC в Ubuntu 18.04

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

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

    Шаг 4 — Запуск VNC в качестве системной службы

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

    Создайте новый файл блока с именем /etc/systemd/system/vncserver@.service в своем любимом текстовом редакторе:

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

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

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

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

    Затем сообщите системе о новом файле блока.

    Активируйте файл блока.

    Цифра 1 после символа @ указывает, на каком дисплее должна появляться служба. В данном случае это значение по умолчанию :1 , как говорилось на шаге 2.

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

    Запустите его, как любую другую системную службу.

    Вы можете проверить запуск с помощью следующей команды:

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

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

    Запустите туннель SSH еще раз:

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

    Заключение

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

    Читайте также: