Настройка VNC на чистой установке Debian 12 с MATE

Вопрос или проблема

Я настроил очень базовую сборку Debian (использовал образ с MATE).
В основном на этом сервере я ничего не делал, кроме:

  • Установил TimeShift и сразу же сделал снимок после завершения установки.
  • Затем добавил своего пользователя ‘boss’ в группу sudoers.
  • Ни iptables, ни ufw не установлены.
    После этого я попытался установить SSH, VNC, XRDP:
sudo apt update && sudo apt upgrade -y
sudo apt install -y openssh-server xrdp tightvncserver
# SSH
sudo systemctl enable ssh
sudo systemctl start ssh
# XRDP
echo "mate-session" > ~/.xsession
sudo systemctl restart xrdp
sudo systemctl enable xrdp
# VNC
vncpasswd
# Я установил простые пароли: 00000000 для полного доступа и 11111111 для просмотра только.
# Завершите и настройте сессию TightVNC
# Создайте xstartup
echo "#!/bin/sh" > ~/.vnc/xstartup
echo "export XDG_SESSION_TYPE=x11" >> ~/.vnc/xstartup
echo "mate-session &" >> ~/.vnc/xstartup
chmod +x ~/.vnc/xstartup
vncserver -kill :1
vncserver :1

Я пытаюсь подключиться из Windows, используя клиент TightVNC к системе Debian, и получаю ошибку
Ошибка в просмотрщике TightVNC: Не удалось установить соединение, так как целевая машина активно отказалась от него

$ ps aux | grep vnc
boss       60787  2.1  0.2  12432  9892 ?        S    10:13   0:59 Xtightvnc :1 -desktop X -auth /home/boss/.Xauthority -geometry 1024x768 -depth 24 -rfbwait 120000 -rfbauth /home/boss/.vnc/passwd -rfbport 5901 -fp /usr/share/fonts/X11/misc/,/usr/share/fonts/X11/Type1/,/usr/share/fonts/X11/75dpi/,/usr/share/fonts/X11/100dpi/ -co /etc/X11/rgb
boss      160972  0.0  0.0   6332  2012 pts/0    S+   11:01   0:00 grep vnc
$ netstat -tuln | grep 590
tcp        0      0 0.0.0.0:5901            0.0.0.0:*               LISTEN

Я могу получить новую ошибку Причина аутентификации: Аутентификация не удалась, возможно, это произошло из-за перезапуска VNC или когда я полностью удалил файл vncpasswd и сгенерировал его заново.
Я настроил /etc/ssh/sshd_config

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes

и sudo systemctl restart ssh
В этом случае я вижу, как рисуется экран, но с ошибкой Не удалось получить имя на шине сеанса
Я пробовал такие вещи, как:

export DISPLAY=:1
export XAUTHORITY=$HOME/.Xauthority
rm ~/.Xauthority
xauth generate :1 . trusted

Я выяснил, что с xterm я могу получить подключение, т.е. xstartup с:

export XDG_SESSION_TYPE=x11
export XAUTHORITY=$HOME/.Xauthority
export DISPLAY=:1
xterm &

Это максимум, чего я достиг. Некоторые другие вещи, которые я пробовал:

