Ultravnc server configuration

Related

  • Tutorial

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

  • Tutorial

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

  • Tutorial

    Автор выбрал фонд Free Software Foundation для получения пожертвования в рамках программы Write for DOnations. ProxySQL — это прокси-сервер SQL, который можно располагать между вашим…

  • Tutorial
    Установка Tinc и настройка базового VPN в Ubuntu 18.04

    Tinc — демон виртуальной частной сети (VPN) с открытым исходным кодом, имеющий много полезных функций, включая шифрование, поддержку сжатия и автоматическую ячеистую маршрутизацию, позволяющую…

Зачем всё это…

Я очень часто пользуюсь UltraVNC – в основе своей это программка для организации удаленного управления компьютерами. Подключившись к другому компьютеру, всё выглядит так, будто мы сидим перед его монитором, двигаем мышкой и жмем клавиши на клавиатуре. Зачастую, это конечно не  так быстро и полноценно, как мы бы сидели непосредственно за ПК, но все-таки дает большие возможности нам в руки!

В обычной ситуации нам необходимо лишь установить viewer у себя, а server у того, кому мы хотим помогать, узнать IP-адрес и порт и подключиться! Но бывает, что попадаются некоторые преграды на нашем пути – различные фаерволы, роутеры, динамические IP-адреса и т.п., которые не дадут нам просто так взять и подключиться =( Можно конечно воспользоваться другими программками, которые позволяют с помощью промежуточных серверов организовать подключение, но ведь не всегда есть доступ до этих серверов, не всегда есть возможность воспользоваться другой программкой, ну и, наконец, нам нравится UltraVNC и отказываться от нее нет желания =) Способ есть, он конечно не панацея, но может помочь в трудной ситуации!

Буквально недавно на моей работе остро встал вопрос удаленного доступа до других компьютеров, некоторые из которых ну очень “удаленные” от нас =) Главной проблемой было то, что информация о многих подключениях устарела, какие-то подключения перестали работать по причине замены оборудования, отсутствия возможности пробросить порты и тому подобное. Глава отдела упомянул об обратных подключениях (Reverse Connections), которые, по идее, могла устанавливать программа UltraVNC. После недолгих копаний в help’е по UltraVNC, была обнаружена интересная возможность запускать viewer в режиме “слушания” порта (Port Listening), а у server’а нам в помощь пришел пункт меню “Add New Client”! Всё это в связке позволило установить подключение, которое было инициировано не viewer’ом, а server’ом!

RealVNC

RealVNC — это программа с кодом, похожим на Vinagre.

Оба проекта основаны на одном и том же коде, но у RealVNC есть версии для многих других платформ, не только для Gnu / Linux, но и для других платформ, таких как MacOS или Windows, и аппаратных платформ, таких как Raspberry Pi.

RealVNC более сложен для начинающих пользователей.

Следовательно, RealVNC не присутствует во многих дистрибутивах предварительно установленным способом, и вам необходимо использовать репозитории или внешние пакеты.

Если вам нужны последняя версия, на официальном сайте вы можете найти ее бесплатно для вашей ОС.

Особенности выбора инсталляционного дистрибутива

Прежде чем приступать к установке, необходимо определиться с выбором модификации VNC-клиента, который предполагается установить. Во-первых, сама программа является кроссплатформенной, может инсталлироваться практически во все известные стационарные и мобильные операционные системы. Во-вторых, для тех же ОС Windows можно найти версии программы RealVNC, TightVNC, UltraVNC и облегченную модификацию UltraVNC SC (все версии совместимы между собой, однако некоторые функции могут оказаться недоступными), для Mac OS X – Chicken и JollysFastVNC. В-третьих, следует определиться с типом устанавливаемого клиента (серверная часть используется для организации подключения с центральной машины к дочерним терминалам, а клиентская – для подключения с дочерних машин к центральному серверу).

В-четвертых, непосредственно на официальном ресурсе разработчика можно выбрать предпочитаемый формат файла установщика VNC Viewer для Windows (EXE, MSI) или загрузить дистрибутив в виде запакованного архива ZIP. Последний пункт – по желанию пользователя.

Настройка VNC-сервера / клиента в Debian Stretch

