Вопрос или проблема
Я описываю, что именно сделал:
Сначала я установил 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.
- Отключение Wayland: Так как VNC может иметь проблемы совместимости с Wayland, отключение Wayland в пользу Xorg может быть решением. Для этого:
- Откройте файл конфигурации: /etc/gdm3/daemon.conf.
- Найдите строку #WaylandEnable=false и удалите символ комментария, чтобы она выглядела как WaylandEnable=false.
- Перезагрузите сервер, чтобы изменения вступили в силу.
- Настройка файла .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 с нужными параметрами.
- Использование альтернативного 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, предоставляя пользователям полноценный графический интерфейс удаленно.
