среда, 19 сентября 2018 г.

Доступ по VNC (удалённому рабочему столу) в Linux Mint 19

При попытке доступа по VNC к удалённому рабочему столу Linux Mint 19 пришлось столкнуться с тем, что, по сравнению с предыдущими версиями (17, 18), по умолчанию такой возможности не предоставляется. При дальнейших действиях по организации возможности подключения по VNC к узлу под управлением Linux Mint 19 необходимость приложить ряд дополнительных усилий стала напоминать эпизод из фильма:
 
– Тебя как, сразу прикончить или желаешь помучиться?
– Лучше, конечно, помучиться.
(из к/ф "Белое солнце пустыни")

Началось всё с того, что в настройках (далее имеется в виду графическое окружение XFCE) раздела "Сеансы и запуск" и вкладке "Автозапуск" никакого упоминания о подключении к удалённому рабочему столу не имеется, хотя в предыдущей Linux Mint 18 пункт включения был расположен между обновлением папок пользователя и сетью.



За реализацию сервера VNC в Linux Mint отвечает пакет vino, который в Linux Mint 19 по умолчанию не устанавливается. Данный пакет необходимо установить и, в принципе, его можно легко найти через Synaptic.



Однако этого будет недостаточно. Как показало изучение вопроса, разработчики vino удалили из своего продукта утилиту графической настройки, поэтому настройку vino необходимо будет произвести через конфигуратор dconf-editor.

Выполните в терминале команду, которая установит необходимые компоненты и запустит dconf-editor

sudo apt install -y vino dconf-editor && sudo dconf-editor

При запуске dconf-editor будет показано предупреждение, что вносимые изменения осуществляются вами на свой страх и риск и для продолжения необходимо нажать на кнопку "I'll be careful" (я буду осторожен). Для выключения этого показа при последующих запусках dconf-editor снимите галочку в поле "Show this dialog next time".


После запуска графического конфигуратора системы путём последовательного перемещения "gnome – desktop" перейдите в секцию "remote-access"




Если планируется подключаться по клиенту VNC из Windows, то, как пишут, желательно выключить шифрование (двигать движок в соответствующей строке).




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

Аналогичным образом поступите с prompt-enabled, иначе на другом компьютере придётся каждый раз "одобрять" удалённое к нему подключение.


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




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


Закройте конфигуратор и перейдите к настройкам автозапуска. Добавьте в список автоматически запускаемых при старте системы программ ПО vino

/usr/lib/vino/vino-server


Рисунок относится к оболочке XFCE. В Cinnamon и MATE используйте существующие в них настройки автозапуска программ. 

Перезагрузите систему.

На компьютере, с которого будете подключаться, создайте соответствующее соединение. На рисунке ниже подключение будет осуществляться с узла Linux, поэтому оно добавляется в программе Remmina.


Обратите внимание, что имя пользователя вводить не надо, вводится только пароль, который был задан при настройке vino через графический конфигуратор dconf-editor.

На рисунке указан узел H-4.vot, что соответствует полному доменному имени узла. В этом случае подразумевается, что DNS сервер Вашей локальной сети умеет сопоставлять выданные DHCP адреса IP именам узлов сети. MikroTik, например, умеет это делать через специальный скрипт. Если сервера DNS не имеется или он не умеет этого делать, то назначьте узлу, к которому будете удалённо подключаться, статический адрес (или настройте сервер DHCP на выдачу ему одного и того же адреса) и подключайтесь по IP.

Если всё сделано правильно, то будете иметь удовольствие наблюдать удалённый рабочий стол узла Linux, к которому подключились, а также управлять этим компьютером.


При этом на панели (как правило, внизу) будет отображаться значок (при теме оформления Mint-Y – голубого цвета), отображающий факт удалённого подключения к рабочему столу.


Быстрота реагирования удалённого компьютера на Ваши команды зависит от его аппаратных возможностей, степени загруженности системы, а также количества передаваемых данных по VNC. При рассмотрении вопроса об "отзывчивости" удалённой системы во многих публикациях пишут о проигрыше VNC перед RDP, но ничего лучшего для удалённого подключения к Linux с GUI лично мне встретить не удалось. С целью повышения скорости реагирования конечной системы можно попробовать "поиграться" с настройками качества отображения экрана целевого компьютера в параметрах соединения (см. окно настроек подключения Remmina):


Альтернативное решение – x11vnc (подробности).

12 комментариев:

  1. Добрый день.
    Подскажите пожалуйста, что делаю не так. При изменении параметров require-encryption, prompt-enabled, vnc-password в секции "remote-access" сохраняю все ОК. Выхожу из параметра, настройки и пароль сбрасывается на Default. Что делаю не так? Спасибо за помощь.
    p.s. Опер. система Linux Mint 19

    ОтветитьУдалить
  2. У меня такое было пока не "Чтобы закрепить данное изменение нажмите на кнопку зелёного цвета." (по тексту)

    ОтветитьУдалить
  3. Подскажите, настройки как на написано, но при подключении нароль не запрашивается вообше, сразу подключает, как так

    ОтветитьУдалить
  4. Этот комментарий был удален автором.

    ОтветитьУдалить
  5. При подключении через VNC по Remmina , черный экран. Как лечиться? Поделитесь информацией!?

    ОтветитьУдалить
    Ответы
    1. Очень мало исходной информации. На любом из форумов вас попросят предоставить более подробные сведения. А так, навскидку, https://unixforum.org/viewtopic.php?t=109749 и https://ru.vingrad.com/cherny-ekran-pri-podsoyedinenii-k-VNC-id50bde63c6ccc19743b005cb8

      Удалить
    2. Возможно у Вас не сохранились настройки сделанные через dconf-editor и на целевом пк нужно нажать принять соединение.

      Удалить
  6. Что то жутко тормозная эта Remmina.
    Ей же пользоваться совершенно не возможно.

    ОтветитьУдалить
  7. 1. Пароль необходимо вводить в кодировке Base64
    2. Чтобы было окно запроса пароля, необходимо в секции "authentication-method" установить значение "vnc"

    ОтветитьУдалить
    Ответы
    1. а где нужно указать что бы пароль был в кодировке Base64?

      Удалить
    2. https://www.base64encode.org/
      там генерим нужный пароль - потом копируем что получилось и вставляем в поле (custom value) - поле этого зеленую кнопку

      Удалить
  8. Что могу отписать по поводу использования.
    Vino довольно медленный сервер, но при этом стабильный. До этого я использовал x11vnc - он реагирует более бодро, но очень плохо соседствует с wine (изменение параметров запуска не помогло). Если некоторое время понажимать что-либо в windows-приложениях под wine, то x11vnc падает (причём нагромождение скриптов для авто-перезапуска не помогает, т.к. всё равно будут постоянные разрывы и надо переподключаться). Так что при работе с wine лучше использовать vino - лично я решил так. Что касается клиента, то Remmina мне не нравится совсем, более удобным вариантом я считаю RealVNC (в репах, к сожалению, его обычно нет, поэтому нужно ставить с сайта - https://www.realvnc.com/en/connect/download/viewer/). Там можно завести кучу соединений и просто кликом запускать, кроме того есть такое же приложение для Андроид.

    ОтветитьУдалить