Наша цель состоит в том, чтобы настроить базовую настройку VNC клиент / сервер в Debian 9 Stretch.Для установки VNC-сервера и клиентских пакетов может потребоваться привилегированный доступ к вашей системе Debian, а также полностью функциональный и настроенный X-сервер.

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

Давайте начнем с установки фактического пакета VNC-сервера vnc4server:

# apt install vnc4server

Установить пароль VNC

Далее мы собираемся установить пароль VNC для пользователя, который в конечном итоге создаст соединение VNC с удаленного клиента. Войдите в систему под своим именем пользователя su и установите новый пароль. В приведенном ниже примере мы установим новый пароль vnc для MYNAME пользователя (назовем к примеру так):

# su MYNAME 
$ vncpasswd 

Увидите вывод(выберите вариант ответа):

Создать скрипт xstartup

В зависимости от конфигурации вашей системы VNC может запустить менеджер окон по умолчанию. Это поведение может быть переопределено ~/.vnc/xstartup скриптом. Если ~/.vnc/xstartup не выходит, создайте его и включите следующий контент xterm

$ cat ~/.vnc/xstartup 
#!/bin/sh
xterm &

Начать сессию VNC

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

$ vncserver -localhost no -geometry 800x600 -depth 24 

Вывод

Обратите внимание, что опущенная -localhost no опция приведет к тому, что VNC-сервер будет прослушивать только петлевой интерфейс локального узла, поэтому любая попытка подключения из удаленного местоположения приведет к сообщению об ошибке:

Подтвердите сессию VNC

Убедитесь, что новый сеанс VNC запущен правильно:

$ vncserver -list

В качестве альтернативы вы также должны увидеть открытые порты VNC при запуске ss команды:

$ ss -ltp | grep vnc 

Клиент

На вашем удаленном клиенте сначала установите пакет просмотра VNC:

# apt install xvnc4viewer

Осталось только подключиться с помощью xvncviewer команды. На основании вышеприведенного vncserver -list вывода наша сессия VNC прослушивается на :1 рабочем столе. Мы используем эту информацию с комбинацией IP-адреса сервера, например. 10.1.1.124 установить новое удаленное VNC-соединение:

$ xvncviewer 10.1.1.124:1

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

Самый простой способ перезапустить сеанс VNC-сервера — убить текущий сеанс:

$ vncserver -list

с -kill опцией:

$ vncserver -kill :1

Как установить VNC-сервер

Сначала инсталлируем серверную часть на Ubuntu Server. Алгоритм следующий:

  1. Открываем терминал сочетанием клавиш Ctrl + Alt + T. Вводим команду:

    sudo apt install tigervnc-standalone-server tigervnc-common tigervnc-xorg-extension tigervnc-viewer

    Инсталляция займет 3-4 минуты.

  2. Следующий шагом проинсталлируем элемент xterm. Он является эмулятором терминала.

    sudo apat-get install xterm

  3. Инсталляция завершена. Перейдем к конфигурированию сервера. Прописываем в терминале команду vncserver:

    vncserver -xstartup /usr/bin/xterm

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

  4. Первичный запуск сервера состоялся, файлы конфигурации созданы. Теперь припишем необходимые параметры. Завершим процесс для получения доступа к настройкам.

    vncserver –kill :1

  5. Процесс завершен, конфигурационный файл не заблокирован. Откроем его через редактор vi.

    vi ~/.vnc/xstartup

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

Добавить строки

Теперь при подключении через VNC-приложение для клиента будет загружаться графическая оболочка Gnome.

Vinagre

Vinagre — это инструмент, интегрированный в дистрибутивы с рабочим столом Gnome.

Vinagre выполняет функции VNC на десктопе Gnome, хотя его можно изменить или удалить.

Он также есть в других рабочих столах, которые имеют мало общего с Gnome, например Ubuntu Unity.

Его конфигурация проста, хотя вы должны иметь определенные знания о сетях.

Чтобы использовать Vinegar, вам нужно только указать IP-адрес контролируемого оборудования и адрес шлюза.

В случае удаленного компьютера, он должен добавить IP-адрес вашего компьютера.

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

