Не могу настроить VNC сервер

Ответить
Mikhail41
Сообщения: 11
Зарегистрирован: 24 июн 2023, 08:19
Operating system: Rosa Fresh 12.4

Не могу настроить VNC сервер

Сообщение Mikhail41 » 24 июн 2023, 08:38

Доброго времени суток! Прошу подсказать, возможно ли вообще на данный момент на Rosa Fresh настроить нормально работающий VNC сервер, как службу? Vino запускается только из под текущего пользователя, когда он уже вошел в систему, любые попытки настроить, как службу, выдают ошибки, с x11vnc такая же беда. Tigervnc запускается, как служба, но тоже в процессе работы идут ошибки, видимо приводящие к тому, что клиента выбрасывает максимум через минуту после подключения, а через минут 10 сам VNC падает. В других линуксах таких проблем не было. Может я что не так делаю, но всевозможные источники информации по настройке не помогают.

nickm
Сообщения: 316
Зарегистрирован: 31 май 2016, 07:08
Operating system: ROSA Fresh 2023.1

Не могу настроить VNC сервер

Сообщение nickm » 24 июн 2023, 11:39

Эту тему читали?

Там описано 2 варианта - через правку конфига дисплейного менеджера и через юнит systemd.

Первый вариант рабочий, второй не проверял:
Изображение

Mikhail41
Сообщения: 11
Зарегистрирован: 24 июн 2023, 08:19
Operating system: Rosa Fresh 12.4

Не могу настроить VNC сервер

Сообщение Mikhail41 » 24 июн 2023, 13:22

Я так понял, для конкретных DM настройка возможна, но не для всех. А так, перепробовал кучу настроек и ман перечитал, в любом случае выдает XOpenDisplay failed, и не важно :0 :1 :2.

nickm
Сообщения: 316
Зарегистрирован: 31 май 2016, 07:08
Operating system: ROSA Fresh 2023.1

Не могу настроить VNC сервер

Сообщение nickm » 24 июн 2023, 13:39

Mikhail41 писал(а):
24 июн 2023, 13:22
Я так понял, для конкретных DM настройка возможна, но не для всех.
Каждая DM специфичная, поэтому и настройки разные и для каждой может потребоваться свой подход.

У Вас какой DM?

Если "SDDM", чем не устраивает правка конфигов?

Mikhail41
Сообщения: 11
Зарегистрирован: 24 июн 2023, 08:19
Operating system: Rosa Fresh 12.4

Не могу настроить VNC сервер

Сообщение Mikhail41 » 24 июн 2023, 13:54

lxqt и xfce

nickm
Сообщения: 316
Зарегистрирован: 31 май 2016, 07:08
Operating system: ROSA Fresh 2023.1

Не могу настроить VNC сервер

Сообщение nickm » 24 июн 2023, 14:04

Mikhail41 писал(а):
24 июн 2023, 13:54
lxqt и xfce
Хмм, понятно.

Таких "РОС" в работе не встречал, но на досуге пощупаю.

nickm
Сообщения: 316
Зарегистрирован: 31 май 2016, 07:08
Operating system: ROSA Fresh 2023.1

Не могу настроить VNC сервер

Сообщение nickm » 26 июн 2023, 08:15

nickm писал(а):
24 июн 2023, 13:39
У Вас какой DM?
DM= Display Manager;
Mikhail41 писал(а):
24 июн 2023, 13:54
lxqt и xfce
DE= Desktop Environment;

DM<>DE;

В перечисленных DE в качестве DM выступает GDM, в принципе он и в "KDE PLASMA" является DM "по умолчанию".
Mikhail41 писал(а):
24 июн 2023, 08:38
но всевозможные источники информации по настройке не помогают.
В таком случае, как и говорилось выше, при ознакомлении с указанной темой, можно было бы увидеть рекомендацию ознакомиться со статьёю wiki "ArchLinux", где заботливо перечислены способы получения токенов авторизаций различных DM.

Ознакомьтесь со статьёю и попробуйте использовать рекомендации при подключении, и если что-то у вас не заработает, то покажите ошибки.
Полагаю с помощью подсказок от сообщества Мы сможем разрешить Ваш насущный вопрос.

Перед запуском unit-сервиса тестируйте работу x11vnc с заданными параметрами из командной строки и/ или пишите запуск сервиса в лог, что поможет Вам отловить ошибки.

nickm
Сообщения: 316
Зарегистрирован: 31 май 2016, 07:08
Operating system: ROSA Fresh 2023.1

Не могу настроить VNC сервер

Сообщение nickm » 26 июн 2023, 14:14

Вот, DE= LXQt, DM= GDM, работает в качестве unit-сервиса и на экране логина:
Изображение
Само решение для GDM можно подсмотреть здесь (для "ROSA Linux" его следует чуть-чуть подправить).

