Инструменты пользователя

Инструменты сайта


Action disabled: source
faq:linux:ubuntu:vnc

VNC

Виснет VNC

«Замирает» экран при подключении к Linux с запущенным VNC-сервером и работающими эффектами compiz под проприетарными драйверами. Решение:

  1. использовать открытые драйверы
  2. отключить графические эффекты:
 metacity  --replace & 

чтобы вернуть обратно эффекты:

 compiz --replace & 

Включить Vino через консоль

Чтобы влключить Vino (встроенный VNC-сервер) в Ubuntu с помощью bash через SSH нужно выполнить скрипт от имени пользователя:

enable_vnc
#!/bin/bash
# display number, assuming 0
display=0
 
# get the machine-id
read -r machineid < /var/lib/dbus/machine-id
 
# source the right file under .dbus to set the needed variables
. "$HOME/.dbus/session-bus/$machineid-$display"
 
# export the variables sourced from that file
export DBUS_SESSION_BUS_ADDRESS DBUS_SESSION_BUS_PID DBUS_SESSION_BUS_WINDOWID
 
# Run gconftool-2
gconftool-2 -s -t bool /desktop/gnome/remote_access/enabled true
gconftool-2 -s -t bool /desktop/gnome/remote_access/prompt_enabled false
gconftool-2 -s -t bool /desktop/gnome/remote_access/view_only false

Затем можно подключиться без пароля. Установить пароль можно через меню Система - Параметры - Удалённый рабочий стол.

Чёрная магия

sshd_config
...
GatewayPorts yes
...
ssh -R 192.168.0.254:2222:localhost:22 nikolay@kasatkin.org
from EAGLE use ssh -R kasatkin.org:5500:localhost:5500 nikolay@kasatkin.org

Системный VNC

Экран текущей сессии

Данный вариант устанавливает VNC-сервер для текущего интерактивного сеанса пользователя (X dispay :0).

sudo apt-get install x11vnc

Создаем файл для авторизации по паролю:

sudo x11vnc -storepasswd PASSWORD /etc/passwd.vnc

для Ubuntu ≥ 18.04: 1)

/etc/systemd/system/x11vnc.service
[Unit]
Description=Start VNC service
Requires=display-manager.service
After=display-manager.service
[Service]
Type=simple
Environment=X11VNC_REVERSE_CONNECTION_NO_AUTH=1
ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -xkb -noxfixes -noxrecord -noxdamage -repeat -shared -dontdisconnect -many -display :0 -rfbport 5900 -rfbauth /etc/passwd.vnc -o /var/log/x11vnc.log
[Install]
WantedBy=multi-user.target

Включить автозапуск сервиса:

sudo systemctl enable x11vnc

Чтобы остановить\запустить VNC-сервер:

sudo systemctl stop x11vnc
sudo systemctl start x11vnc

Посмотреть состояние сервера:

sudo systemctl status x11vnc

Экран отдельной сессии

Данный вариант устанавливает VNC-сервер для отдельного сеанса пользователя (X dispay > :0). для Ubuntu ≥ 14.04:

sudo apt-get install vnc4server

Создаем файл для авторизации по паролю (если его ещё нет):

sudo x11vnc -storepasswd PASSWORD /etc/passwd.vnc

Активируем службу через логин-менеджер LightDM:

/etc/lightdm/lightdm.conf.d/vnc-server.conf
#
# VNC Server configuration
# start additional X server with virtual desktops
#
# /etc/lightdm/lightdm.conf.d/vnc-server.conf
#
# enabled = True if connections should be allowed
# port = TCP/IP port to listen for connections on
#
[VNCServer]
enabled=true
#command=Xvnc
command=Xvnc -rfbauth /etc/passwd.vnc
port=5901
width=1024
height=768
depth=16

Чтобы запустить VNC-сервер нужно перезагрузить логин-менеджер (все активные сеансы пользователей будут закрыты!):

sudo service lightdm restart

В итоге VNC-сервер будет доступен на порту 5901 и предоставит отдельный сеанс пользователя.

faq/linux/ubuntu/vnc.txt · Последнее изменение: 2022-02-19 18:16 — 127.0.0.1