Для пользователей KDE и аналогичных сред, в которых используются библиотеки QT, опция, идентичная Vinegar, называется KRDC.

Это программа, которая устанавливается по умолчанию, также  как и Vinagre в Gnome и которая предлагает те же функции и фокусируется на пользователей того же типа, т.е. пользователи со знанием сетей.

Установка Xfce и TightVNC

Сначала устанавливаем пакет Xfce:

$ 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: пароль
Would you like to enter a view-only password (y/n)? n
xauth:  file /home/evgeniy/.Xauthority does not exist
New 'X' desktop is vnc-server:1
Creating default startup script /home/evgeniy/.vnc/xstartup
Starting applications specified in /home/evgeniy/.vnc/xstartup
Log file is /home/evgeniy/.vnc/vnc-server:1.log

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

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

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

Если используем XFCE

Установка

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

apt install xfce4 xfce4-goodies tightvncserver

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

vncserver

… на запрос пароля вводим его дважды.

* Если система не затребует второй раз пароль, проверьте внимательно сообщение. Сервер может выдать ошибку, если пароль будет короткий.

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

Настройка

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

vncserver -kill :1

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

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

vi ~/.vnc/xstartup

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

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

vncserver

Установка

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

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

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

vncserver

… на запрос пароля вводим его дважды.

* Если система не затребует второй раз пароль, проверьте внимательно сообщение. Сервер может выдать ошибку, если пароль будет короткий.

После будет предложено ввод пароля для гостевого доступа — можно согласиться (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 80×24+10+10 -ls -title «$VNCDESKTOP Desktop» &
x-window-manager &
gnome-panel &
gnome-settings-daemon &
metacity &

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

vncserver

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

При подключении VNC не использует безопасные протоколы. Давайте создадим SSH-туннель для безопасного подключения к серверу (для этого на машине с VNC-сервером должен быть установлен SSH-сервер):

$ ssh -L 5901:127.0.0.1:5901 evgeniy@192.168.110.13
evgeniy@192.168.110.13's password: пароль
Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 4.15.0-72-generic x86_64)

У меня возникло затруднение при попытке установить ssh-соединение с виртуальной машиной, на которой установлен VNC-сервер (и SSH-сервер):

$ ssh evgeniy@192.168.110.13
Connection reset by 192.168.110.13 port 22

Причина в том, что большинство дистрибутивов Linux создают ключи хоста во время установки OpenSSH-сервера. А эта виртуальная машина была клонирована с уже установленным SSH-сервером. Так что все ключи теперь недействительны. Исправить это просто — нужно удалить старые ключи хоста и сформировать их заново:

$ sudo rm /etc/ssh/ssh_host_* && sudo dpkg-reconfigure openssh-server

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

The authenticity of host 'XXX.XXX.XXX.XXX' can't be established.
Are you sure you want to continue connecting (yes/no)? yes

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

..........
error: could not load host key /etc/ssh/ssh_host_rsa_key
..........
error: could not load host key /etc/ssh/ssh_host_ecdsa_key
..........
error: could not load host key /etc/ssh/ssh_host_ed25519_key
..........
fatal: No supported key exchange algorithms 

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

При этом на машине с установленным VNC-сервером должен быть открыт 22-ой порт:

$ sudo ufw allow ssh

А вот держать открытыми порты 5901:5903 больше не нужно, так что закрываем:

$ sudo ufw delete allow 5901:5903/tcp

Поиск:
CLI • Linux • Ubuntu • Сервер • Клиент • Настройка • Конфигурация • VNC

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

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

Выбор VNC-сервера

Существует несколько программ VNC-сервера. (См. раздел ). Некоторые из наиболее популярных: TightVNC, TigerVNC и RealVNC. В этой статье в качестве примера используется TightVNC. К сожалению, детали конфигурации зависят как от сервера, так и от дистрибутива, поэтому приведенные здесь инструкции нужно будет адаптировать к своему программному обеспечению.

Установка xinetd

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

Может также потребоваться настройка процесса запуска . Обычно для одноразового запуска можно использовать сценарий запуска System V (SysV):

# /etc/init.d/xinetd start

