Вопрос или проблема
Фоновая информация
Мне нужно подключиться удаленно с Windows к Ubuntu 16.04, используя Cinnamon DE 3.2.2.
Однако, когда я пытаюсь настроить VNC, все идет наперекосяк. После исследований я выяснил, что это связано с тем, что Cinnamon использует какое-то ускорение.
Что я пробовал
Я пробовал RealVNC, TightVNC, TigerVNC. Я просто получаю черный экран в VNC Viewer.
Я пробовал использовать RDP, и мне удалось подключиться, но только с помощью сеанса Gnome Flashback, что заставило меня использовать Gnome вместо Cinnamon, что противоречит моим целям.
Teamviewer … стоит денег для неперсонального использования.
Вопрос
Существует ли какой-либо VNC-сервер (или какие-либо методы удаленного просмотра рабочего стола) которые работают с текущим, ускоренным рабочим столом Cinnamon (3.2.2), работающим на Ubuntu 16.04?
Редактировать
Вот скриншот того, что происходит. Я использую VirtualBox для хостинга машины на своем компьютере с Windows 10. Справа находится моя программа VNC viewer, которая является Real VNC.
Редактировать 2
Содержимое вывода в терминале после подключения VNC:
22/12/2016 08:49:41 Получено соединение от клиента 192.168.10.92
22/12/2016 08:49:41 другие клиенты:
22/12/2016 08:49:41 Обычное сокет-соединение
22/12/2016 08:49:41 Отключена автоповтор клавиш X сервера.
22/12/2016 08:49:41 чтобы включить обратно, выполните: 'xset r on' (3 раза)
22/12/2016 08:49:41 увеличен accepted_client=1 для 192.168.10.92:56946 sock=12
22/12/2016 08:49:41 Версия протокола клиента 3.8
22/12/2016 08:49:41 отправлена версия протокола 3.8, используется 3.8
22/12/2016 08:49:41 rfbProcessClientSecurityType: выполняется обработчик для типа 1
22/12/2016 08:49:41 rfbProcessClientSecurityType: возвращение securityResult для клиента rfb версии >= 3.8
22/12/2016 08:49:41 rfbProcessClientNormalMessage: игнорируется неподдерживаемый тип кодирования Enc(0x00000016)
22/12/2016 08:49:41 rfbProcessClientNormalMessage: игнорируется неподдерживаемый тип кодирования Enc(0x00000015)
22/12/2016 08:49:41 rfbProcessClientNormalMessage: игнорируется неподдерживаемый тип кодирования Enc(0x0000000F)
22/12/2016 08:49:41 rfbProcessClientNormalMessage: игнорируется неподдерживаемый тип кодирования Enc(0xFFFFFEC6)
22/12/2016 08:49:41 Включение обновлений курсора с полной цветовой палитрой для клиента 192.168.10.92
22/12/2016 08:49:41 Включение расширения протокола NewFBSize для клиента 192.168.10.92
22/12/2016 08:49:41 Используется кодирование ZRLE для клиента 192.168.10.92
22/12/2016 08:49:41 Формат пикселей для клиента 192.168.10.92:
22/12/2016 08:49:41 8 bpp, глубина 8
22/12/2016 08:49:41 использует цветовую карту (не истинные цвета).
22/12/2016 08:49:41 rfbProcessClientNormalMessage: игнорируется неподдерживаемый тип кодирования Enc(0x00000016)
22/12/2016 08:49:41 rfbProcessClientNormalMessage: игнорируется неподдерживаемый тип кодирования Enc(0x00000015)
22/12/2016 08:49:41 rfbProcessClientNormalMessage: игнорируется неподдерживаемый тип кодирования Enc(0x0000000F)
22/12/2016 08:49:41 rfbProcessClientNormalMessage: игнорируется неподдерживаемый тип кодирования Enc(0xFFFFFEC6)
22/12/2016 08:49:41 Включение обновлений курсора с полной цветовой палитрой для клиента 192.168.10.92
22/12/2016 08:49:41 Включение расширения протокола NewFBSize для клиента 192.168.10.92
22/12/2016 08:49:41 Переключение с ZRLE на сырое кодирование для клиента 192.168.10.92
22/12/2016 08:49:41 rfbProcessClientNormalMessage: игнорируется неподдерживаемый тип кодирования Enc(0x0000000F)
22/12/2016 08:49:41 rfbProcessClientNormalMessage: игнорируется неподдерживаемый тип кодирования Enc(0x00000016)
22/12/2016 08:49:41 rfbProcessClientNormalMessage: игнорируется неподдерживаемый тип кодирования Enc(0x00000015)
22/12/2016 08:49:41 rfbProcessClientNormalMessage: игнорируется неподдерживаемый тип кодирования Enc(0xFFFFFEC6)
22/12/2016 08:49:41 Включение обновлений курсора с полной цветовой палитрой для клиента 192.168.10.92
22/12/2016 08:49:41 Включение расширения протокола NewFBSize для клиента 192.168.10.92
22/12/2016 08:49:41 Переключение с сырого на hextile кодирование для клиента 192.168.10.92
22/12/2016 08:49:41 Формат пикселей для клиента 192.168.10.92:
22/12/2016 08:49:41 32 bpp, глубина 24, маленький конец
22/12/2016 08:49:41 истинные цвета: макс r 255 g 255 b 255, сдвиг r 16 g 8 b 0
22/12/2016 08:49:41 перевода не требуется
22/12/2016 08:49:41 сеть клиента 1 скорость 1891.4 КБ/сек (1891.4 эффективных КБ/сек)
22/12/2016 08:49:41 задержка клиента 1: 0.5 мс
22/12/2016 08:49:41 dt1: 0.0002, dt2: 0.0093 dt3: 0.0005 байты: 17694
22/12/2016 08:49:41 link_rate: LR_LAN - 1 мс, 1891 КБ/с
22/12/2016 08:49:41 клиент useCopyRect: 192.168.10.92 -1
22/12/2016 08:49:41 клиент_set_net: 192.168.10.92 0.0042
22/12/2016 08:49:41 создан объект xdamage: 0x3400040
22/12/2016 08:49:42 cursor_noshape_updates_clients: 0
22/12/2016 08:49:44 cursor_noshape_updates_clients: 0
22/12/2016 08:49:49 cursor_noshape_updates_clients: 0
22/12/2016 08:49:50 создан selwin: 0x3400041
22/12/2016 08:49:50 вызван initialize_xfixes()
22/12/2016 08:49:52 cursor_noshape_updates_clients: 0
Вы пробовали TeamViewer?
https://www.teamviewer.com/en/download/linux/
Я использую его в своей системе debian с openbox, и он работает хорошо.
Поскольку рабочий стол Cinnamon является производной Gnome Shell и x11vnc
хорошо работает в моей системе, я бы сказал, что проблема у вас не в оконном композиторe.
Когда вы запускаете VNC-сервер из сеанса SSH (или любой другой терминальной сессии, которая не была запущена из сеанса X11), вам нужно указать, какой X11 дисплей использовать, например:
x11vnc -display :0
или
DISPLAY=:0 x11vnc
Другие VNC-серверы могут использовать разные способы указания дисплея, но они должны принимать переменную среды DISPLAY
по умолчанию.
x11vnc
также позволяет использовать “символические” имена дисплеев, основанные на имени учетной записи пользователя, владеющего X-сеансом. Он также может создавать новые X-сеансы на виртуальном устройстве Xfvb. Для получения дополнительной информации смотрите описание параметра -display
в x11vnc(1)
руководстве.
Вы также можете попробовать Vino, графический интерфейс настройки для предоставления удаленного (VNC) доступа к текущей запущенной сессии рабочего стола.
Ответ или решение
Настройка удаленного доступа к рабочему столу на Ubuntu 16.04 с использованием окружения рабочего стола Cinnamon 3.2.2 может оказаться достаточно сложной задачей, особенно при использовании VNC-серверов. Рассмотрим некоторые из возможных решений и методов, которые могут помочь решить вашу проблему.
1. Проблема с VNC и Cinnamon
Cinnamon, как вы правильно заметили, использует аппаратное ускорение, что может создавать трудности при попытке подключиться к нему через VNC. Часто пользователи сталкиваются с черным экраном, поскольку VNC-сервер не может корректно захватить вывод сессии приложения.
2. Рекомендации по использованию VNC
Среди доступных VNC-серверов часто упоминают TightVNC, TigerVNC и RealVNC. Однако в вашем случае, похоже, что они не устраивают. Ниже приведены несколько дополнительных рекомендаций:
-
X11VNC: Это один из наиболее популярных VNC-серверов, который позволяет подключаться к существующим X-сессиям. Чтобы использовать X11VNC, выполните следующие шаги:
sudo apt install x11vnc
После установки создайте пароль для доступа:
x11vnc -storepasswd
Запускайте сервер с указанием дисплея:
x11vnc -display :0
или с использованием переменной окружения
DISPLAY
:DISPLAY=:0 x11vnc
-
Vino: Это сервер VNC, который обычно предустановлен в GNOME и может использоваться для предоставления удаленного доступа к текущей сессии. Для установки Vino выполните:
sudo apt install vino
Настройте Vino с помощью следующей команды:
vino-preferences
Далее настройте параметры доступа и проверьте, активировано ли разрешение для удаленного доступа.
3. Альтернативы VNC
Если VNC продолжает вызывать проблемы, рассмотрите возможность использования RDP. Вы уже пробовали RDP, но для подключения к Cinnamon пришлось использовать Gnome Session Flashback. Вместо этого вы можете установить xrdp, что обеспечит более стабильный доступ:
sudo apt install xrdp
Затем настройте xrdp для работы с Cinnamon:
-
Проверьте, что ваш пользователь добавлен в группу
ssl-cert
.sudo adduser xrdp ssl-cert
-
Настройте сессию, добавив файл
.xsession
в ваш домашний каталог:echo "cinnamon-session" > ~/.xsession
После этого перезапустите xrdp и попробуйте подключиться к Ubuntu через RDP-клиент на Windows.
4. Заключение
Удаленный доступ к Ubuntu с Cinnamon через VNC может быть сложной задачей, но использование x11vnc или Vino может значительно улучшить ситуацию. Если VNC не работает должным образом, стоит рассмотреть RDP как альтернативу.
В выбранных вами методах, обратите внимание на корректную настройку серверов и соответствующие команды, чтобы обеспечить правильный запуск. Надеюсь, эти рекомендации помогут вам успешно настроить удаленный доступ к вашей системе. Если у вас остались вопросы или необходимо больше информации по какому-либо аспекту, не стесняйтесь спрашивать.