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

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


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 ≥ 11.10 (в том числе 14.04): 1)

/etc/init/x11vnc.conf
start on login-session-start
script
# set X11VNC_REVERSE_CONNECTION_NO_AUTH=1 for passwordless reverse connections
X11VNC_REVERSE_CONNECTION_NO_AUTH=1 /usr/bin/x11vnc -rfbauth /etc/passwd.vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth /var/run/lightdm/root/:0 -forever -o /var/log/x11vnc.log
end script

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

sudo service x11vnc start
sudo service x11vnc stop

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

Данный вариант устанавливает 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 · Последние изменения: 2020-03-22 20:27 — nikolay