Установка и настройка VNC в Ubuntu 20.04
VNC (или Virtual Network Computing) – это система удалённого доступа, которая позволяет использовать клавиатуру и мышь для взаимодействия с графическим интерфейсом рабочего стола на удалённом сервере. При помощи VNC можно управлять файлами, программным обеспечением и настройками удалённого сервера, не обращаясь к командной строке.
Этот мануал поможет вам установить VNC с помощью TightVNC на виртуальный сервер Ubuntu 20.04 и настроить безопасное подключение при помощи SSH-туннеля. Затем мы используем клиент VNC на локальной машине, чтобы проверить взаимодействие с сервером через графический интерфейс рабочего стола.
Требования
- Сервер Ubuntu 20.04, настроенный по этому мануалу.
- Локальный компьютер с предустановленным клиентом VNC, который поддерживает VNC-соединения через SSH-туннель. Пользователи Windows могут установить TightVNC, RealVNC или UltraVNC. Пользователи MacOS могут обратиться к встроенному пакету Screen Sharing или использовать кроссплатформенные приложения (например, RealVNC). Пользователи Linux могут выбрать vinagre, krdc, RealVNC, TightVNC и т.п.
1: Установка среды рабочего стола и сервера VNC
По умолчанию серверы Ubuntu 20.04 поставляются без предустановленной графической среды рабочего стола и сервера VNC. Потому сначала нужно установить эти компоненты.
У вас есть много доступных вариантов, но в данном мануале используются пакеты Xfce и TightVNC, доступные в официальном репозитории Ubuntu. Оба эти пакета популярны благодаря своей компактности и скорости, что сделает ваше VNC-соединение бесперебойным и стабильным даже при медленном интернете.
Подключившись к серверу по SSH, обновите индекс пакетов:
sudo apt update
Чтобы установить на сервер необходимые пакеты, введите команду:
sudo apt install xfce4 xfce4-goodies
Во время установки вам может быть предложено выбрать дисплейный менеджер по умолчанию для Xfce. Дисплейный менеджер – это программа, которая позволяет входить в среду рабочего стола через графический интерфейс. Вы будете использовать Xfce только при подключении к клиенту VNC, где вы уже будете зарегистрированы как пользователь sudo. Следовательно, для целей данного мануала ваш выбор не имеет значения. Выберите один из вариантов и нажмите Enter.
Теперь установите TightVNC:
sudo apt install tightvncserver
Чтобы завершить начальную настройку сервера VNC после его установки и выбрать надёжный пароль, используйте команду vncserver.
Команда предложит выбрать и подтвердить пароль:
You will require a password to access your desktops.
Password:
Verify:
Пароль должен включать от шести до восьми символов. Более длинные пароли будут автоматически сокращены до 8 символов.
Подтвердив свой пароль, вы сможете создать пароль только для просмотра. Пользователи, получающие доступ к VNC при помощи пароля для просмотра, не смогут управлять VNC через мышь или клавиатуру. Такой пароль нужен для демонстрации VNC другим пользователям, потому его не обязательно устанавливать.
Затем будут созданы необходимые конфигурационные файлы по умолчанию и информация о соединении. Кроме того, по умолчанию VNC запускает экземпляр сервера на порт 5901. Этот порт называется дисплейным портом, VNC ссылается на него как :1. VNC может запускать несколько экземпляров на других дисплейных портах, при этом ссылаясь на порт 5902 как :2, на порт 5903 как на :3 и так далее.
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
Starting applications specified in /home/8host/.vnc/xstartup
Log file is /home/8host/.vnc/your_hostname:1.log
Если вы в будущем захотите изменить свой пароль или добавить пароль для просмотра, вы можете сделать это с помощью команды vncpasswd:
На этом этапе VNC-сервер установлен и запущен. Теперь давайте настроим его для запуска Xfce и получим доступ к серверу через графический интерфейс.
2: Настройка сервера VNC
Серверу VNC необходимо знать, какие команды выполнять при запуске. В частности, VNC должен знать, к какой графической среде рабочего стола он должен подключаться.
Эти команды должны находиться в файле xstartup в каталоге .vnc, который хранится в домашнем каталоге текущего пользователя. Скрипт запуска был создан командой vncserver на этапе установки, но вам нужно создать пользовательский скрипт для взаимодействия с Xfce.
При первом запуске VNC использует порт 5901. Чтобы изменить настройки сервера VNC, нужно остановить экземпляр, использующий порт 5901.
vncserver -kill :1
Команда вернёт такое сообщение (ваш PID будет отличаться):
Killing Xtightvnc process ID 17648
Создайте резервную копию файла xstartup:
Затем создайте новый файл xstartup с помощью текстового редактора:
Вставьте в него следующие команды, которые будут выполняться автоматически при запуске сервера VNC. Сохраните и закройте файл.
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
Первая строка – это шебанг. В исполняемых текстовых файлах на платформах *nix шебанг сообщает системе, какому интерпретатору передать этот файл для выполнения. В этом случае файл передается интерпретатору Bash. Это позволит по порядку выполнять все последующие строки как команды.
При помощи первой команды, xrdb $HOME/.Xresources, GUI сервера VNC читает файл .Xresources. Здесь пользователь может вносить изменения в некоторые настройки графического рабочего стола (настраивать цвета терминала, темы курсора, шрифты). Вторая команда просто запускает Xfce, в котором хранится все графическое программное обеспечение, необходимое для управления сервером.
Теперь нужно сделать файл исполняемым:
Обратите внимание, команда включает опцию -localhost, которая связывает VNC-сервер с loopback интерфейсом вашего сервера. Это приведет к тому, что VNC будет разрешать подключения только с сервера, на котором он установлен.
На следующем этапе мы создадим SSH-туннель между локальным компьютером и вашим сервером, что по сути заставит VNC думать, что соединение с вашего локального компьютера идет с сервера. Эта стратегия добавит еще один уровень безопасности VNC, поскольку доступ к нему смогут получить только пользователи, у которых есть SSH-доступ к вашему серверу.
Вы получите такой вывод:
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 через терминал с помощью следующей команды:
ssh -L 59000:localhost:5901 -C -N -l 8host your_server_ip
Давайте подробнее рассмотрим опции:
- Флаг -L указывает привязки портов. В этом случае мы привязываем порт 5901 удаленного подключения к порту 5901 на локальном компьютере. Обратите внимание, мы указали произвольный локальный порт; если у вас этот порт еще не связан с другим сервисом, вы можете использовать его в качестве порта переадресации для своего туннеля.
- Флаг -C включает сжатие, что позволяет уменьшить потребление ресурсов и повышает скорость.
- Флаг -N сообщает ssh, что выполнять удаленную команду не нужно. Эта опция удобна, если вам нужно просто перенаправить порты.
- Параметр -l указывает имя пользователя для удаленного входа. Не забудьте заменить 8host и your_server_ip своими данными.
Примечание: Эта команда устанавливает SSH-туннель, который перенаправляет информацию с порта 5901 на VNC-сервере на порт 59000 на локальном компьютере через порт 22 на каждом компьютере (это порт SSH по умолчанию). Если вы включили UFW, вам нужно добавить правило, разрешающее подключения к вашему серверу через OpenSSH. Это более безопасно, чем просто открывать порт в брандмауэре, чтобы разрешить подключения к порту 5901, поскольку это позволит любому пользователю получить доступ к вашему серверу через VNC. Подключаясь через SSH-туннель, вы ограничиваете доступ к VNC теми машинами, которые уже имеют SSH-доступ к вашему серверу.
Если вы работаете через графический SSH-клиент, например, PuTTY, вы можете создать туннель, кликнув правой кнопкой мыши по верхней панели терминала и выбрав Change Settings…
Найдите ветку Connection в меню в левой части окна Reconfiguration. Разверните ветку SSH и нажмите Tunnels. На экране Options controlling SSH port forwarding укажите 59000 в качестве Source Port и localhost:5901 в качестве Destination.
Затем нажмите кнопку Add, а после этого нажмите Apply, чтобы создать туннель.
После запуска туннеля используйте клиент VNC для подключения к localhost:59000. Вам будет предложено пройти аутентификацию с помощью пароля, который вы установили в разделе 1.
Как только вы подключитесь, вы увидите стандартный рабочий стол Xfce. Вы можете получить доступ к файлам в вашем домашнем каталоге с помощью файлового менеджера или из командной строки.
Нажмите CTRL+C в локальном терминале, чтобы остановить туннель SSH и вернуться в обычную командную строку. Эта комбинация клавиш также завершит сессию VNC.
Теперь вы можете настроить VNC-сервер как сервис systemd.
4: Настройка VNC как сервиса systemd
Теперь нужно настроить сервер VNC как сервис system. Это позволит вам управлять сервером при помощи простых команд, а также добавить его в автозагрузку.
Создайте новый юнит-файл /etc/systemd/system/vncserver@.service:
sudo nano /etc/systemd/system/vncserver@.service
Символ @ в конце имени файла позволит вам передать аргумент, который можно использовать в конфигурации сервиса. С его помощью можно указать порт VNC, который нужно использовать при управлении сервисом.
Добавьте в файл следующие строки. Обязательно измените значение User, Group, WorkingDirectory и имя пользователя в значении PIDFILE.
[Unit] Description=Start TightVNC server at startup
After=syslog.target network.target
[Service] 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 1280×800 -localhost :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install] WantedBy=multi-user.target
Команда ExecStartPre останавливает VNC, если сервис уже запущен. Команда ExecStart запускает VNC и устанавливает глубину цвета – 24-битный цвет с разрешением 1280×800. Вы также можете изменить эти параметры в зависимости от потребностей. Обратите внимание, что команда ExecStart также включает опцию –localhost.
Сохраните и закройте файл.
Затем сообщите системе про новый юнит-файл.
sudo systemctl daemon-reload
sudo systemctl enable vncserver@1.service
Цифра 1, идущая за @, определяет, какой номер дисплея должен отображаться в сервисе, в этом случае это значение по умолчанию :1.
Остановите текущий экземпляр сервера VNC, если он еще запущен.
vncserver -kill :1
Теперь попробуйте запустить его как любой другой сервис systemd:
sudo systemctl start vncserver@1
Чтобы убедиться, что сервер запущен, проверьте его состояние:
sudo systemctl status vncserver@1
vncserver@1.service — Start TightVNC server at startup
Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-05-07 17:23:50 UTC; 6s ago
Process: 39768 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=2)
Process: 39772 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280×800 :1 (code=exited, status=0/SUCCESS)
Main PID: 39795 (Xtightvnc)
.
Теперь сервис VNC добавлен в автозагрузку и вы можете управлять им при помощи стандартных команд systemctl.
На клиентской стороне не произойдет никаких изменений. Снова запустите туннель SSH, чтобы подключиться в серверу:
ssh -L 59000:localhost:5901 -C -N -l 8host your_server_ip
Создайте новое подключение с клиента VNC на localhost:59000, чтобы протестировать настройку.
Заключение
Теперь на сервере Ubuntu 20.04 установлен сервер VNC. С его помощью вы можете управлять файлами, программами и настройками удалённого сервера (например, удаленно запускать веб-браузер).
Установка и настройка VNC Server на Debian/Ubuntu/Linux Mint

