Вопрос или проблема
Я установил Ubuntu 20.04 и tightvncserver, однако, когда я подключаюсь к рабочему столу, я вижу серый рабочий стол. Я попробовал несколько идей вручную запустить gnome-session в файле xstartup, но не смог это исправить. Оригинальная конфигурация представлена ниже.
$ cat xstartup
#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
# Исправление для работы GNOME
export XKL_XMODMAP_DISABLE=1
/etc/X11/Xsession
$ dpkg -l | grep vnc
ii libvncclient1:amd64 0.9.12+dfsg-9ubuntu0.2 amd64 API для написания собственного VNC сервера - клиентская библиотека
ii remmina-plugin-vnc:amd64 1.4.2+dfsg-1ubuntu1 amd64 VNC плагин для Remmina
ii tightvncserver
$ vncserver -geometry 1300x900 :1
Новый 'X' рабочий стол - Frontend:1
Запуск приложений, указанных в /home/mahmood/.vnc/xstartup
Файл журнала - /home/mahmood/.vnc/Frontend:1.log
Результат показан ниже
Есть идеи, как это исправить?
У меня нет решения, но я знаю, что у меня такая же проблема. Причина, вероятно, в d-bus, потому что именно d-bus всегда мешает работе gnome.
Посмотреть в ~/.vnc/ в файлах журнала вашего vnc сервера даст вам подсказку.
gnome-session-binary[257100]: КРИТИЧЕСКО: Мы потерпели неудачу, но кит не может помочь. Извините….
Я пробовал использовать аналогичные методы и руководства в интернете, но единственное, что сработало для меня, это скачать последнюю стабильную версию TIGERVNC (не TIGHTVNC) и установить ее, а затем настроить в соответствии с инструкциями в HOWTO.md для этого релиза.
На момент написания этого сообщения стабильная версия была 1.12, и установка прошла без проблем.
- Установите tigervnc из .deb файла (по разумной причине репозитории Ubuntu не используют последнюю версию)
- Добавьте пользователей в список в файле
/etc/vncserver.users
- Войдите как пользователь и установите VNC пароль с помощью команды vncpasswd
- Настройте ваш firewall, чтобы разрешить службу vnc-server
- Включите
vncserver:@.service
, если хотите, чтобы VNC сервер запускался при старте системы.
Вот и всё. TIGERVNC обновил способ, которым мы должны настраивать новые экземпляры VNC сервера для каждого нового пользователя – используя файл /etc/tigervnc/vncserver.users
. Этот метод намного проще, чем поддерживать и редактировать файлы службы systemd, как в старые времена 😛
Я даже не пришлось создавать файл xstartup!!!
Ответ или решение
Проблема с запуском GNOME при использованием TightVNC на Ubuntu 20.04 может быть вызвана несколькими факторами. Ниже приведены шаги для решения данной проблемы, а также рекомендации по переходу на более современный VNC-сервер – TigerVNC, который имеет лучшие возможности и меньше проблем с совместимостью.
1. Причины проблемы
Как вы уже заметили, основной причиной проблемы может быть неправильно настроенная сессия D-Bus или конфигурация VNC. Использование файла ~/.vnc/xstartup
для запуска сеанса GNOME может не всегда срабатывать из-за особенностей настройки окружения.
Приведённая вами ошибка gnome-session-binary[257100]: CRITICAL: We failed, but the fail whale is dead. Sorry....
указывает на проблемы с запуском GNOME. Возможно, это связано с отсутствием необходимых окружений или неправильной инициализацией D-Bus.
2. Проверка конфигурации xstartup
Убедитесь, что ваш файл ~/.vnc/xstartup
содержит следующие команды:
#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
export XKL_XMODMAP_DISABLE=1
gnome-session &
Обратите внимание, что если вы хотите запустить GNOME, вы должны добавить gnome-session &
вместо /etc/X11/Xsession
.
3. Установка и настройка TigerVNC
Если вышеуказанные шаги не помогли, я настоятельно рекомендую перейти на TigerVNC, который предлагает более стабильную работу, чем TightVNC. Вот пошаговое руководство для установки TigerVNC:
-
Установка TigerVNC:
Скачайте .deb файл последней стабильной версии TigerVNC (например, 1.12) и установите его с помощью команды:sudo dpkg -i <название_файла>.deb
-
Настройка пользователей:
Создайте файл/etc/vncserver.users
и добавьте туда пользователей, которые будут использовать VNC. -
Установка пароля VNC:
Войдите в систему с нужным пользователем и выполните команду:vncpasswd
-
Конфигурация фаервола:
Убедитесь, что ваш фаервол позволяет соединения через соответствующий порт VNC (обычно 5900+номер дисплея). -
Автозапуск VNC-сервера:
Если требуется запускать VNC-сервер при старте системы, вам нужно будет активировать сервис:sudo systemctl enable vncserver@:1.service
4. Заключение
После выполнения этих шагов TigerVNC должен работать без проблем. Он упрощает процесс настройки и устраняет многие проблемы, встречающиеся при использовании TightVNC. Если вы решили остаться на TightVNC, попробуйте решить проблемы с D-Bus и обновить свою конфигурацию xstartup, как указано выше. Однако для более стабильного и современного решения настоятельно рекомендую перейти к TigerVNC.
Если у вас остались вопросы или вам необходима дополнительная помощь, пожалуйста, не стесняйтесь задавать их!