VNC Ubuntu

Содержание
Введение
Установка tightvncserver
Запустить VNC сервер
Сделать системным сервисом
Проверить состояние
Открыть порт в Firewall
Подключение к VNC серверу
Остановить VNC сервер
Изменить порт
Дисплей 0
Похожие статьи

Введение

Virtual Network Computing (VNC) — система удалённого доступа к рабочему столу компьютера, использующая протокол RFB (англ. Remote FrameBuffer, удалённый кадровый буфер).

Управление осуществляется путём передачи нажатий клавиш на клавиатуре и движений мыши с одного компьютера на другой и ретрансляции содержимого экрана через компьютерную сеть.

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

Существуют реализации клиентской и серверной части практически для всех операционных систем, в том числе и для Java (включая мобильную платформу J2ME).

К одному VNC-серверу одновременно могут подключаться множественные клиенты.

Наиболее популярные способы использования VNC — удалённая техническая поддержка и доступ к рабочему компьютеру из дома.

Установка tightvncserver

Выполните

sudo apt update

Если у вас нет X-сервера выполните

sudo apt install xfce4 xfce4-goodies
sudo apt install tightvncserver

Залогиньтесь под пользователем, которому вы хотите дать доступ по vnc

vncserver

You will require a password to access your desktops. Password: Warning: password truncated to the length of 8. Verify: Would you like to enter a view-only password (y/n)? n xauth: file /home/andrei/.Xauthority does not exist New 'X' desktop is webserver:1 Creating default startup script /home/andrei/.vnc/xstartup Starting applications specified in /home/andrei/.vnc/xstartup Log file is /home/andrei/.vnc/webserver:1.log

view-only password это пароль для доступа только с правами на просмотр. Действия мыши и клавиатуры во время такого доступа ограничены.

Чтобы поменять пароль можно воспользоваться командой vncpasswd

Директория с настройками

ls ~/.vnc

passwd webserver:1.log webserver:1.pid xstartup

Запуск VNC сервера

Запустить VNC sever вручную

Чтобы запустить сервер на следующем свободном порту

vncserver

New 'X' desktop is webserver:2 Starting applications specified in /home/andrei/.vnc/xstartup Log file is /home/andrei/.vnc/webserver:2.log

Настройка

vncserver -kill :1

Killing Xtightvnc process ID 42727

Создайте резервную копию файла с настройками

mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
vi ~/.vnc/xstartup

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

chmod +x ~/.vnc/xstartup
vncserver -localhost

New 'X' desktop is webserver:1 Starting applications specified in /home/andrei/.vnc/xstartup Log file is /home/andrei/.vnc/webserver:1.log

Запуск в качестве системного сервиса

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

[Unit] Description=Start TightVNC server at startup After=syslog.target network.target [Service] Type=forking User=andrei Group=andrei WorkingDirectory=/home/andrei PIDFile=/home/andrei/.vnc/%H:%i.pid ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :%i ExecStop=/usr/bin/vncserver -kill :%i [Install] WantedBy=multi-user.target

Замените значения полей User, Group, WorkingDirectory на нужные вам.

sudo systemctl daemon-reload

Чтобы включить дисплей порт 1

sudo systemctl enable vncserver@1.service

Проверить статус VNC сервера