Установка и настройка VNC Server на Debian/Ubuntu/Linux Mint
Virtual Network Computing (VNC) — система для подключения к рабочему столу удаленно используя протокол RFB (англ. Remote FrameBuffer, удалённый кадровый буфер).
VNC состоит из VNC-клиента, который называется VNC viewer, он только запущен на одной ОС и можно подключаться к VNC-серверу который работает на другой операционной системе. Реализация клиентской и серверной части есть почти для всех ОС, даже для Java (которая включает J2ME). На один VNC-сервер одновременно могут быть подключены большое множество клиентов. Наиболее популярный способ использования VNC — это удалённое подключение к рабочему компьютеру из дома для технической поддержки вашего сервера. В своей статье «Установка и настройка VNC Server на Debian/Ubuntu/Linux Mint» я расскажу как это можно сделать.
Чтобы установить VNC, достаточно выполнить команду:
Вы можете использовать любого пользователя для входа в свой VNC Server, но по соображениям безопасности, я собираюсь создать VNC пользователя для моего VNC Server-а:
Устанавливаем для него пароль:
Теперь переключимся на этого пользователя (vncuser) для создания некоторых конфигурационных файлов для VNC:
После этого, запускаем VNC сервер:
После запуска VNC-сервера, вам будет предложено создать VNC пароль. Устанавливаем любой удобный для вас пароль, но не более 9 символов ( если больше, то он обрежит его).
На рисунке ниже видно как стартанул наш vnc сервер, но нам его нужно немного подредактировать:

Чтобы сделать настройку в сценарие запуска, мы должны убить сессию, что мы только что создали:
После чего нужно открыть и поправить файл конфигурации:
Измените немного конфигурацию по вашему усмотрению ( у меся я поправил разрешение экрана), мой готовый конфигурационный файл я выложил и прочитать его можно тут, чтобы скачать используйте команду:
После чего запускаем нашу сессию с разрешением экрана 1024×600:
Установка Gnome X Window для Ubuntu (на стороне клиента, можно установить и другую среду):
Вот еще моя статья как установить другую графическую оболочку:
Установка GUI на Debian/Ubuntu/Mint
PS: не забываем прописывать нужную строку в конфиг xstartup.
Если вы решите использовать другие графические интерфейсы:
Для Gnome-Desktop Environment
Для KDE-Desktop Environment
Для MATE-Desktop Environment
Для LXDE-Desktop Environment
Для Cinnamon-Desktop Environment
Для Openbox-Desktop Environment
Я собрал это все до кучи и закоментировал не нужные строки, оставил только gnome, т.к я его устанавливал. Вы можете скачать данный конфиг и отредактировать его для настройки своего VNC сервера (для своего графического интерфейса):
Я приведу пример со своим использованием, я юзаю windows 8, по этому я скачал vnc- viewer.
Использование VNC Viewer для просмотра и управления VNC-сервера с удаленного хоста.
Перед тем как использовать vnc-viewer, нужно его скачать. После чего запускаем его и вводим в поле IP адрес хоста (у меня это сделать не получилось и не знаю по чему), я использую виртуальную машину, по этому я ввел следующее:
ubuntu:1
Открылось окно и я ввел свой пароль, который я вводил (создал) немного выше. Вот и все, работает все)
После перезагрузки сервера, мы не будем иметь возможность подключиться к серверу с VNC, это потому, что команда «vncserver -geometry 1024×600» , что мы набрали выше не является постоянным. Чтобы решить эту проблему, я будем использовать отличный сценарий Джастин Buser.
Для начала создадим следующее:
Затем создайте пустой сценарий инициализации и сделайте его исполняемым:
И добавьте текст который можно найти и прочитать тут, так же можете просто его скачать и разместить у себя ( только не забудьте сделать его исполняемым):
Обновим все это:
Сейчас перезапустим наш сервер:
Если вы не можете получить доступ к VNC-сервера, то убедитесь, что вы открыли порты VNC в IPTables:
если не открыли, то открываем их:
и сохраняем все изменения:
Делаем возможность подключения для нескольких пользователей.
Создание локального пользователя, с помощью следующей команды:
Переключитесь на вновь созданного пользователя и запустить этого vncserver командой:

vncserver для дополнительного сервера
Перейдем в домашнюю директорию и отредактируем файл XStartup:
и вставляем в этот файл тоже самое что и для моего первого юзера, берем его от сюда.
Теперь откройте файл /etc/vncserver/vncservers.conf как рут пользователь:
Добавим в уже имеющийся конфиг:
Ребутим наш сервер:
Предотвращение запуск Gnome при загрузке на сервере.
Гном автоматически запускается при загрузке в Ubuntu 12.04 LTS, если мы подключить монитор к нашему серверу мы увидим, что GUI запустился и ждет чтобы мы вошли, это не очень удобно. Сейчас мы это исправим. Чтобы это предотвратить нужно отредактировать файл gdm.conf:
Нужно в этом файле конфигурации закомментировать 6 строчек:
VNC шифрование через ssh туннель
По умолчанию, VNC не является безопасным протоколом, по этому (так безопаснее) мы запустим сервер VNC только на 127.0.0.1 (локальный) и пробросим его через туннель SSH (для этого, есть варианты в Putty).
В Ubuntu нужно отредактировать:
Нужно добавить опцию «-localhost»

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

использование vnc через kitty
Переходим на другую вкладку, Session->Connection->SSH.

использование vnc через kitty, настройка
Через команду можно посмотреть что все работает:
После чего уже запускаем непосредственно, vnc viewer и прописываем заместо нашего реального ИП, localhost:1 (или 2). Вводим пароль и можно использовать.
Надеюсь что эта статья «Установка и настройка VNC Server на Debian/Ubuntu/Linux Mint» помогла вам и на этом я закончу ее.
4 thoughts on “ Установка и настройка VNC Server на Debian/Ubuntu/Linux Mint ”
Все настроил как тут описано, но в итоге после отключения завершается сеанс, это очень не удобно.
Как сделать что бы он не завершался
Я думаю что Вы не прописали (добавили) автозапуск vncserver-а.
# update-rc.d vncserver defaults 99
# service vncserver restart
А не подскажете, как лучше настроить сервер, для того что бы клиент мог работать на двух мониторах? Находил решение удвоить значение width в geometry (например, два монитора по 1024×800, то значение -geometry 2048×800, в фулскрин-моде ложится на два монитора). А вот если мониторы разные?
Быстрый ответ: как запустить Vnc Server в Linux?

Используйте VNC Server для поиска частного (внутреннего) IP-адреса компьютера. Загрузите VNC Viewer на устройство, с которого хотите управлять. Введите частный IP-адрес в VNC Viewer, чтобы установить прямое соединение. Введите имя пользователя и пароль, которые вы обычно используете для входа на компьютер VNC Server.
Как VNC подключается к серверу Linux?
Linux
- Откройте Remmina.
- Нажмите кнопку, чтобы создать новый профиль удаленного рабочего стола. Назовите свой профиль, укажите протокол VNC и введите localhost: 1 в поле сервера. Обязательно укажите: 1 в разделе «Сервер». В разделе пароля введите пароль, который вы указали в разделе Защита вашего VNC-соединения:
- Нажмите Подключиться.
Как запустить службу VNC?
Вы выполните следующие шаги, чтобы настроить свой VNC-сервер:
- Создайте учетные записи пользователей VNC.
- Отредактируйте конфигурацию сервера.
- Установите пароли VNC ваших пользователей.
- Убедитесь, что vncserver запускается и останавливается без ошибок.
- Создавайте и настраивайте сценарии xstartup.
- Измените iptables.
- Запустите службу VNC.
- Протестируйте каждого пользователя VNC.
Как отключить сервер VNC?
В UNIX или Linux, чтобы остановить VNC Server: — В пользовательском режиме щелкните правой кнопкой мыши значок VNC Server в области уведомлений и в контекстном меню выберите Stop VNC Server. — В виртуальном режиме введите vncserver -kill
в командной строке, где x — номер сеанса X-сервера.
Как использовать VNC-сервер в Linux?
Чтобы настроить пользователя VNC
- Войдите на свой выделенный сервер Linux (через SSH) как пользователь, которого вы хотите использовать для доступа к VNC.
- Введите следующее и нажмите Enter: cd
Как запустить VNC на Putty?
Установите соединение VNC с вашим хостом
- Запустите Putty.
- В разделе «Категория» выберите «Сеанс». См. Рисунок 1.
- Введите IP-адрес вашего хоста Clear Linux OS в поле Имя хоста (или IP-адрес).
- Установите для параметра Тип подключения значение SSH.
- Нажмите кнопку «Открыть». Рисунок 1: Putty — настройка параметров сеанса SSH.
Как удаленно управлять машиной Linux из Windows?
Подождите, пока он установится, затем запустите приложение удаленного рабочего стола в Windows с помощью меню «Пуск» или поиска. Введите rdp и нажмите «Подключение к удаленному рабочему столу». Открыв приложение, введите IP-адрес в поле «Компьютер». Затем нажмите «Показать параметры» и добавьте имя пользователя для ПК с Ubuntu.
Что такое VNC server Linux?
Виртуальные сетевые вычисления (VNC) позволяют просматривать и управлять консолью другого компьютера удаленно через сеть. Он также известен как RFB или удаленный буфер кадра. В этом руководстве будет рассмотрено использование клиента VNC, работающего в Linux, для удаленного просмотра и управления рабочим столом Microsoft Windows.
Как сделать удаленный рабочий стол из Windows в Linux?
Подключиться к удаленному рабочему столу
- Откройте «Подключение к удаленному рабочему столу» из меню «Пуск».
- Откроется окно подключения к удаленному рабочему столу.
- В поле «Компьютер» введите имя или псевдоним одного из серверов Linux.
- Если появится диалоговое окно с вопросом о подлинности хоста, ответьте Да.
- Откроется экран входа в систему Linux «xrdp».
Как запустить сервер TigerVNC?
Подключитесь к серверу VNC через туннель SSH.
- Шаг 1 — Обновите CentOS и добавьте пользователя Linux.
- Шаг 2 — Установите XFCE Desktop и TigerVNC.
- Шаг 3 — Начальная конфигурация VNC.
- Шаг 4 — Настройте TigerVNC.
- Шаг 5 — Запуск TigerVNC как службы.
- Шаг 6 — Подключитесь к серверу VNC через туннель SSH.
Как изменить разрешение VNC?
В окне VNC Viewer щелкните меню «Система», выберите «Настройки» и нажмите «Разрешение экрана». В окне «Настройки разрешения экрана» измените разрешение, нажмите «Применить», а затем «Закрыть».
Как мне подключиться к программе просмотра VNC?
На локальном устройстве, которым вы хотите управлять
- Загрузите VNC Viewer.
- Установите или запустите VNC Viewer и войдите в систему, используя учетные данные своей учетной записи RealVNC. Вы должны увидеть удаленный компьютер в вашей команде:
- Щелкните или коснитесь, чтобы подключиться. Вам будет предложено пройти аутентификацию на VNC Server. Не вводите пароль своей учетной записи RealVNC.
Как закрыть все сеансы VNC?
Закройте сеанс VNC. Используйте команду vncserver -list, а затем команду vncserver -kill, чтобы закрыть все сеансы, которые не должны оставаться открытыми.
Какой порт прослушивает VNC?
VNC по умолчанию использует TCP-порт 5900 + N, где N — номер дисплея (обычно: 0 для физического дисплея). Некоторые реализации также запускают базовый HTTP-сервер на порту 5800 + N, чтобы предоставить средство просмотра VNC в виде Java-апплета, что позволяет легко подключаться через любой веб-браузер с поддержкой Java.
Что такое XVNC Linux?
Xvnc — это сервер X VNC (Virtual Network Computing). X-приложения отображаются на нем, как если бы это был обычный X-дисплей, но к ним можно получить доступ только через программу просмотра VNC — см. Vncviewer (1). Итак, Xvnc — это действительно два сервера в одном. Для приложений это X-сервер, а для удаленных пользователей VNC — VNC-сервер.
Как работает VNC Connect?
VNC Server захватывает рабочий стол компьютера в режиме реального времени и отправляет его в VNC Viewer для отображения. VNC Viewer собирает ваш ввод (мышь, клавиатура или сенсорный ввод) и отправляет его на сервер VNC для ввода и фактического дистанционного управления.
Как использовать удаленный рабочий стол с Gnome?
Настройка безопасного подключения для доступа к рабочему столу Linux
- Откройте PuTTY, выберите сохраненный сеанс и нажмите «Загрузить».
- В разделе «Категория» в разделе «Подключение» щелкните SSH, а затем щелкните «Туннели».
- Введите и введите следующее, а затем нажмите Добавить:
- Введите и введите следующее, а затем нажмите Добавить:
Как мне туннелировать VNC через SSH Putty?
VNC через ssh с использованием шпатлевки в Windows
- Загрузите шпатлевку отсюда.
- Запустите putty и подключитесь к вашему VNC-серверу.
- Щелкните «Изменить настройки» -> Подключение–> SSH–> Туннели.
- В «Добавить новый перенаправленный порт» -> введите исходный порт как 5901 и пункт назначения как server-ip: 5901.
- Нажмите на кнопку Добавить.
- Нажмите на кнопку Применить.
- Откройте программу просмотра VNC и подключитесь к localhost: 1.
Как использовать программу просмотра VNC на Raspberry Pi?
Чтобы создать виртуальный рабочий стол и подключиться к нему:
- На вашем Raspberry Pi (с помощью терминала или через SSH) запустите vncserver. Обратите внимание на IP-адрес / номер дисплея, который VNC Server напечатает на вашем терминале (например, 192.167.5.149:1).
- На устройстве, которое вы будете использовать для управления, введите эту информацию в VNC Viewer.
Что такое XVNC?
Xvnc — это VNC-сервер Unix, основанный на стандартном X-сервере. Приложения могут отображаться на нем, как если бы это был обычный X-дисплей, но на самом деле они будут отображаться в любых подключенных средствах просмотра VNC, а не на физическом экране. Итак, Xvnc — это действительно два сервера в одном.
Как мне подключиться к серверу Linux из Windows?
Удаленный рабочий стол с компьютера Windows
- Нажмите кнопку «Пуск».
- Нажмите «Выполнить».
- Введите «mstsc» и нажмите клавишу Enter.
- Рядом с Компьютером: введите IP-адрес вашего сервера.
- Нажмите Connect.
- Если все пойдет хорошо, вы увидите приглашение для входа в Windows.
Как мне удаленно подключиться к Linux?
Как использовать SSH для подключения к удаленному серверу в Linux или Windows
- Включение удаленного доступа в версиях Windows 7, 8, 10 и Windows Server. Шаг 1. Разрешите удаленные подключения. Шаг 2: Добавьте пользователей в список удаленных пользователей.
- Как использовать клиент удаления подключения к рабочему столу. Шаг 1: Запустите блок подключения Destkop. Шаг 2: Введите IP-адрес или имя удаленного хоста.
Как перенести файлы из Windows в Linux?
Чтобы передать файлы из Linux в Windows с использованием SSH, выберите один из следующих вариантов: PuTTY.
- Запустите WinSCP.
- Введите имя хоста SSH-сервера (в нашем случае sun) и имя пользователя (tux).
- Щелкните Вход и подтвердите следующее предупреждение.
- Перетащите любые файлы или каталоги из окна WinSCP или в него.
VNC Connect бесплатный?
Наша домашняя подписка бесплатна для некоммерческого использования. Вы можете установить VNC Connect и получить удаленный доступ к 5 настольным компьютерам на любой платформе. Наши платные подписки Professional и Enterprise дают вам гибкость и контроль, необходимые для управления вашими требованиями к удаленному доступу по мере роста вашего бизнеса или услуг.
Какой VNC лучше?
9 лучших инструментов для доступа к удаленному рабочему столу Linux
- TigerVNC. TigerVNC — это бесплатная высокопроизводительная реализация VNC с открытым исходным кодом, не зависящая от платформы.
- RealVNC. RealVNC предлагает кроссплатформенное, простое и безопасное программное обеспечение для удаленного доступа.
- TeamViewer.
- Реммина.
- НетМашина.
- Апач Гуакамоле.
- XRDP.
- FreeNX.
Что такое адрес VNC-сервера?
Просто введите текущий IP-адрес или имя хоста удаленного компьютера в строке поиска: вам также может потребоваться указать адрес с номером порта, если VNC Server прослушивает порт, отличный от стандартного 5900 TCP, например 192.168.5.116: 80 для порта 5980 или 192.168.5.116:80 для порта 80.
VNC CentOS
Virtual Network Computing (VNC) — система удалённого доступа к рабочему столу компьютера, использующая протокол RFB (англ. Remote FrameBuffer, удалённый кадровый буфер).
Управление осуществляется путём передачи нажатий клавиш на клавиатуре и движений мыши с одного компьютера на другой и ретрансляции содержимого экрана через компьютерную сеть.
Система VNC платформонезависима: VNC-клиент, называемый VNC viewer, запущенный на одной операционной системе, может подключаться к VNC-серверу, работающему на любой другой ОС.
Существуют реализации клиентской и серверной части практически для всех операционных систем, в том числе и для Java (включая мобильную платформу J2ME).
К одному VNC-серверу одновременно могут подключаться множественные клиенты.
Наиболее популярные способы использования VNC — удалённая техническая поддержка и доступ к рабочему компьютеру из дома.
Установка tigervnc-server
Перед установкой VNC сервера убедитесь, что установлен X сервер
sudo yum -y install tigervnc-server
Залогиньтесь под пользователем, которому вы хотите дать доступ по vnc
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used
view-only password это пароль для доступа только с правами на просмотр. Действия мыши и клавиатуры во время такого доступа ограничены.
sudo vi /lib/systemd/system/vncserver@.service
# The vncserver service unit file # # Quick HowTo: # 1. Copy this file to /etc/systemd/system/vncserver@.service # 2. Replace <USER> with the actual user name and edit vncserver # parameters in the wrapper script located in /usr/bin/vncserver_wrapper # 3. Run `systemctl daemon-reload` # 4. Run `systemctl enable vncserver@: <display> .service` # # DO NOT RUN THIS SERVICE if your local area network is # untrusted! For a secure way of using VNC, you should # limit connections to the local host and then tunnel from # the machine you want to view VNC on (host A) to the machine # whose VNC output you want to view (host B) # # [user@hostA
]$ ssh -v -C -L 590N:localhost:590M hostB # # this will open a connection on port 590N of your hostA to hostB's port 590M # (in fact, it ssh-connects to hostB and then connects to localhost (on hostB). # See the ssh man page for details on port forwarding) # # You can then point a VNC client on hostA at vncdisplay N of localhost and with # the help of ssh, you end up seeing what hostB makes available on port 590M # # Use «-nolisten tcp» to prevent X connections to your VNC server via TCP. # # Use «-localhost» to prevent remote VNC clients connecting except when # doing so through a secure tunnel. See the «-via» option in the # `man vncviewer' manual page. [Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=simple # Clean any existing files in /tmp/.X11-unix environment ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' ExecStart=/usr/bin/vncserver_wrapper <USER> %i ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' [Install] WantedBy=multi-user.target
Выполните первый и второй шаги из Quick HowTo
sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@: 1 .service
Обратите внимание на 1 — таким образом указывается номер дисплея для данной версии сервера. Можно было выбрать другое число, главное запомнить этот выбор.
sudo vi /etc/systemd/system/vncserver@\: 1 .service
ExecStart=/usr/bin/vncserver_wrapper <USER> %i
Замените <USER> на имя вашего пользователя. (моего зовут andrei)
Можно вручную через vi а можно с помощью sed
sudo sed -i 's / wrapper\ <USER> / wrapper\ andrei / ' /etc/systemd/system/vncserver@\: 1 .service
Если вашего пользователя зовут vncuser команда будет выглядеть так:
sudo sed -i 's / wrapper\ <USER> / wrapper\ vncuser / ' /etc/systemd/system/vncserver@\: 1 .service
Запуск VNC сервера
Чтобы VNC sever запускался при загрузке системы выполните
systemctl enable vncserver@:1
Запустить VNC sever вручную
sudo systemctl daemon-reload
sudo systemctl start vncserver@:1
Проверить статус VNC сервера
systemctl status vncserver@:1
● vncserver@:1.service — Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2021-03-16 13:49:55 EET; 3min 56s ago Process: 23138 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS) Main PID: 23145 (vncserver_wrapp) CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service ├─23145 /bin/sh /usr/bin/vncserver_wrapper andrei :1 └─24097 /bin/sh /usr/bin/vncserver_wrapper andrei :1 Mar 03 21:50:38 localhost.localdomain systemd[1]: Starting Remote desktop service (VNC). Mar 03 21:50:38 localhost.localdomain systemd[1]: Started Remote desktop service (VNC). Mar 03 21:50:38 localhost.localdomain vncserver_wrapper[23145]: New 'localhost.localdomain:1 (andrei)' desktop is localhost.localdomain:1 Mar 03 21:50:38 localhost.localdomain vncserver_wrapper[23145]: Creating default startup script /home/andrei/.vnc/xstartup Mar 03 21:50:38 localhost.localdomain vncserver_wrapper[23145]: Creating default config /home/andrei/.vnc/config Mar 03 21:50:38 localhost.localdomain vncserver_wrapper[23145]: Starting applications specified in /home/andrei/.vnc/xstartup Mar 03 21:50:38 localhost.localdomain vncserver_wrapper[23145]: Log file is /home/andrei/.vnc/localhost.localdomain:1.log
Проверить, что vnc server слушает на порту 5901 можно командой
ss -tulpn| grep vnc
tcp LISTEN 0 5 *:5901 *:* users:((«X vnc «,pid=1330,fd=9)) tcp LISTEN 0 128 *:6001 *:* users:((«X vnc «,pid=1330,fd=6)) tcp LISTEN 0 5 [::]:5901 [::]:* users:((«X vnc «,pid=1330,fd=10)) tcp LISTEN 0 128 [::]:6001 [::]:* users:((«X vnc «,pid=1330,fd=5))
Открыть порт в Firewall
Теперь порт 5901 нужно открыть в firewall
sudo firewall-cmd —add-port=5901/tcp —permanent
sudo firewall-cmd —reload
sudo firewall-cmd —list-ports
19999/tcp 5901/tcp
Как вы можете убедиться — порт 5901 успешно добавлен в список открытых
Если вам вдруг стало интересно — что за порт 19999 — его использует Locust
Подключение к VNC серверу
Теперь можно установить VNC клиент, например, Remmina
sudo yum install remmina
И зайти на VNC сервер введя нужный IP адрес и порт :5901