boss@hp2:~/.vnc$ ls -l ~/.Xauthority                                                       -rw------- 1 boss boss 146 Dec  2 08:16 /home/boss/.Xauthority                             boss@hp2:~/.vnc$ xauth generate :1 . trusted                                               xauth: (argv):1:  нельзя запросить расширение безопасности на дисплее ":1"                        boss@hp2:~/.vnc$ xauth generate :0 . trusted                                               Требуется авторизация, но протокол авторизации не задан                                                                                                                       xauth: (argv):1:  невозможно открыть дисплей ":0".                                             boss@hp2:~/.vnc$ xauth list                                                                hp2.WORKGROUP:1  MIT-MAGIC-COOKIE-1  a88caa26b603ed5c705c4ce7405e9709                      hp2/unix:1  MIT-MAGIC-COOKIE-1  a88caa26b603ed5c705c4ce7405e9709                           hp2/unix:10  MIT-MAGIC-COOKIE-1  b843b75c08de4094a345ce4e1f55d021                          boss@hp2:~/.vnc$ cat ~/.Xauthority                                                         1MIT-MAGIC-COOKIE-1&\p\L@^      hp21MIT-MAGIC-COOKIE-1&\p\L@^   hp210MIT-MAGIC-COOKIE-1C@ENU!boss@hp2:~/.vnc$ vi xstartup                                                             boss@hp2:~/.vnc$ cat xstartup                                                              #!/bin/sh                                                                                  export XDG_SESSION_TYPE=x11                                                                export XAUTHORITY=$HOME/.Xauthority                                                        mate-session &                                                                               boss@hp2:grep -e X11Forwarding -e X11UseLocalhost /etc/ssh/sshd_config
boss@hp2:~/.vnc$ !123                                                                      grep -e X11Forwarding -e X11UseLocalhost /etc/ssh/sshd_config                              X11Forwarding yes                                                                          X11UseLocalhost yes                                                                        #       X11Forwarding no                                                                   boss@hp2:~/.vnc$ sudo systemctl restart ssh                                                [sudo] пароль для boss:
boss@hp2:~/.vnc$ export DISPLAY
boss@hp2:~/.vnc$ export DISPLAY=:1
boss@hp2:~/.vnc$ export XAUTHORITY
boss@hp2:~/.vnc$ export XAUTHORITY=$HOME/.Xauthority
boss@hp2:~/.vnc$ vncserver -kill :1
vncserver :1
Убийство процесса Xtightvnc ID 5802

Новый 'X' рабочий стол - hp2:1

Запуск приложений, указанных в /home/boss/.vnc/xstartup
Файл журнала - /home/boss/.vnc/hp2:1.log

Я попробовал это, что нашел, предлагая в интернете:

export XDG_SESSION_TYPE=x11
export XAUTHORITY=$HOME/.Xauthority
export DISPLAY=:1
# Запустите dbus, если он еще не запущен
if ! pgrep -x "dbus-daemon" > /dev/null; then
    eval "$(dbus-launch --sh-syntax)"
    echo "DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS" >> ~/.dbus/Xdbus
    echo "DBUS_SESSION_BUS_PID=$DBUS_SESSION_BUS_PID" >> ~/.dbus/Xdbus
fi
# Источник окружения dbus
if [ -f ~/.dbus/Xdbus ]; then
    source ~/.dbus/Xdbus
fi

mate-session > ~/.vnc/mate-session.log &

Не удается, та же ошибка sebs dbus, как раньше, но я могу получить информацию из журнала:

boss@hp2:~/.vnc$ cat hp2:1.log                                                                                                                                                              02/12/24 10:13:35 Xvnc версия TightVNC-1.3.10                                                                                                                                              02/12/24 10:13:35 Авторское право (C) 2000-2009 Группа TightVNC                                                                                                                                    02/12/24 10:13:35 Авторское право (C) 1999 AT&T Laboratories Cambridge                                                                                                                            02/12/24 10:13:35 Все права защищены.                                                                                                                                                      02/12/24 10:13:35 См. http://www.tightvnc.com/ для информации о TightVNC                                                                                                                  02/12/24 10:13:35 Имя рабочего стола 'X' (hp2:1)                                                                                                                                                  02/12/24 10:13:35 Поддерживаемые версии протокола: 3.3, 3.7, 3.8, 3.7t, 3.8t                                                                                                                    02/12/24 10:13:35 Прослушивание VNC-соединений на TCP-порту 5901                                                                                                                            mate-session-is-accelerated: Нет составного расширения.                                                                                                                                        mate-session-check-accelerated: GL помощник завершился с кодом 256                                                                                                                              mate-session-check-accelerated: GLES помощник завершился с кодом 512                                                                                                                            mate-session[60795]: ПРЕДУПРЕЖДЕНИЕ: Не удалось получить org.gnome.SessionManager
                                                                                                                                                                                            02/12/24 10:13:55 Получено соединение от клиента 192.168.1.29                                                                                                                                   02/12/24 10:13:55 Используется версия протокола 3.8                                                                                                                                                02/12/24 10:13:55 Включение расширений протокола TightVNC                                                                                                                                     02/12/24 10:13:58 Аутентификация только для просмотра прошла от 192.168.1.29                                                                                                                           02/12/24 10:13:58 Используется плоское кодирование для клиента 192.168.1.29                                                                                                                              02/12/24 10:13:58 rfbProcessClientNormalMessage: игнорирование неизвестного кодирования 16                                                                                                               02/12/24 10:13:58 Используется уровень качества изображения 6 для клиента 192.168.1.29
