Серый экран VNC на debian 10 gnome 3

введите описание изображения здесь

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

Я описываю, что именно сделал:

Сначала я установил debian10-netinstall.

Затем я установил Gnome с помощью команды ‘Tasksel’.

Затем я использовал Руководство для установки vnc-сервера. Затем я запустил vncserver с помощью этой команды tightvncserver -geometry 1024×720 :1, и вот что получилось:

New ‘X’ desktop is debian:1Starting applications specified in /home/parsa/.vnc/xstartupLog file is /home/parsa/.vnc/debian:1.log

И вот ~/.vnc/debian:1.log :

parsa@debian:~$ tail -f .vnc/debian:1.log

26/09/19 11:41:12 Xvnc version TightVNC-1.3.9
26/09/19 11:41:12 Copyright (C) 2000-2007 TightVNC Group
26/09/19 11:41:12 Copyright (C) 1999 AT&T Laboratories Cambridge
26/09/19 11:41:12 All Rights Reserved.
26/09/19 11:41:12 See http://www.tightvnc.com/ for information on TightVNC26/09/19 11:41:12 Desktop name ‘X’ (debian:1)
26/09/19 11:41:12 Protocol versions supported: 3.3, 3.7, 3.8, 3.7t, 3.8t
26/09/19 11:41:12 Listening for VNC connections on TCP port 5901# Failed to parse arguments: Unknown option —login

Как видите, в последней строке есть ошибка.

Я исправил это, закомментировав строку с “-login” в этом файле :)) /usr/bin/x-terminal-emulator

Затем я перезапустил vncserver:

parsa@debian:~$ tightvncserver -kill :1
Killing Xtightvnc process ID 910

parsa@debian:~$ tightvncserver -geometry 1024×720 :1
New ‘X’ desktop is debian:1
Starting applications specified in /home/parsa/.vnc/xstartupLog file is /home/parsa/.vnc/debian:1.log

Затем посмотрим файл журнала еще раз

tail -f .vnc/debian:1.log

# watch_established: «/org/gnome/desktop/interface/» (establishing: 1)
# watch_established: «/org/gnome/settings-daemon/peripherals/mouse/» (establishing: 1)
# watch_established: «/org/gnome/desktop/sound/» (establishing: 1)
# watch_established: «/org/gnome/desktop/privacy/» (establishing: 1)
# watch_established: «/org/gnome/desktop/wm/preferences/» (establishing: 1)
# watch_established: «/org/gnome/settings-daemon/plugins/xsettings/» (establishing: 1)
# watch_established: «/org/gnome/desktop/a11y/» (establishing: 1)
# watch_fast: «/org/gnome/terminal/legacy/» (establishing: 0, active: 0)
# unwatch_fast: «/org/gnome/terminal/legacy/» (active: 0, establishing: 1)
# watch_established: «/org/gnome/terminal/legacy/» (establishing: 0)

Теперь, когда ошибка исчезла, я подключаюсь к vncserver, и эти строки появляются в журнале:

