Содержание
VNC
Виснет VNC
«Замирает» экран при подключении к Linux с запущенным VNC-сервером и работающими эффектами compiz под проприетарными драйверами. Решение:
- использовать открытые драйверы
- отключить графические эффекты:
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 и предоставит отдельный сеанс пользователя.