VNC: различия между версиями
м (→С помощью Vino: diff vino-mate vino) |
(→С помощью x11vnc: Актуализировано под версию >=0.2) |
||
Строка 44: | Строка 44: | ||
== С помощью x11vnc == | == С помощью x11vnc == | ||
1. Установите пакет {{pkg|x11vnc-service}}: | 1. Установите пакет {{pkg|x11vnc-service}} (предназначен для популярных дистрибутивов с SystemD): | ||
apt-get install x11vnc-service | apt-get install x11vnc-service | ||
Строка 52: | Строка 52: | ||
3. Укажите пароль для удаленного доступа (необходимо записать его в /root/.vnc/passwd): | 3. Укажите пароль для удаленного доступа (необходимо записать его в /root/.vnc/passwd): | ||
# x11vnc --storepasswd | |||
Enter VNC password: | Enter VNC password: | ||
Verify password: | Verify password: | ||
Write password to /root/.vnc/passwd? [y]/n | Write password to /root/.vnc/passwd? [y]/n | ||
4. Параметры запускаемого сервисом сервера {{pkg|x11vnc}} указаны в скрипте запуска: {{path|/usr/sbin/x11vnc-start-daemon}} ({{pkg|x11vnc-service}} >= 0.2). Для внесения изменений - просто отредактируйте в нем последнюю строчку. | |||
{{todo|Данный файл не является ''%config(noreplace)'', поэтому будет перезаписан при обновлении пакета! | |||
В планах (когда потребуется внести какое-либо изменение в пакет) переместить параметры в отдельный конфигурационный файл.}} | |||
== Многопользовательский режим (tigervnc-server) == | == Многопользовательский режим (tigervnc-server) == |
Версия от 12:31, 16 ноября 2017
Работа с дистрибутивами Альт Линукс по протоколу VNC
Данная инструкция проверена на 8-й версии дистрибутивов ALT.
См. тж. Установка по vnc.
С помощью xorg-extension-vnc
1. Установите пакет xorg-extension-vnc:
apt-get install xorg-extension-vnc
2. Раскомментируйте строки в файле /etc/X11/xorg.conf.d/vnc.conf:
subst 's/^#//' /etc/X11/xorg.conf.d/vnc.conf
3. Укажите пароль для доступа к экрану:
# vncpasswd
Password:
Verify:
и укажите пароль дважды. Пароль должен быть длиной не менее 6 символов и, по соображениям безопасности, при наборе не показывается.
По умолчанию, необходимо записать пароль в файл /root/.vnc/passwd
4. Выйдите из сеанса и запустите его снова
С помощью Vino
1. Установите пакет vino-mate:
apt-get install vino-mate
2. В главном меню откройте Параметры -> Общий доступ к рабочему столу или запустите от обычного пользователя:
vino-preferences
3. Настройте необходимые Вам параметры подключения:
4. Для первичного применения параметров необходимо перезапустить сеанс (в дальнейшем изменение настроек будет происходить мгновенно).
PS: По умолчанию включено шифрование, если оно не нужно, либо Ваш VNC-клиент не поддерживает его, отключается он следующей командой:
gsettings set org.gnome.Vino require-encryption false
С помощью x11vnc
1. Установите пакет x11vnc-service (предназначен для популярных дистрибутивов с SystemD):
apt-get install x11vnc-service
2. Добавьте сервис в автозапуск и запустите его:
chkconfig x11vnc on service x11vnc start
3. Укажите пароль для удаленного доступа (необходимо записать его в /root/.vnc/passwd):
# x11vnc --storepasswd Enter VNC password: Verify password: Write password to /root/.vnc/passwd? [y]/n
4. Параметры запускаемого сервисом сервера x11vnc указаны в скрипте запуска: /usr/sbin/x11vnc-start-daemon (x11vnc-service >= 0.2). Для внесения изменений - просто отредактируйте в нем последнюю строчку.
Данный файл не является %config(noreplace), поэтому будет перезаписан при обновлении пакета!
В планах (когда потребуется внести какое-либо изменение в пакет) переместить параметры в отдельный конфигурационный файл.
Многопользовательский режим (tigervnc-server)
Устанавливаем пакет tigervnc-server:
apt-get install tigervnc-server
Есть две реализации разворачивания дополнительных X-серверов:
- централизованный сервис vncserver, отвечающий за работу всех виртуальных дисплеев;
- несколько сервисов vncserver@:<номер дисплея>
Рассмотрим оба этих способа, у каждого есть свои плюсы и недостатки
"Всё в одном сервисе"
1. Добавьте в автозагрузку:
chkconfig vncserver on
2. Далее необходимо настроить виртуальные дисплеи, их количество и параметры запуска. Для это необходимо отредактировать файл /etc/sysconfig/vncservers. Пример содержимого файла:
VNCSERVERS="1:user1 2:user2" VNCSERVERARGS[1]="-geometry 800x600 -depth 16" VNCSERVERARGS[2]="-geometry 800x600 -localhost"
Переменные VNCSERVERARGS изменяет параметры по умолчанию для определенного дисплея (в квадратных скобках). Заданные пользователи - user1 и user2 - должны существовать в системе. Также для успешного старта VNC-сервера необходимо обязательно задать пароли (ничего общего с системными они не имеют) для этих пользователей (запишутся в ~/.vnc/passwd):
# su - user1 $ vncpasswd
3. Запускаем сервис:
service vncserver start
После этого можете проверить прослушиваемые порты:
# netstat -ntlp | grep vnc tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 12414/Xvnc tcp 0 0 127.0.0.1:5902 0.0.0.0:* LISTEN 12522/Xvnc tcp 0 0 :::5901 :::* LISTEN 12414/Xvnc tcp 0 0 ::1:5902 :::* LISTEN 12522/Xvnc
4. При подключении указываем номер дисплея (или номер порта), который соответствует необходимому пользователю:
vncviewer localhost:1 vncviewer localhost:5901
Плюсом же является удобство администрирования с помощью единого файла настройки /etc/sysconfig/vncservers
Для небольшого количества (до 3-5) пользователей данный вариант является вполне "конкурентоспособным". Если же пользователей планируется большое количество, либо просто нужна возможность перезапуска отдельного дисплея, то воспользуйтесь вторым способом"Каждый дисплей - отдельный сервис"
1. Скопируйте необходимое количество (= кол-во юзеров VNC) юнитов vncserver@.service (после @ подставьте требуемый номер дисплея):
cp /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:1.service cp /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:2.service
2. Приведите их к следующему виду (укажите имя пользователя и его домашнюю папку):
[Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking User=user1 # Clean any existing files in /tmp/.X11-unix environment ExecStartPre=-/usr/bin/vncserver -kill %i ExecStart=/usr/bin/vncserver %i PIDFile=/home/user1/.vnc/%H%i.pid ExecStop=-/usr/bin/vncserver -kill %i
[Install] WantedBy=multi-user.target
Для изменения дефолтных параметров подключения допишите необходимые в команде ExecStart.
3. Обновите конфигурацию сервисов и добавьте в автозагрузку необходимые из созданных:
systemctl daemon-reload chkconfig vncserver@:1 on chkconfig vncserver@:2 on
4. Задайте пароль для всех пользователей (см. 1.3.1.2)
5. Теперь каждым пользовательским сеансом/дисплеем можно управлять отдельно:
service vncserver@:2 restart
- добавьте в параметры запуска VNC-сервера ключ -localhost (запрещает подключение удаленным пользователям, не используя SSH туннель)
- запустите на сервере сервис sshd
- на клиентской машине создайте туннель: ssh <server's IP-address> -p <SSH-port> -L 5902:localhost:5902
- подключайтесь с клиентской машины (в другой консоли): vncviewer localhost:5902