26/09/19 12:18:05 Got connection from client 192.168.1.131
26/09/19 12:18:05 Using protocol version 3.8
26/09/19 12:18:05 Full-control authentication passed by 192.168.1.131
26/09/19 12:18:05 rfbProcessClientNormalMessage: ignoring unknown encoding 24
26/09/19 12:18:05 rfbProcessClientNormalMessage: ignoring unknown encoding 16
26/09/19 12:18:05 rfbProcessClientNormalMessage: ignoring unknown encoding 22
26/09/19 12:18:05 rfbProcessClientNormalMessage: ignoring unknown encoding 21
26/09/19 12:18:05 rfbProcessClientNormalMessage: ignoring unknown encoding 15
26/09/19 12:18:05 Using zlib encoding for client 192.168.1.131
26/09/19 12:18:05 rfbProcessClientNormalMessage: ignoring unknown encoding -314
26/09/19 12:18:05 Enabling full-color cursor updates for client 192.168.1.131
26/09/19 12:18:05 rfbProcessClientNormalMessage: ignoring unknown encoding -223
26/09/19 12:18:05 Pixel format for client 192.168.1.131:
26/09/19 12:18:05 8 bpp, depth 6
26/09/19 12:18:05 true couleur: max r 3 g 3 b 3, shift r 4 g 2 b 0
26/09/19 12:18:05 Using raw encoding for client 192.168.1.131
26/09/19 12:18:05 rfbProcessClientNormalMessage: ignoring unknown encoding 24
26/09/19 12:18:05 rfbProcessClientNormalMessage: ignoring unknown encoding 22
26/09/19 12:18:05 rfbProcessClientNormalMessage: ignoring unknown encoding 21
26/09/19 12:18:05 rfbProcessClientNormalMessage: ignoring unknown encoding 16
26/09/19 12:18:05 rfbProcessClientNormalMessage: ignoring unknown encoding 15
26/09/19 12:18:05 rfbProcessClientNormalMessage: ignoring unknown encoding -314
26/09/19 12:18:05 Enabling full-color cursor updates for client 192.168.1.131
26/09/19 12:18:05 rfbProcessClientNormalMessage: ignoring unknown encoding -223
26/09/19 12:18:05 rfbProcessClientNormalMessage: ignoring unknown encoding 24
26/09/19 12:18:05 rfbProcessClientNormalMessage: ignoring unknown encoding 16
26/09/19 12:18:05 rfbProcessClientNormalMessage: ignoring unknown encoding 22
26/09/19 12:18:05 rfbProcessClientNormalMessage: ignoring unknown encoding 21
26/09/19 12:18:05 rfbProcessClientNormalMessage: ignoring unknown encoding 15
26/09/19 12:18:05 Using zlib encoding for client 192.168.1.131
26/09/19 12:18:05 rfbProcessClientNormalMessage: ignoring unknown encoding -314
26/09/19 12:18:05 Enabling full-color cursor updates for client 192.168.1.131
26/09/19 12:18:05 rfbProcessClientNormalMessage: ignoring unknown encoding -223
26/09/19 12:18:05 Pixel format for client 192.168.1.131:
26/09/19 12:18:05 32 bpp, depth 24, little endian
26/09/19 12:18:05 true couleur: max r 255 g 255 b 255, shift r 16 g 8 b 0
26/09/19 12:18:05 no translation needed

и я вижу серый экран в vnc viewer с черным курсором X :

введите описание изображения здесь

Не могли бы вы помочь мне решить эту проблему?

Я много гуглил об этой ошибке rfbProcessClientNormalMessage: ignoring unknown encoding, но не смог найти решение.

вот мой файл ~/.vnc/xstartup между прочим:

#!/bin/shxrdb $HOME/.Xresourcesxsetroot -solid greyx-terminal-emulator -geometry 80×24+10+10 -ls -title «$VNCDESKTOP Desktop» &# x-window-manager &gnome-session &

Спасибо.

Чтобы преодолеть это, я использовал этот ~/.vnc/xstartup из старого решения:

#!/bin/shunset SESSION_MANAGERunset DBUS_SESSION_BUS_ADDRESSstartxfce4 &[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresourcesxsetroot -solid grey &vncconfig -iconic &

и это работает.

Этот вопрос касается debian с gnome 3. Но остальные ответы в основном о debian с xfce.
Эта проблема заняла у меня много времени. Наконец-то этот документ спас меня.
Я использую debian 10 с установленным gnome, tigervnc как vnc-server.

#установите vnc server

sudo apt install tigervnc-standalone-server

#запустите vncserver и разрешите удаленный вход

vncserver -localhost no :1

#проверьте статус прослушивания порта

netstat -tul | grep 5901

Вы можете использовать tiger vnc viewer для подключения к vnc server с <ip>:1 или <ip>:5901

Помните:
1. Выйдите из текущего пользователя перед запуском vnc server.
2. Вы должны использовать ssh-туннель в общественной сети и забыть о -localhost no

#https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-debian-10

ssh -L 5901:127.0.0.1:5901 -C -N -l loginuser your_server_ip

подключитесь к vnc-серверу с localhost:1 или localhost:5901

Более того:
Вы можете увидеть документ https://help.ubuntu.com/community/VNC/Servers о том, как запустить vncserver TigerVNC при загрузке.

Была такая же проблема при попытке подключиться к Debian 10 через VNC.

Очевидно, Debian 10 использует Wayland, и у VNC с этим возникают некоторые проблемы.

Решением для меня было отключить Wayland. Для этого отредактируйте /etc/gdm3/daemon.conf и раскомментируйте строку

#WaylandEnable=false

чтобы вместо этого она выглядела так

WaylandEnable=false

Затем перезагрузил сервер, запустил VNC-сервер, и я смог подключиться к нему.

Установка

sudo apt install gnome-session-flashback

и отредактируйте ~/.vnc/xstartup

#!/bin/sh autocutsel -fork xrdb $HOME/.Xresources xsetroot -solid grey export XKL_XMODMAP_DISABLE=1 export XDG_CURRENT_DESKTOP=»GNOME-Flashback:Unity» export XDG_MENU_PREFIX=»gnome-flashback-» unset DBUS_SESSION_BUS_ADDRESS gnome-session —session=gnome-flashback-metacity —disable-acceleration-check —debug &

это решило мою проблему

Я прочитал ответы, и этот лучше всего подошел для моей конфигурации, которая это debian10 + gnome3 :

$ cat ~/.vnc/xstartup

#!/bin/shxrdb $HOME/.Xresourcesxsetroot -solid grey# Исправление для работы GNOMEexport XKL_XMODMAP_DISABLE=1unset DBUS_SESSION_BUS_ADDRESSgnome-session —disable-acceleration-check —debug &

Была такая же проблема для Debian 12 с запуском tightvncserver и Xfce4 – не могу выразить благодарность user387980 и Paulo Tomé за их ответ – как только я его увидел, я вспомнил, что использовал этот скрипт практически дословно в течение многих лет – но это было в предыдущей фазе моего мозга!! Я искал решение на протяжении около 24 часов, прежде чем нашел это, но как только я его увидел, я знал, что это сработает 🙂

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

Установка и настройка VNC-сервера на Debian 10, работающем с окружением рабочего стола GNOME 3, может вызвать определенные трудности, особенно когда вы сталкиваетесь с проблемой, подобной «серый экран» после подключения к серверу VNC. Основная причина ошибки заключается в неправильной настройке скрипта xstartup или в некорректных совместимых настройках VNC-сервера и GNOME 3. Рассмотрим, как можно решить эту проблему.

Теория

Когда VNC-клиент показывает серый экран с черным X-курсор, это связано с тем, что VNC-сервер не запускает корректно сессию оконного менеджера. В большинстве случаев проблема заключается в конфигурации файла ~/.vnc/xstartup, который отвечает за инициализацию пользовательской среды на сервере.

Также стоит учесть, что Debian 10 по умолчанию использует дисплейный сервер Wayland, который не всегда совместим с VNC, так как большинство VNC-серверов ожидают работы с Xorg. Таким образом, к проблемам может приводить и отсутствие поддержки некоторых графических компонентов со стороны используемого программного обеспечения.

Пример

Рассмотрим конкретную инструкцию по устранению данной проблемы на базе Debian 10 и GNOME 3. Вот стратегия, которая может помочь избежать серого экрана при использовании VNC.

  1. Отключение Wayland: Так как VNC может иметь проблемы совместимости с Wayland, отключение Wayland в пользу Xorg может быть решением. Для этого:
    • Откройте файл конфигурации: /etc/gdm3/daemon.conf.
    • Найдите строку #WaylandEnable=false и удалите символ комментария, чтобы она выглядела как WaylandEnable=false.
    • Перезагрузите сервер, чтобы изменения вступили в силу.
  2. Настройка файла .vnc/xstartup: Это критическая часть конфигурации VNC. Файл должен корректно запускать сессию GNOME. Пример корректного файла xstartup:#!/bin/shxrdb $HOME/.Xresourcesxsetroot -solid greyexport XKL_XMODMAP_DISABLE=1unset DBUS_SESSION_BUS_ADDRESSgnome-session —disable-acceleration-check —debug &Эти команды настраивают нужные переменные окружения и запускают сессию GNOME с нужными параметрами.
  3. Использование альтернативного VNC-сервера: Возможно, TightVNC не самый оптимальный выбор для работы с GNOME 3. Альтернатива — TigerVNC. Установите его с помощью:sudo apt install tigervnc-standalone-serverЗатем стартуйте сервер VNC:

    vncserver -localhost no :1

    Это позволит подключаться к VNC-серверу через клиент TigerVNC с параметрами <ip>:1 или <ip>:5901.

Применение

Теперь опишем, как практически применить все вышеперечисленные советы. После выполнения всех изменений вам необходимо убедиться, что:

  • Wayland отключен.
  • Файл xstartup корректно изменен, чтобы запускаться gnome-session.
  • Используется современный VNC-сервер, способный корректно работать с GNOME 3 и Xorg.

После этого выполните запуск VNC-сессии с обновленными настройками и попытайтесь подключиться через VNC-клиент. Если возникают ошибки, проверьте журналы VNC для выявления причин, например ~/.vnc/debian:1.log, что может дать представление о возникших проблемах.

Решение проблемы «серого экрана» требует комбинации вышеописанных действий. Правильная установка и настройка гарантирует, что GNOME 3 будет функционально работать с VNC, предоставляя пользователям полноценный графический интерфейс удаленно.