Вопрос или проблема
У меня возникают странные проблемы с новой установкой VNC сервера. Недавно я собрал новый сервер Plex, и он работает на gnome Ubuntu 16.04. Пока что я настроил сервер openSSH с аутентификацией Google 2FA. Сейчас я работаю над настройкой vnc, чтобы в конечном итоге запустить его без монитора и подключиться к нему удаленно через vnc по SSH, когда это будет необходимо.
Я начал с выполнения команды:
sudo apt-get install vnc4server
затем запустил vncserver, чтобы настроить его и установить пароль, пока всё хорошо.
Затем я перешел к своему клиентскому ПК (Windows 10) и попытался подключиться без SSH, просто чтобы убедиться, что всё работает. Вот первая проблема: при подключении я получаю просто серый экран, что, я думаю, связано с тем, что рабочая среда не загружается правильно при подключении. Я думаю, я могу это исправить, изменив файл ~/.vnc/xstartup.
Итак, на сервере я выполнил:
sudo gedit ~/.vnc/xstartup
Теперь я получаю ошибку каждый раз, когда пытаюсь открыть графическое приложение с правами sudo. Ошибка следующая:
[sudo] пароль для username:
Протокол не указан
Не удалось подключиться к Mir: не удалось подключиться к сокету сервера: нет такого файла или каталога
Невозможно инициализировать сервер: Не удалось подключиться: соединение отклонено
(gedit:12145): Gtk-WARNING **: не удалось открыть дисплей: :0
Теперь я в растерянности. Я на 100% уверен, что это связано с VNC, но даже остановка VNC сервера не решает проблему.
У кого-нибудь есть идеи? Я просто блуждаю по кругу и начинаю злиться на этом этапе.
Недавно я сталкивался с проблемами VNC на Raspberry Pi. У меня были похожие ошибки на стороне клиента, как и у вас.
Я решил установить TightVNCserver вместо стандартного, так как TightVNC получил много хороших отзывов.
Вы можете установить TightVNC на свой сервер (sudo apt-get install tightvncserver).
Сначала остановите другое программное обеспечение VNC или удалите его.
Затем, чтобы протестировать TightVNC, войдите как обычный пользователь и установите пароль VNC.
$ tightvncpasswd
После этого запустите tightvnc как обычный пользователь на своем сервере.
$ tightvncserver
Это запустит VNC на вашем сервере.
Затем на вашем локальном компьютере выполните следующее, чтобы создать ssh туннель:
$ ssh -v remote-username@remote-hostname -L 5901:localhost:5901
Это нужно, потому что VNC по умолчанию работает на localhost, но также необходимо
для предотвращения передачи открытого текста.
После этого запустите клиент Remmina и настройте его для подключения к localhost:5901 с удаленным именем пользователя и VNC паролем, который вы создали.
Когда этот тест пройдет успешно, вы можете продолжить и создать сценарий запуска
для автоматического запуска при загрузке сервера или решить использовать его вручную после каждого перезапуска.
Кроме VNC, x2go, на мой взгляд, более удобный и простой в использовании.
Очень классное решение для удаленного рабочего стола.
X2go доступен в репозиториях Ubuntu. Для получения дополнительной информации посмотрите здесь:
Ответ или решение
Проблемы с настройкой VNC в Gnome на Ubuntu 16.04 могут возникать по ряду причин, и с этим сталкиваются многие пользователи. Давайте разберем вашу ситуацию и предложим несколько решений.
Описание проблемы
Вы столкнулись с проблемой серого экрана при подключении к VNC-серверу. Это часто связано с некорректными настройками файлов, таких как ~/.vnc/xstartup
, или могут быть проблемы с запуском графической среды Gnome через VNC. Более того, при попытке открыть графическое приложение с использованием sudo
, возникает ошибка с сообщениями о невозможности подключения к серверу или дисплею.
Варианты решений
-
Настройка файла xstartup:
Чтобы разрешить проблему серого экрана, вам необходимо убедиться, что файл~/.vnc/xstartup
сконфигурирован правильно. Обычно для Gnome этот файл должен содержать следующие строчки:#!/bin/sh export XKL_XMODMAP_DISABLE=1 unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS exec gnome-session &
Убедитесь, что файл имеет права на выполнение:
sudo chmod +x ~/.vnc/xstartup
-
Установка и использование TightVNC:
Попробуйте установить TightVNC, который часто рекомендуют из-за его стабильности и отзывчивости. Для этого выполните:sudo apt-get remove vnc4server sudo apt-get install tightvncserver
После установки настройте пароль VNC и запустите сервер:
tightvncpasswd tightvncserver
-
Использование SSH-туннелинга:
Чтобы улучшить безопасность и функциональность подключения, используйте SSH для туннелирования VNC. На вашей клиентской машине выполните:ssh -L 5901:localhost:5901 username@server_ip
Таким образом, VNC-соединение будет зашифровано.
-
Заменить VNC на X2Go:
Если VNC не удовлетворяет вашим потребностям, рассмотрите использование X2Go, который предлагает более гладкую работу с удаленными рабочими столами. Установите необходимое из репозиториев Ubuntu и настройте X2Go клиент и сервер. Более подробную информацию можно найти на официальной вики X2Go.
Заключение
Понимание и корректировка конфигурационных файлов, использование SSH и выбор правильного программного обеспечения, такого как TightVNC или X2Go, часто помогает решить подобные проблемы с VNC на Ubuntu. Надеемся, что эта информация окажется полезной, и ваша система будет корректно функционировать в режиме удаленного доступа.