02/12/24 10:13:58 rfbProcessClientNormalMessage: игнорирование неизвестного кодирования -223
02/12/24 10:13:58 Включение расширения протокола LastRect для клиента 192.168.1.29
02/12/24 10:13:58 Включение обновлений позиции курсора для клиента 192.168.1.29
02/12/24 10:13:58 Включение обновлений курсора полного цвета для клиента 192.168.1.29
02/12/24 10:14:03 Клиент 192.168.1.29 ушел
02/12/24 10:14:03 Статистика:
02/12/24 10:14:03   событий клавиатуры получено 1, событий указателя 166
02/12/24 10:14:03   обновления кадровой буфера 1, прямоугольников 18, байтов 5776
02/12/24 10:14:03     Последние отметки 1, байтов 12
02/12/24 10:14:03     обновления формы курсора 1, байтов 1068
02/12/24 10:14:03     обновления позиции курсора 1, байтов 12
02/12/24 10:14:03     плотные прямоугольники 15, байтов 4684
02/12/24 10:14:03   необработанные байты эквивалентны 3145740, коэффициент сжатия 671.592656

02/12/24 10:14:09 Получено соединение от клиента 192.168.1.29
02/12/24 10:14:09 Используется версия протокола 3.8
02/12/24 10:14:09 Включение расширений протокола TightVNC
02/12/24 10:14:11 Аутентификация полного контроля прошла от 192.168.1.29
02/12/24 10:14:11 Используется плоское кодирование для клиента 192.168.1.29
02/12/24 10:14:11 rfbProcessClientNormalMessage: игнорирование неизвестного кодирования 16
02/12/24 10:14:11 Используется уровень качества изображения 6 для клиента 192.168.1.29
02/12/24 10:14:11 rfbProcessClientNormalMessage: игнорирование неизвестного кодирования -223
02/12/24 10:14:11 Включение расширения LastRect протокола для клиента 192.168.1.29
02/12/24 10:14:11 Включение обновлений позиции курсора для клиента 192.168.1.29
02/12/24 10:14:11 Включение обновлений курсора полного цвета для клиента 192.168.1.29
mate-session[60795]: Gtk-CRITICAL: gtk_main_quit: утверждение 'main_loops != NULL' не выполнено
mate-session[60795]: ПРЕДУПРЕЖДЕНИЕ: GSIdleMonitor: Счетчик IDLETIME не найден
mate-session[60795]: GLib-GObject-CRITICAL: Пользовательский конструктор для класса GSIdleMonitor вернул NULL (что недопустимо). Пожалуйста, используйте GInitable вместо.
discover_other_daemon: 1mate-session[60795]: ПРЕДУПРЕЖДЕНИЕ: Не удалось найти поставщика '' необходимого компонента 'dock'

** (mate-settings-daemon:60815): ПРЕДУПРЕЖДЕНИЕ **: 10:14:13.999: Не удалось получить org.mate.SettingsDaemon

** (mate-settings-daemon:60815): ПРЕДУПРЕЖДЕНИЕ **: 10:14:13.999: Не удалось получить имя
Предупреждение управляющего окна: Уровень журнала 128: unsetenv() не является потокобезопасным и не должен использоваться после создания потоков
Предупреждение управляющего окна: Уровень журнала 32: не удалось найти расширение XKB.
Не удается зарегистрировать панельное приложение: одно уже работает.
discover_other_daemon: 1discover_other_daemon: 1discover_other_daemon: 1Ошибка: Инициализация модуля не удалась
Предупреждение управляющего окна: Отсутствует составное расширение, необходимое для композитинга
** (mate-volume-control-status-icon:60844): ПРЕДУПРЕЖДЕНИЕ **: 10:14:14.798: Значок состояния уже выполняется, выход