Подключение к Centos по VNC через Remmina
www.andreyolegovich.ru
Введите пароль пользователя для которого вы создали vncpasswd

Подключение к Centos по VNC через Remmina
www.andreyolegovich.ru

Подключение к Centos по VNC через Remmina
www.andreyolegovich.ru
Остановить VNC сервер
systemctl stop vncserver@:1
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units === Authentication is required to manage system services or units. Authenticating as: andrei Password: ==== AUTHENTICATION COMPLETE ===
Изменить порт и дисплей
Если скопировать существующий файл /etc/systemd/system/vncserver@: 1 .service
cp /etc/systemd/system/vncserver@: 1 .service /etc/systemd/system/vncserver@: 0 .service
systemctl daemon-reload
==== AUTHENTICATING FOR org.freedesktop.systemd1.reload-daemon === Authentication is required to reload the systemd state. Authenticating as: andrei Password: ==== AUTHENTICATION COMPLETE === [andrei@localhost system]$ systemctl start vncserver@:0 ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units === Authentication is required to manage system services or units. Authenticating as: andrei Password: ==== AUTHENTICATION COMPLETE === [andrei@localhost system]$ systemctl status vncserver@:0 ● vncserver@:0.service — Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:0.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since Wed 2023-03-03 16:55:56 EET; 11s ago Process: 8426 ExecStart=/usr/bin/vncserver_wrapper andrei %i (code=exited, status=2) Process: 8424 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS) Main PID: 8426 (code=exited, status=2) Mar 03 21:50:38 localhost.localdomain systemd[1]: Starting Remote desktop service (VNC). Mar 03 21:50:38 localhost.localdomain systemd[1]: Started Remote desktop service (VNC). Mar 03 21:50:38 localhost.localdomain vncserver_wrapper[8426]: Warning: localhost.localdomain:0 is taken because of /tmp/.X0-lock Mar 03 21:50:38 localhost.localdomain vncserver_wrapper[8426]: Remove this file if there is no X server localhost.localdomain:0 Mar 03 21:50:38 localhost.localdomain vncserver_wrapper[8426]: A VNC server is already running as :0 Mar 03 21:50:38 localhost.localdomain systemd[1]: vncserver@:0.service: main process exited, code=exited, status=2/INVALIDARGUMENT Mar 03 21:50:38 localhost.localdomain vncserver_wrapper[8426]: FATAL: 'runuser -l andrei' failed! Mar 03 21:50:38 localhost.localdomain systemd[1]: Unit vncserver@:0.service entered failed state. Mar 03 21:50:38 localhost.localdomain systemd[1]: vncserver@:0.service failed.
Обратите внимание на предупреждение Warning: localhost.localdomain:0 is taken because of /tmp/.X0-lock
Файл .X0-lock нужно удалить
rm /tmp/.X0-lock
systemctl start vncserver@:0
systemctl status vncserver@:0
Теперь нужно удалить файл .X11-unix/X0k нужно удалить
rm /tmp/.X11-unix/X0k
systemctl daemon-reload
systemctl start vncserver@:0
systemctl status vncserver@:0
● vncserver@:0.service — Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:0.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2023-03-03 17:16:39 EET; 4s ago Process: 9513 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS) Main PID: 9516 (vncserver_wrapp) CGroup: /system.slice/system-vncserver.slice/vncserver@:0.service └─9516 /bin/sh /usr/bin/vncserver_wrapper andrei :0 Mar 03 21:50:38 localhost.localdomain systemd[1]: Starting Remote desktop service (VNC). Mar 03 21:50:38 localhost.localdomain systemd[1]: Started Remote desktop service (VNC). Mar 03 21:50:38 localhost.localdomain vncserver_wrapper[9516]: WARNING: The first attempt to start Xvnc failed, possibly because the font Mar 03 21:50:38 localhost.localdomain vncserver_wrapper[9516]: catalog is not properly configured. Attempting to determine an appropriate Mar 03 21:50:38 localhost.localdomain vncserver_wrapper[9516]: font path for this system and restart Xvnc using that font path .
Изменить пароль
Для смены пароля выполните