Если решение покажется сложным, тогда, как вариант, менять DM на установленных системах.

Mikhail41
Сообщения: 11
Зарегистрирован: 24 июн 2023, 08:19
Operating system: Rosa Fresh 12.4

Не могу настроить VNC сервер

Сообщение Mikhail41 » 26 июн 2023, 16:27

Если запускать x11vnc из терминала (с правами рут конечно), то всё прекрасно запускается и работает и через ручной запуск и через systemd unit, но при старте системы в лог выдаёт XOpenDisplay failed. Получается, что система пытается запустить x11vnc до старта иксов и как это поправить, я пока не знаю. Пробовал настройки с Ваших ссылок, результат один.

Аватара пользователя
MikiLinux
Сообщения: 102
Зарегистрирован: 11 июн 2023, 21:41
Operating system: Rosa Linux 12.4
Откуда: Vicino Roma
Контактная информация:

Не могу настроить VNC сервер

Сообщение MikiLinux » 26 июн 2023, 17:50

Mikhail41 писал(а):
26 июн 2023, 16:27
Если запускать x11vnc из терминала (с правами рут конечно), то всё прекрасно запускается и работает и через ручной запуск и через systemd unit, но при старте системы в лог выдаёт XOpenDisplay failed. Получается, что система пытается запустить x11vnc до старта иксов и как это поправить, я пока не знаю. Пробовал настройки с Ваших ссылок, результат один.
What is the output of the command you give?
e.g. if you give a command

Код: Выделить всё

x11vnc -display :0
what's the output after press Enter?
You can write answer in Russian language, I will help with the Yandex translator. :)

########################
Italiano
Qual è l'output del comando che dai? Ad esempio se dai il comando:

Код: Выделить всё

x11vnc -display :0
che cosa ti viene restituito dopo che premi Invio?
Puoi scrivere la risposta in russo, io mi aiuto con il traduttore.
Desktop: Rosa Linux 12.4 KDE/Plasma
PC Lab: Rosa Linux 12.4 XFCE
Portatile: Rosa Linux 12.4 LxQt

https://elettrolinux.com

nickm
Сообщения: 316
Зарегистрирован: 31 май 2016, 07:08
Operating system: ROSA Fresh 2023.1

Не могу настроить VNC сервер

Сообщение nickm » 26 июн 2023, 18:27

Mikhail41 писал(а):
26 июн 2023, 16:27
и как это поправить, я пока не знаю. Пробовал настройки с Ваших ссылок, результат один.
Можете показать, что Вы пробовали и чего достигли на данный момент?

Вы последнюю предложенную статью читали, про наличие двух unit-сервиса обратили внимание?
Почему требуется именно такая реализация стало понятно?

Mikhail41
Сообщения: 11
Зарегистрирован: 24 июн 2023, 08:19
Operating system: Rosa Fresh 12.4

Не могу настроить VNC сервер

Сообщение Mikhail41 » 26 июн 2023, 19:31

Один юнит такой:

Код: Выделить всё

[Unit]
Description=VNC Server (testuser)
After=graphical.target

[Service]
User=admin23
ExecStartPre=sh -c 'while ! pgrep -U testuser Xorg; do sleep 2; done'
ExecStartPre=+systemctl stop vnc-gdm.service
ExecStart=x11vnc -many -shared -display :1 -auth /home/testuser/.Xauthority -rfbauth /home/testuser/.vnc/passwd
Restart=on-failure
RestartSec=3

[Install]
WantedBy=graphical.target
Он запускается, только когда происходит авторизация пользователя, при выходе из аккаунта, он выключается и доступ пропадает, а мне нужно, чтобы доступ был и до логина.

Второй юнит:

Код: Выделить всё

[Unit]
Description=VNC Server (gdm)
After=graphical.target

[Service]
ExecStart=bash -c 'x11vnc -auth /run/user/500/gdm/Xauthority -display :1 -nopw -o /home/testuser/x11vnc.log'
Restart=on-failure
RestartSec=3

[Install]
WantedBy=graphical.target
Он тоже запускается, но не на что не влияет и не понятно для чего если честно. Если вставить вместо 500 id пользователя gdm, то юнит не стартует, но и папки соответствующей в каталоге нет.

nickm
Сообщения: 316
Зарегистрирован: 31 май 2016, 07:08
Operating system: ROSA Fresh 2023.1

Не могу настроить VNC сервер

Сообщение nickm » 26 июн 2023, 19:54

Вот этот юнит будет работать на экране пользователей:

Код: Выделить всё

cat /lib/systemd/system/vnc-gdm.service 
[Unit]
Description=VNC Server (gdm)
After=graphical.target