** (light-locker:60856): ОШИБКА **: 10:14:14.966: Переменная окружения XDG_SESSION_PATH не задана. Запущен ли LightDM?

** (mate-screensaver:60849): ПРЕДУПРЕЖДЕНИЕ **: 10:14:15.305: Защитная заставка уже запущена в этой сессии

(mate-power-manager:60852): PowerManager-ОШИБКА **: 10:14:15.509: Ошибка в dbus - GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: Доступ запрещен

Это самая базовая конфигурация, которую я могу попробовать с VNC, совершенно голый Debian, свежепоставленный и обновленный, и это полная неудача во всем (кроме xterm!). Надеюсь, здесь достаточно информации, чтобы указать на решение этой проблемы. Не хватает ли мне каких-либо важных компонентов (но я подумал, что VNC должен установить критические компоненты в качестве зависимостей)? Может кто-нибудь подсказать, как это исправить, пожалуйста?

Ответ или решение

Для настройки VNC на чистой установке Debian 12 с окружением рабочего стола MATE, следуйте этим пошаговым инструкциям для успешного подключения и устранения проблем.

1. Установка необходимых компонентов

Первым делом обновите пакеты и установите необходимые компоненты:

sudo apt update && sudo apt upgrade -y
sudo apt install -y openssh-server xrdp tightvncserver

2. Настройка SSH

После установки SSH, убедитесь, что служба запущена и включена:

sudo systemctl enable ssh
sudo systemctl start ssh

3. Настройка XRDP

Создайте файл ~/.xsession, который указывает, что необходимо запускать MATE:

echo "mate-session" > ~/.xsession

Затем проверьте и активируйте XRDP:

sudo systemctl enable xrdp
sudo systemctl restart xrdp

4. Настройка VNC

Теперь перейдите к настройке VNC:

  1. Установите пароль для VNC:

    vncpasswd
  2. Создайте файл xstartup для VNC:

    mkdir -p ~/.vnc
    echo "#!/bin/sh" > ~/.vnc/xstartup
    echo "export XDK_SESSION_TYPE=x11" >> ~/.vnc/xstartup
    echo "mate-session &" >> ~/.vnc/xstartup
    chmod +x ~/.vnc/xstartup
  3. Запустите сервер VNC:

    vncserver :1

5. Проверка сети

Проверьте, что VNC сервер запущен и слушает на порту 5901:

netstat -tuln | grep 590

Должен появиться вывод, подтверждающий прослушивание порта 5901.

6. Подключение к VNC-клиенту

Попробуйте подключиться с клиента TightVNC с Windows, указав IP адрес вашего Debian сервера и порт, например 192.168.1.x:5901. Если вы получаете ошибки подключения, это может быть связано с проблемами конфигурации или сетевыми настройками.

7. Устранение ошибок

Если вы получаете ошибку "Authentication failed" или другие ошибки, попробуйте следующее:

  • Убедитесь, что файл ~/.vnc/passwd существует и у пользователя есть права на его чтение.

  • Удалите ~/.Xauthority и создайте его заново:

    rm ~/.Xauthority
    xauth generate :1 . trusted
  • Если отображается сообщение "Could not acquire name on session bus", возможно, требуется запуск D-Bus. Добавьте этот код в свой xstartup:

    if ! pgrep -x "dbus-daemon" > /dev/null; then
      eval "$(dbus-launch --sh-syntax)"
    fi

8. Логи и диагностика

Если VNC по-прежнему не работает, изучите логи VNC, чтобы понять причину ошибки:

cat ~/.vnc/your_host_name:1.log

Обратите внимание на сообщения об ошибках, которые могут помочь в диагностике проблемы, например, предупреждения о переменных среды XDG и XAUTHORITY.

Заключение

Следуя данным шагам, вы сможете успешно настроить и подключить VNC к вашей установки Debian 12 с MATE. Если возникнут дополнительные вопросы или трудности, учитывайте наличие сообществ и форумов, которые могут предложить поддержку и советы при работе с Linux и VNC.

Оцените материал
Добавить комментарий

Капча загружается...