- Как установить и настроить VNC в Ubuntu 18.04
- Подготовка
- Установка среды рабочего стола
- Установка VNC-сервера
- Настройка VNC-сервера
- Создание файла модуля Systemd
- Подключение к VNC-серверу
- Настроить SSH-туннелирование в Linux и macOS
- Настроить SSH-туннелирование в Windows
- Подключение с помощью Vncviewer
- Выводы
- Подключение к удаленному компьютеру по VNC
- Установка и настройка VNC в Ubuntu 18.04
- Введение
- Предварительные требования
- Шаг 1 — Установка среды рабочего стола и сервера VNC
- Шаг 2 — Настройка сервера VNC
- Шаг 3 — Безопасная настройка рабочего стола VNC
- Шаг 4 — Запуск VNC в качестве системной службы
- Заключение
Как установить и настроить VNC в Ubuntu 18.04
В этом руководстве описаны действия, необходимые для установки и настройки VNC-сервера в Ubuntu 18.04. Мы также покажем вам, как безопасно подключиться к серверу VNC через туннель SSH.
Virtual Network Computing (VNC) — это графическая система совместного использования рабочего стола, которая позволяет использовать клавиатуру и мышь для удаленного управления другим компьютером. Это альтернатива с открытым исходным кодом протоколу удаленного рабочего стола Microsoft (RDP).
Подготовка
Прежде чем продолжить обучение, убедитесь, что вы вошли в систему как пользователь с привилегиями 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 :X — это порт дисплея, который ссылается на 5900+X
Прежде чем перейти к следующему шагу, остановите экземпляр 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-серверу
VNC не является зашифрованным протоколом и может подвергаться перехвату пакетов. Рекомендуемый подход — создать туннель SSH, который будет безопасно перенаправлять трафик с вашего локального компьютера на порт 5901 на сервер на том же порту.
Настроить 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 . Вам также необходимо будет создать новый служебный файл, используя другой порт.
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
Источник
Подключение к удаленному компьютеру по VNC
Работа с VNC-клиентом. Материал ориентирован на неопытного пользователя.
1. Установка VNC-клиента
2. Подключение VNC-клиента к удаленному компьютеру
3. Отключение VNC-клиента от удаленного компьютера
4. Тюнинг VNC-клиента
5. Частые проблемы
Для работы с удаленным компьютером по VNC на компьютере пользователя нужно запустить программу-клиент (VNC viewer, VNC client). Эта программа передает на удаленный компьютер данные о нажатиях на клавиши и о движениях мыши, сделанных пользователем, и показывает информацию, предназначенную к выводу на экран.
1. Установка VNC-клиента
Для ОС Windows можно бесплатно скачать и инсталлировать VNC-клиент UltraVNC и TightVNC.
Mac OS X начиная с версии 10.5 имеет поддержку VNC-клиента в RemoteDesktop. Для предыдущих версий можно использовать VNC-клиенты JollysFastVNC и Chicken.
Для Linux ветви Debian (Ubuntu) VNC-клиент устанавливается из репозитория командой:
apt-get install vncviewer
Для ветви RedHat (CentOS, Fedora) — командой:
yum install vnc
Для FreeBSD VNC-клиент (TightVNC) устанавливается из пакетов командой:
pkg_add -r tightvnc
2. Подключение VNC-клиента к удаленному компьютеру
Для подключения VNC-клиента к удаленному компьютеру требуется указать его IP-адрес или DNS-имя, и номер дисплея (по умолчанию, :0) или номер TCP-порта (по умолчанию, 5900). Если VNC-сервер требует авторизации, то при подключении к нему VNC-клиент запросит пароль. Обратите внимание, что пароль доступа к VNC-серверу не связан с каким-либо аккаунтом (учетной записью пользователя) на удаленном компьютере, а служит только для ограничения доступа к дисплею VNC-сервера.
После установки соединения и открытия экрана, в зависимости от настроек VNC-сервера может потребоваться авторизация пользователя на виртуальном сервере или может быть открыта уже запущенная рабочая сессия какого-либо пользователя.
Так как на компьютере одновременно могут работать несколько VNC-серверов, для их разделения используют параметр номер дисплея. Например, один VNC-сервер может быть запущен на дисплее :0, другой — на дисплее :1. Каждому номеру дисплея соответствует номер TCP-порта, на котором VNC-сервер принимает соединения. Номер порта для дисплея получается прибавлением номера дисплея к базовому номеру порта — 5900. Дисплею :0 соответствует TCP-порт 5900, дисплею :1 — порт 5901.
3. Отключение VNC-клиента от удаленного компьютера
При закрытии окна VNC-клиента или после выхода из окружения средствами рабочего стола, в зависимости от настроек VNC-сервера, рабочая сессия пользователя может закрыться с остановкой всех используемых программ, или продолжать работу и быть доступной снова при повторном подключении к VNC-серверу.
4. Тюнинг VNC-клиента
Большое количество передаваемой на экран информации влечет за собой повышенные требования к скорости канала — к его пропускной способности и времени передачи пакетов. Нахватка пропускной способности приводит к некомфортным задержкам при больших изменениях показывамой на экране информации — открытии новых окон, скроллинге и т.д. Особенно большие задержки будут возникать при показывании фотографий и других изображений или элементов интерфейса, имеющих большое количество цветов и сложные формы.
Главный параметр, который влияет на объем передаваемых данных — алгоритм кодирования передаваемой графики. Для уменьшения объема и, соответственно, ускорения работы, рекомендуется использовать алгоритмы Tight, ZLib, ZRLE — по сравнению с несжатыми данными (Raw), они обеспечивают сжатие в десятки раз, заметно нагружая процессор. Эти алгоритмы кодирования обеспечивают комфортную работу даже на каналах со скоростью 256-512 Кбит/сек.
Для сокращения объема передаваемой по сети информации также можно устанавливать высокий уровень сжатия (Compression Level, Compression Value), низкий уровень качества JPEG (JPEG Quality) и включать режим уменьшения количества цветов (-bgr233, Restricted colors). Самый большой эффект из них при заметном снижении качества изображения дает режим уменьшения количества цветов — объем передаваемой информации уменьшается в 1.5-3 раза, соответственно, в 1.5-3 раза ускоряется отображение на экране.
JPEG применяется алгоритмом кодирования Tight для сжатия участков экрана, содержащих фотографии и другие сложные изображения с большим числом цветов. Использование Tight+JPEG сокращает в 2-5 раз объем передаваемых при этом данных. Другие алгоритмы кодирования JPEG не поддерживают.
1. Выпадающего меню «Система -> Параметры»
Объем передаваемых данных и скорость отображения на канале 1 Мбит/сек при открытии выпадающего меню «Система -> Параметры» (на рисунке меню выделено зеленым пунктиром):
Полноцветный режим | 256 цветов (BGR233) | |||
---|---|---|---|---|
Объем | Время | Объем | Время | |
ZLib | 11 Кб | 0.09 сек | 7 Кб | 0.06 сек |
HexTile | 208 Кб | 1.6 сек | 118 Кб | 0.95 сек |
Raw | 248 Кб | 2 сек | 128 Кб | 1 сек |
5. Частые проблемы
Не удается подключиться к VNC-серверу
Медленная работа через достаточно быстрый канал
Если VNC-клиент не может согласовать с VNC-сервером использование алгоритм кодирования графики с компрессией данных, выбирается алгоритм по умолчанию — Raw, который передает данные без сжатия. Также кодирование без сжатия или с низким уровнем сжатия может автоматически выбираться VNC-клиентом при работе через быструю локальную сеть. Данную проблему можно исправить, принудительно указав в настройках VNC-клиента алгоритм кодирования с высоким уровнем сжатия — ZLib, ZRLE, Tight.
Однако, для некоторых сочетаний клиента и сервера такое решение может быть бесполезным из-за ошибок в согласовании алгоритма кодирования. Например, клиент TightVNC с сервером RealVNC часто могут работать только с кодировкой Raw. Решением в этом случае будет смена VNC-клиента или VNC-сервера.
Источник
Установка и настройка VNC в Ubuntu 18.04
Published on January 7, 2020
Введение
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 по умолчанию. Он должен выглядеть следующим образом:
Для доступа к файлам в каталоге home вы можете использовать менеджер файлов или командную строку, как показано здесь:
Нажмите 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-битную глубину цвета с разрешением 1280×800. Вы можете изменить эти параметры запуска в соответствии со своими потребностями.
Сохраните и закройте файл.
Затем сообщите системе о новом файле блока.
Активируйте файл блока.
Цифра 1 после символа @ указывает, на каком дисплее должна появляться служба. В данном случае это значение по умолчанию :1 , как говорилось на шаге 2.
Остановите текущий экземпляр сервера VNC, если он еще работает.
Запустите его, как любую другую системную службу.
Вы можете проверить запуск с помощью следующей команды:
Если запуск выполнен нормально, результат должен выглядеть следующим образом:
Теперь сервер VNC будет доступен при перезагрузке компьютера.
Запустите туннель SSH еще раз:
Создайте новое подключение, используя клиентское программное обеспечение VNC для подключения localhost:5901 к вашему компьютеру.
Заключение
Вы установили и запустили защищенный сервер VNC на своем сервере Ubuntu 18.04. Теперь вы сможете управлять файлами, программным обеспечением и настройками через удобный и знакомый графический интерфейс, а также удаленно запускать графические приложения, в том числе браузеры.
Источник