[Service]
ExecStart=/bin/bash -c "/usr/bin/x11vnc -auth /run/user/$(id -u gdm)/gdm/Xauthority -display :0 -rfbauth /etc/x11vnc.pass -o /var/log/x11vnc.log"
Restart=on-failure
RestartSec=3

[Install]
WantedBy=graphical.target
Здесь стоит обратить внимание и понимать, что до логина токены авторизаций у пользователей отсутствуют, но есть авторизация самого GDM, которую можно получить указанным способом.

После авторизации пользователей авторизация GDM уничтожается (в этом Вы можете убедиться открыв соседнюю консоль до авторизации и исследовать директорию /run/user/).

Также обратите внимание на путь к паролю и логу x11vnc - они системные, при необходимости задайте и/ или укажите Свои пути.

В конечном итоге Вам останется разобраться с порядком запуска сервисов, когда один (системный) запускает "x11vnc" для "отлова" экрана логина, а последующий, после логона пользователя, завершает системный и запускает "x11vnc" в сеансе пользователя.

Если пользователь в системе ровно один, то это не представляется проблемой.

Если пользователей несколько, возможно, что придётся заморочиться.

Mikhail41
Сообщения: 11
Зарегистрирован: 24 июн 2023, 08:19
Operating system: Rosa Fresh 12.4

Не могу настроить VNC сервер

Сообщение Mikhail41 » 26 июн 2023, 20:33

Спасибо, nickm, поправил юнит для gdm, теперь всё работает, конечно не совсем удобно с двойной авторизацией, но хоть так.

nickm
Сообщения: 316
Зарегистрирован: 31 май 2016, 07:08
Operating system: ROSA Fresh 2023.1

Не могу настроить VNC сервер

Сообщение nickm » 26 июн 2023, 20:49

Mikhail41 писал(а):
26 июн 2023, 20:33
конечно не совсем удобно с двойной авторизацией, но хоть так.
nickm писал(а):
26 июн 2023, 14:14
Если решение покажется сложным, тогда, как вариант, менять DM на установленных системах.
Mikhail41 писал(а):
26 июн 2023, 20:33
поправил юнит для gdm, теперь всё работает,
Хорошо, если так, но!

Разлогин пользователя и Вы потеряете подключение - если требуется поддерживать подключение, то придётся городить огород.

Если пользователей несколько - то также придётся городить огород.

Следует понимать, что это ограничение DM, а не DE и дистрибутива.

С другой стороны, если всё грамотно "заскриптовать" - выработать рабочее решение, то в конечном случае количество сервисов не будет иметь значение.

Mikhail41
Сообщения: 11
Зарегистрирован: 24 июн 2023, 08:19
Operating system: Rosa Fresh 12.4

Не могу настроить VNC сервер

Сообщение Mikhail41 » 27 июн 2023, 11:54

Я решил вопрос по-другому.
1. Устанавливаем tigervnc-server;
2. через vncpasswd от пользователя (без прав рут) задаем пароль, файлик появляется в стандартной директории /home/<USER>/.vnc
3. В той же директории создаём файл config и вносим параметры securitytypes=vncauth,tlsvnc и geometry=<удобное разрешение экрана>, файл можно также скопировать из директории /etc/tigervnc
4. В той же директории создаём файл xstartup со следующим содержимым:

Код: Выделить всё

#!/bin/bash
PATH=/usr/bin:/usr/sbin
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec <Ваш DE> &
Вместо <Ваш DE> должен быть указан исполнимый файл, запускающий X сессию:
  • Для XFCE: startxfce4
    Для GNOME: /usr/bin/gnome-session
    Для lxqt: startlxqt
Файл xstartup нужно сделать исполняемым (chmod +x xstartup)
5. В директории /etc/systemd/system создаем файл vncserver@.service со следующим содержимым:

Код: Выделить всё

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
WorkingDirectory=/home/<USER>
User=<USER>

ExecStartPre=/bin/sh -c '/usr/libexec/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/libexec/vncserver %i
ExecStop=/usr/libexec/vncserver -kill %i

Restart=on-success
RestartSec=3

[Install]
WantedBy=multi-user.target
P.S.: Для sddm и lightdm строка с параметром ExecStartPre не нужна!

5. перезагружаем демон systemctl daemon-reload, делаем автоматический запуск созданного юнита systemctl enable vncserver@:0
6. перезагружаем систему - должно работать уже на стадии авторизации.

И никаких двойных перелогинов и выход пользователя не влияет на работу юнита.

С x11vnc тоже разобрался, но наблюдаются глюки с клавиатурой и мышкой, в tigervnc их нет.

Ответить

Вернуться в «Обсуждение ROSA Fresh R12 (платформа 2021.1)»