Для настройки автоматического запуска при загрузке компьютера требуется знание методов работы сценариев запуска своего дистрибутива. Как правило, это делается с помощью утилиты, такой как (используется в Fedora, openSUSE и родственных дистрибутивах), (используется в Debian и родственных дистрибутивах) или (используется в Gentoo), примерно так:

# chkconfig xinetd on
# update-rc.d xinetd enable
# rc-update add xinetd default

Введите только одну из этих команд или найдите эквивалент для своего дистрибутива.

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

Настройка xinetd

Серверы, которыми должен управлять , помещают файлы конфигурации в каталог /etc/xinetd.d. Таким образом, чтобы настроить на управление VNC, нужно создать или отредактировать файл с именем типа /etc/xinetd.d/vnc. (В некоторых дистрибутивах, таких как openSUSE, пакет VNC-сервера устанавливает такой файл.) В листинге 1 приведен пример.

Листинг 1. Пример настройки VNC для xinetd
service vnc
{
   disable     = no
   socket_type = stream
   protocol    = tcp
   wait        = no
   user        = nobody
   server      = /usr/bin/Xvnc
   server_args = -inetd -once -query localhost -geometry 1024x768 -depth 16
   type        = UNLISTED
   port        = 5900
}

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

  • . VNC с разными параметрами можно запустить через несколько портов, но в этом случае в первой строке листинга 1 нужно присвоить VNC отдельное имя службы для каждого порта.
  • . Этот параметр нужно изменить так, чтобы он указывал на главный двоичный файл VNC-сервера, который обычно называется Xvnc.
  • . Некоторые из этих значений вы почти наверняка захотите изменить, как описано ниже.
  • . VNC использует порты с номерами 5900 и выше. Можно запустить сервер с разными значениями параметров через разные порты. В этом случае каждому экземпляру нужно назначить свой номер порта.

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

  • . Этот параметр указывает, что сервер VNC X должен проверять систему localhost на аутентификацию XDMCP. Его можно изменить, если вы хотите использовать один компьютер в качестве транслятора для доступа к программам другого.
  • . Этот параметр устанавливает виртуальное разрешение сеанса VNC. Заметим, что это разрешение не обязательно должно соответствовать разрешению обычного X-сервера, работающего на компьютере сервера. Можно создать несколько записей, работающих с разным разрешением, чтобы пользователи могли входить в VNC-сервер с тем разрешением, которое удобно для их локальных систем.
  • . Этот параметр задает глубину цвета. Чем ниже значение, тем быстрее обновляется дисплей, но на экране с большим количеством цветов могут появиться искажения. Диапазон допустимых значений от 2 до 32.

Имеются многие другие параметры, и некоторые из них зависят от VNC-сервера. Обращайтесь к документации по своему серверу VNC.

VNC шифрование через ssh туннель

По умолчанию, VNC не является безопасным протоколом, по этому  (так безопаснее) мы запустим сервер VNC только на 127.0.0.1 (локальный) и пробросим его через туннель SSH (для этого, есть варианты в Putty).

В Ubuntu нужно отредактировать:

# sudo vim /etc/vncserver/vncservers.conf

Нужно добавить опцию «-localhost»

проксирование vnc-server на localhost

Перезапустим сервер:

# sudo service vncserver restart

Запустите PuTTY/ Kitty, введите IP-адрес или имя хоста сервера VNC:

использование vnc через kitty

Переходим на другую вкладку, Session->Connection->SSH.

использование vnc через kitty, настройка

Через команду можно посмотреть что все работает:

# netstat -a

После чего уже запускаем непосредственно, vnc viewer и прописываем заместо нашего реального ИП, localhost:1 (или 2). Вводим пароль и можно использовать.

Надеюсь что эта статья «Установка и настройка VNC Server на Debian/Ubuntu/Linux Mint» помогла вам и на этом я закончу ее.

AnyDesk

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

У этого VNC-клиента нет версии для iOS или Android, но вы можете удаленно управлять компьютерами Windows или macOS.

Еще один момент, где больше всего выделяется AnyDesk — это скорость соединения.

Соединение легко установить.

Вы должны открыть одно и то же приложение на клиенте и сервере.