Дисплей 0
Если вы пытаетесь запустить сервер на дисплее 0 и получаете ошибку
● vncserver@:0.service — Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:0.service; enabled; vendor preset: Active: failed (Result: exit-code) since Thu 2021-03-18 15:50:32 EET; 2min 8s ago Process: 4260 ExecStart=/usr/bin/vncserver_wrapper andrei %i (code=exited, status= Process: 4255 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 Main PID: 4260 (code=exited, status=2) Mar 03 21:50:38 localhost.localdomain vncserver_wrapper[4260]: (EE) Cannot establish Mar 03 21:50:38 localhost.localdomain vncserver_wrapper[4260]: _XSERVTransSocketUNIX Mar 03 21:50:38 localhost.localdomain vncserver_wrapper[4260]: _XSERVTransMakeAllCOT Mar 03 21:50:38 localhost.localdomain vncserver_wrapper[4260]: (EE) Mar 03 21:50:38 localhost.localdomain vncserver_wrapper[4260]: Fatal server error:
Убедитесь, что у вас не запущена X Window System обычно она занимает дисплей 0.
Если запущена — закройте иксы
Скрипты для быстрой установки
Если вам нужно часто устанавливать VNC на разные хосты — воспользуйтесь make или простым bash скриптом
# USERNAME замените на свой USERNAME =ndr .PHONY: install-vnc install-vnc: @ sudo yum -y update @ sudo yum -y install epel-release @ sudo yum -y install tigervnc-server @ vncpasswd @ sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service @ sudo sed -i 's/wrapper\ <USER>/wrapper\ $(USERNAME) /' /etc/systemd/system/vncserver@\:1.service @ systemctl enable vncserver@:1 @ systemctl daemon-reload @ sudo systemctl start vncserver@:1
#!/bin/bash USERNAME =andrei sudo yum -y update sudo yum -y install epel-release sudo yum -y install tigervnc-server vncpasswd sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service sudo sed -i » s/wrapper\ <USER>/wrapper\ $USERNAME/ » /etc/systemd/system/vncserver@\:1.service sudo systemctl enable vncserver@: 1 sudo systemctl daemon — reload sudo systemctl start vncserver@: 1
Кавычки в sed команде должны быть двойными. Иначе переменная USERNAME будет воспринята как просто текст.