sudo systemctl status -l 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 Wed 2023-02-01 02:26:31 UTC; 1min ago Process: 10406 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=2) Process: 10420 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :1 (code=exited, status=0/SUCCESS) Main PID: 10428 (Xtightvnc) Tasks: 123 (limit: 1066) Memory: 195.0M CGroup: /system.slice/system-vncserver.slice/vncserver@1.service ├─10428 Xtightvnc :1 -desktop X -auth /home/andrei/.Xauthority -geometry 1280x800 -depth 24 -rfbwait 120000 -rfbauth /home> ├─10434 xfce4-session ├─10445 /usr/bin/dbus-launch --sh-syntax --exit-with-session xfce4-session ├─10446 /usr/bin/dbus-daemon --syslog --fork --print-pid 5 --print-address 7 --session ├─10450 /usr/libexec/at-spi-bus-launcher ├─10455 /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3 ├─10459 /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd ├─10465 /usr/libexec/at-spi2-registryd --use-gnome-session ├─10471 /usr/bin/ssh-agent -s ├─10475 xfwm4 ├─10479 /usr/libexec/gvfsd ├─10486 xfsettingsd ├─10487 xfce4-panel ├─10493 Thunar --daemon ├─10501 xfdesktop ├─10504 /usr/libexec/geoclue-2.0/demos/agent ├─10509 /usr/lib/x86_64-linux-gnu/xfce4/panel/wrapper-2.0 /usr/lib/x86_64-linux-gnu/xfce4/panel/plugins/libsystray.so 6 33> ├─10513 /usr/lib/x86_64-linux-gnu/xfce4/panel/wrapper-2.0 /usr/lib/x86_64-linux-gnu/xfce4/panel/plugins/libpulseaudio-plug> ├─10515 /usr/lib/x86_64-linux-gnu/xfce4/panel/wrapper-2.0 /usr/lib/x86_64-linux-gnu/xfce4/panel/plugins/libxfce4powermanag> ├─10516 nm-applet ├─10517 /usr/lib/x86_64-linux-gnu/xfce4/panel/wrapper-2.0 /usr/lib/x86_64-linux-gnu/xfce4/panel/plugins/libnotification-pl> ├─10518 /usr/bin/python3 /usr/share/system-config-printer/applet.py ├─10519 /usr/lib/x86_64-linux-gnu/xfce4/panel/wrapper-2.0 /usr/lib/x86_64-linux-gnu/xfce4/panel/plugins/libactions.so 14 3> ├─10527 /usr/libexec/evolution-data-server/evolution-alarm-notify ├─10542 xfce4-power-manager ├─10556 /usr/lib/x86_64-linux-gnu/xfce4/notifyd/xfce4-notifyd ├─10563 /usr/libexec/dconf-service ├─10580 /usr/libexec/evolution-source-registry ├─10588 /usr/libexec/goa-daemon ├─10599 /usr/libexec/goa-identity-service ├─10606 /usr/libexec/evolution-calendar-factory ├─10620 /usr/libexec/evolution-addressbook-factory ├─10629 /usr/libexec/gvfs-udisks2-volume-monitor ├─10643 /usr/libexec/gvfs-afc-volume-monitor ├─10649 /usr/libexec/gvfs-gphoto2-volume-monitor ├─10654 /usr/libexec/gvfs-mtp-volume-monitor ├─10659 /usr/libexec/gvfs-goa-volume-monitor ├─10666 /usr/libexec/gvfsd-trash --spawner :1.7 /org/gtk/gvfs/exec_spaw/0 └─10673 /usr/libexec/gvfsd-metadata Feb 01 02:26:31 webserver dbus-daemon[10446]: [session uid=1000 pid=10444] Successfully activated service 'org.gtk.vfs.AfcVolumeMonitor' Feb 01 02:26:31 webserver dbus-daemon[10446]: [session uid=1000 pid=10444] Activating service name='org.gtk.vfs.GPhoto2VolumeMonitor' r> Feb 01 02:26:31 webserver dbus-daemon[10446]: [session uid=1000 pid=10444] Successfully activated service 'org.gtk.vfs.GPhoto2VolumeMon> Feb 01 02:26:31 webserver dbus-daemon[10446]: [session uid=1000 pid=10444] Activating service name='org.gtk.vfs.MTPVolumeMonitor' reque> Feb 01 02:26:31 webserver dbus-daemon[10446]: [session uid=1000 pid=10444] Successfully activated service 'org.gtk.vfs.MTPVolumeMonitor' Feb 01 02:26:31 webserver dbus-daemon[10446]: [session uid=1000 pid=10444] Activating service name='org.gtk.vfs.GoaVolumeMonitor' reque> Feb 01 02:26:31 webserver dbus-daemon[10446]: [session uid=1000 pid=10444] Successfully activated service 'org.gtk.vfs.GoaVolumeMonitor' Feb 01 02:26:31 webserver dbus-daemon[10446]: [session uid=1000 pid=10444] Successfully activated service 'org.freedesktop.thumbnails.T> Feb 01 02:26:31 webserver dbus-daemon[10446]: [session uid=1000 pid=10444] Activating service name='org.gtk.vfs.Metadata' requested by > Feb 01 02:26:31 webserver dbus-daemon[10446]: [session uid=1000 pid=10444] Successfully activated service 'org.gtk.vfs.Metadata'

Проверить, что vnc server слушает на порту 5901 можно командой

ss -tulpn| grep vnc