Приложение не нужно  устанавливать, оно портативное (весит всего 1,5 МБ).

На клиентском компьютере вы вводите идентификатор серверного компьютера, принимаете запрос от серверного компьютера и управляете им.

Когда вы перемещаете мышь на клиенте, он автоматически перемещает ее на сервер.

Первый запуск приложения

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

Как пользоваться VNC Viewer?

Сначала через файловое меню выбираете пункт нового подключения (New Connection), а затем в новом окне вводите IP-адрес удаленного терминала или полное название компьютера (адрес можно узнать на подключаемой машине, воспользовавшись свойствами интернет-соединения или командной строкой с вводом команды ipconfig, а имя компьютера можно просмотреть в свойствах системы). После этого появится окошко запроса пароля, в котором нужно ввести искомую комбинацию. При соответствии комбинации установленному на удаленном компьютере паролю появится удаленный «Рабочий стол».

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

Чтобы с легкостью контролировать новый сервер VNC, нужно настроить его как сервис Ubuntu. Это позволит запускать, останавливать и перезапускать VNC-сервер по мере необходимости.

Для начала откройте новый файл сервиса в /etc/init.d с помощью nano:

Первый блок данных необходим для объявления некоторых общих настроек VNC (например, имени пользователя и разрешения дисплея).

Не забудьте заменить слово user именем пользователя с расширенными привилегиями (не root), также можно изменить разрешение дисплея (замените значение 1024×768).

Затем нужно задать команды для управления новым сервисом. Следующий блок кода включает команду, необходимую для запуска сервера VNC, и ее обратную связь (ключевое слово команды start).

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

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

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

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

Установка TigerVNC

Теперь давайте разберемся, как мы можем установить и настроить TigerVNC в CentOS. Первое, что нужно сделать, это установить программу TigerVNC Server, открыв сеанс терминала и введя следующую команду с правами root:

Сразу после этого вам необходимо создать отдельного пользователя VNC, с которого и будет осуществляться подключение (с выделенным паролем). Для этого введите следующее:

Важно: никогда не делайте этого от имени root-пользователя — это создаст серьезную угрозу безопасности вашей системы. Лучшим решением будет оставить пользователя root без доступа к VNC и настроить выделенную учетную запись с ограниченными правами

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

(первая строка может быть опущена, если мы уже вошли под пользователем vncuser заранее).

Следующее, что нужно сделать, это создать файл конфигурации VNC для vncuser. Самый быстрый способ сделать это — скопировать файл общего шаблона VNC, расположенный в папке /lib/systemd/system/, — и затем изменить его:

Цифра «1», которую мы добавили в новое имя файла, — это номер дисплея, который будет использоваться для этого конкретного экземпляра службы

Это важно знать, потому что он также определит порт TCP, который будет использоваться нашим VNC-сервером, равным 5900 + номер дисплея. Первый будет 5901, затем 5902 и так далее

Сразу после копирования вам нужно отредактировать новый файл с помощью Vi, Nano или другого текстового редактора, и заменить на имя пользователя, созданного недавно (в нашем случае vncuser). Вот как файл должен выглядеть после обновления (за исключением длинной закомментированной части в начале):

Как только вы это сделаете, можете перезагрузить демон VNC и запустить vncserver@1 с помощью следующих команд:

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

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

Еще одна проверка, которую вы можете выполнить, прежде чем пытаться подключиться к серверу, — это посмотреть на активные сетевые сокеты с помощью команды ss: если все работает правильно, вы должны увидеть, что VNC-сервер работает и использует порт TCP 5901. Выполните команду:

Результат должен быть следующим:

Если вы видите это, значит все настроено правильно.

Рекомендации по выбору оптимального режима работы

Как пользоваться VNC Viewer для создания подключения, мы разобрались. Теперь несколько слов по поводу предпочитаемых настроек.

Если внимательно посмотреть на окно создания соединения, в нем можно обнаружить вкладку для экспертов. Если в этих настройках выбрать, например, предпочитаемые алгоритмы сжатия передаваемых и принимаемых данных, то можно существенно снизить нагрузку на центральный процессор и оптимизировать применение технологии Virtual Network Computing даже для сетей с пропускной способностью на уровне 256 кбит/с. Для графики рекомендуется устанавливать высокий уровень компрессии (Compression Level) с минимальным качеством (JPEG Quality), а в качестве дополнительной оптимизации активировать уменьшение количества цветов (Restricted Colors или bgr233).

Кроме того, стоит обратить внимание, что на одном терминале может использоваться подключение к нескольким машинам на основе базового порта 5900 через параметр дисплея. По умолчанию основной дисплей имеет значение «0», а для всех остальных оно увеличивается («1», «2» и т

д.). Соответственно, изменятся порт (5901, 5902 и т. д.), который нужно будет указывать после адреса через двоеточие (например, 192.168.0.5:5901). В случае с динамическими (а не статическими) адресами, дополнительно можно воспользоваться получением динамического DNS, например, на основе DynDNS. Можно выставить такую настройку на маршрутизаторе или зарегистрироваться на портале сервиса в интернете. В этом случае служба будет передавать установленному клиенту все сведения, связанные с изменением IP подключаемого компьютера.

Создание Systemd unit файла

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

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

Shell

sudo nano /etc/systemd/system/vncserver@.service

1 sudo nanoetcsystemdsystemvncserver@.service

/etc/systemd/system/vncserver@.service

Shell

Description=Remote desktop service (VNC)
After=syslog.target network.target

Type=simple
User=vnc_user
PAMName=login
PIDFile=/home/%u/.vnc/%H%i.pid
ExecStartPre=/bin/sh -c ‘/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :’
ExecStart=/usr/bin/vncserver :%i -localhost no -geometry 1440×900 -alwaysshared -fg
ExecStop=/usr/bin/vncserver -kill :%i

WantedBy=multi-user.target

1
2
3
4
5
6

8
9
10
11
12
13
14

Unit

Description=Remote desktop service(VNC)

After=syslog.targetnetwork.target

Service

Type=simple

User=vnc_user

PIDFile=home%u.vnc%H%i.pid

ExecStartPre=binsh-c’/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :’

ExecStart=usrbinvncserver%i-localhost no-geometry1440x900-alwaysshared-fg

ExecStop=usrbinvncserver-kill%i

Install

WantedBy=multi-user.target

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

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

Shell

sudo systemctl daemon-reload

1 sudo systemctl daemon-reload

На следующем шаге делаем unit файл доступным с помощью следующей команды:

Shell

sudo systemctl enable vncserver@1.service

1 sudo systemctl enable vncserver@1.service

Число после знака определяет порт дисплея, на котором будет работать сервис VNC. Это означает, что сервер VNC будет действовать на порту , как и говорилось в предыдущем разделе.

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

Shell

sudo systemctl start vncserver@1.service

1 sudo systemctl start vncserver@1.service

Проверьте, что сервис успешно запущен:

Shell

sudo systemctl status vncserver@1.service

1 sudo systemctl status vncserver@1.service

Shell

● vncserver@1.service — Remote desktop service (VNC)
Loaded: loaded (/etc/systemd/system/vncserver@.service; indirect; vendor preset: enabled)
Active: active (running) since Thu 2018-08-16 19:05:54 UTC; 4s ago
Process: 9893 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
Main PID: 9900 (vncserver)
Tasks: 0 (limit: 507)
CGroup: /system.slice/system-vncserver.slice/vncserver@1.service
‣ 9900 /usr/bin/perl /usr/bin/vncserver :1 -geometry 1440×900 -alwaysshared -fg

1
2
3
4
5
6
7
8

●vncserver@1.service-Remote desktop service(VNC)

Loadedloaded(etcsystemdsystemvncserver@.service;indirect;vendor presetenabled)

Activeactive(running)since Thu2018-08-16190554UTC;4sago

Process9893ExecStartPre=binsh-cusrbinvncserver-kill1>devnull2>&1||(code=exited,status=SUCCESS)

Main PID9900(vncserver)

Tasks(limit507)

CGroupsystem.slicesystem-vncserver.slicevncserver@1.service

‣9900usrbinperlusrbinvncserver1-geometry1440x900-alwaysshared-fg

Ссылка на основную публикацию