tcp LISTEN 0 5 *:5901 *:* users:(("Xvnc",pid=1330,fd=9)) tcp LISTEN 0 128 *:6001 *:* users:(("Xvnc",pid=1330,fd=6)) tcp LISTEN 0 5 [::]:5901 [::]:* users:(("Xvnc",pid=1330,fd=10)) tcp LISTEN 0 128 [::]:6001 [::]:* users:(("Xvnc",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 из Ubuntu по VNC изображение с сайта www.andreyolegovich.ru
Подключение к CentOS из Ubuntu по VNC через Remmina
www.andreyolegovich.ru

Введите пароль пользователя для которого вы создали vncpasswd

Подключение к Centos из Ubuntu по VNC изображение с сайта www.andreyolegovich.ru
Подключение к CentOS из Ubuntu по VNC через Remmina
www.andreyolegovich.ru
Подключение к Centos из Ubuntu по VNC изображение с сайта www.andreyolegovich.ru
Подключение к CentOS из Ubuntu по 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-02-01 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) Feb 01 02:26:31 localhost.localdomain systemd[1]: Starting Remote desktop service (VNC)... Feb 01 02:26:31 localhost.localdomain systemd[1]: Started Remote desktop service (VNC). Feb 01 02:26:31 localhost.localdomain vncserver_wrapper[8426]: Warning: localhost.localdomain:0 is taken because of /tmp/.X0-lock Feb 01 02:26:31 localhost.localdomain vncserver_wrapper[8426]: Remove this file if there is no X server localhost.localdomain:0 Feb 01 02:26:31 localhost.localdomain vncserver_wrapper[8426]: A VNC server is already running as :0 Feb 01 02:26:31 localhost.localdomain systemd[1]: vncserver@:0.service: main process exited, code=exited, status=2/INVALIDARGUMENT Feb 01 02:26:31 localhost.localdomain vncserver_wrapper[8426]: FATAL: 'runuser -l andrei' failed! Feb 01 02:26:31 localhost.localdomain systemd[1]: Unit vncserver@:0.service entered failed state. Feb 01 02:26:31 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

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-02-01 00:01:00 EET; 13s ago Process: 9358 ExecStart=/usr/bin/vncserver_wrapper andrei %i (code=exited, status=2) Process: 9356 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS) Main PID: 9358 (code=exited, status=2) Feb 01 02:26:31 localhost.localdomain systemd[1]: Starting Remote desktop service (VNC)... Feb 01 02:26:31 localhost.localdomain systemd[1]: Started Remote desktop service (VNC). Feb 01 02:26:31 localhost.localdomain vncserver_wrapper[9358]: Warning: localhost.localdomain:0 is taken because of /tmp/.X11-unix/X0 Feb 01 02:26:31 localhost.localdomain vncserver_wrapper[9358]: Remove this file if there is no X server localhost.localdomain:0 Feb 01 02:26:31 localhost.localdomain vncserver_wrapper[9358]: A VNC server is already running as :0 Feb 01 02:26:31 localhost.localdomain systemd[1]: vncserver@:0.service: main process exited, code=exited, status=2/INVALIDARGUMENT Feb 01 02:26:31 localhost.localdomain vncserver_wrapper[9358]: FATAL: 'runuser -l andrei' failed! Feb 01 02:26:31 localhost.localdomain systemd[1]: Unit vncserver@:0.service entered failed state. Feb 01 02:26:31 localhost.localdomain systemd[1]: vncserver@:0.service failed.

Теперь нужно удалить файл .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-02-01 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 Feb 01 02:26:31 localhost.localdomain systemd[1]: Starting Remote desktop service (VNC)... Feb 01 02:26:31 localhost.localdomain systemd[1]: Started Remote desktop service (VNC). Feb 01 02:26:31 localhost.localdomain vncserver_wrapper[9516]: WARNING: The first attempt to start Xvnc failed, possibly because the font Feb 01 02:26:31 localhost.localdomain vncserver_wrapper[9516]: catalog is not properly configured. Attempting to determine an appropriate Feb 01 02:26:31 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) Feb 01 02:26:31 localhost.localdomain vncserver_wrapper[4260]: (EE) Cannot establish Feb 01 02:26:31 localhost.localdomain vncserver_wrapper[4260]: _XSERVTransSocketUNIX Feb 01 02:26:31 localhost.localdomain vncserver_wrapper[4260]: _XSERVTransMakeAllCOT Feb 01 02:26:31 localhost.localdomain vncserver_wrapper[4260]: (EE) Feb 01 02:26:31 localhost.localdomain vncserver_wrapper[4260]: Fatal server error:

Убедитесь, что у вас не запущена X Window System обычно она занимает дисплей 0.

Если запущена - закройте иксы

Похожие статьи
Ubuntu
Установка
Настройка сети
SSH: удалённый доступ
SCP: обмен файлами;
Firewall
Дата и время
X Window System Ubuntu
xrandr: Поменять местами экраны
XRDP: Удалённый рабочий стол
VNC: Удалённый рабочий стол
Wayland
Изменить machine-id
Изменить ulimit
xclip: Работа с буфером обмена
dpkg: Установка из .deb файлов
Удалить старые ядра
FAQ
Файлы
Объединить .pdf файлы
diff: сравнение файлов
find: поиск файлов
kill: завершить процесс
make
signal: системные сигналы
env: переменные окружения
localectl: язык
systemctl: Список активных сервисов
cron: задания по расписанию
sudo

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

IT

Образование

Актуально сейчас

Разное

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: