Вопрос или проблема
Итак, я установил VNC сервер (Tight VNC) на своей рабочей станции “orac”, работающей под управлением Debian Jessie с KDE Plasma, и VNC клиент (также Tight VNC) на своей рабочей станции “tact”, работающей на Debian Stretch с KDE Plasma.
Я запустил vncpasswd на orac, чтобы настроить пароль.
Я хочу использовать VNC, чтобы использовать “orac” с “tact”.
С такта я подключился по ssh к orac и запустил vncserver:
jj5@orac:~$ vncserver
Новый 'X' рабочий стол — это orac:1
Запуск приложений, указанных в /home/jj5/.vnc/xstartup
Файл журнала находится в /home/jj5/.vnc/orac:1.log
Затем из консоли на такте я запустил:
jj5@tact:~$ vncviewer orac:1
Подключение к серверу RFB, использование протокола версии 3.8
Включение расширений протокола TightVNC
Выполнение стандартной аутентификации VNC
Пароль:
Аутентификация успешна
Имя рабочего стола "jj5's X desktop (orac:1)"
Формат по умолчанию сервера VNC:
32 бита на пиксель.
Наименее значимый байт сначала в каждом пикселе.
Истинный цвет: макс. красный 255, зеленый 255, синий 255, сдвиг красного 16, зеленого 8, синего 0
Использование карты цветов по умолчанию, которая является TrueColor. Формат пикселя:
32 бита на пиксель.
Наименее значимый байт сначала в каждом пикселе.
Истинный цвет: макс. красный 255, зеленый 255, синий 255, сдвиг красного 16, зеленого 8, синего 0
vncviewer: VNC сервер закрыл соединение
До того, как vncviewer: VNC server closed connection
сообщается, все, кажется, работает гладко. Открывается окно, я вижу, как KDE Plasma выполняет процесс входа/загрузки, затем загружается мой рабочий стол orac, загружается куча окон по умолчанию Dolphin, и KDE Plasma начинает обрабатывать мои автозагрузочные скрипты, так что все работает нормально, и почти сразу, как только это начинается, KDE/VNC исчезает и завершает работу, обычно с сообщением vncviewer: VNC server closed connection
, но иногда с vncviewer: read: Connection reset by peer
.
Так почему KDE (или VNC?) выходит сразу после начала? Буду очень признателен за любую помощь!
Послесловие: вот некоторая дополнительная информация об окружении на VNC сервере (orac):
jj5@orac:~/.vnc$ ls -al
всего 24K
drwx------ 2 jj5 jj5 4.0K May 4 17:35 ./
drwxr-xr-x 74 jj5 jj5 4.0K May 4 17:35 ../
-rw-r--r-- 1 jj5 jj5 1.3K May 4 17:36 orac:1.log
-rw-r--r-- 1 jj5 jj5 5 May 4 17:35 orac:1.pid
-rw------- 1 jj5 jj5 8 May 4 15:52 passwd
-rwxr-xr-x 1 jj5 jj5 263 May 4 17:32 xstartup*
И файл журнала говорит:
jj5@orac:~/.vnc$ cat orac\:1.log
04/05/17 17:35:57 Xvnc версия TightVNC-1.3.9
04/05/17 17:35:57 Copyright (C) 2000-2007 TightVNC Group
04/05/17 17:35:57 Copyright (C) 1999 AT&T Laboratories Cambridge
04/05/17 17:35:57 Все права защищены.
04/05/17 17:35:57 Смотрите http://www.tightvnc.com/ для информации о TightVNC
04/05/17 17:35:57 Название рабочего стола 'X' (orac:1)
04/05/17 17:35:57 Поддерживаемые версии протоколов: 3.3, 3.7, 3.8, 3.7t, 3.8t
04/05/17 17:35:57 Прослушивание VNC соединений на TCP порте 5901
04/05/17 17:36:04 Получено соединение от клиента 10.1.1.126
04/05/17 17:36:04 Использование версии протокола 3.8
04/05/17 17:36:04 Включение расширений протокола TightVNC
04/05/17 17:36:06 Полное управление аутентификацией прошло от 10.1.1.126
04/05/17 17:36:06 Формат пикселей для клиента 10.1.1.126:
04/05/17 17:36:06 32 бита на пиксель, глубина 24, младший байт в начале
04/05/17 17:36:06 истинный цвет: макс. r 255 g 255 b 255, сдвиг r 16 g 8 b 0
04/05/17 17:36:06 никакого перевода не требуется
04/05/17 17:36:06 Использование плотного кодирования для клиента 10.1.1.126
04/05/17 17:36:06 Использование уровня сжатия 1 для клиента 10.1.1.126
04/05/17 17:36:06 Использование уровня качества изображения 6 для клиента 10.1.1.126
04/05/17 17:36:06 Включение обновлений курсора в стиле X для клиента 10.1.1.126
04/05/17 17:36:06 Включение обновлений позиции курсора для клиента 10.1.1.126
04/05/17 17:36:06 Включение расширения протокола LastRect для клиента 10.1.1.126
Обратите внимание, что 10.1.1.126 — это мой VNC клиент “tact”.
Мой скрипт xstartup в основном представляет собой дефолтный (у меня нет ~/.Xresources файла, поэтому я удалил это из командной строки xrdb, иначе все осталось как есть):
jj5@orac:~/.vnc$ cat xstartup
#!/bin/sh
#xrdb $HOME/.Xresources
xrdb
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
О, вау. Я нашел проблему и исправил ее так:
jj5@orac:~$ rm .config/autostart/dropbox.desktop
Файл dropbox.desktop, кажется, был установлен, когда я пытался установить клиент Dropbox на своей системе (но у меня были проблемы с его настройкой, и я его не использую). Я забыл, что этот файл был здесь. Я выяснил это, посмотрев на недавно измененные файлы/каталоги в своей домашней директории после попытки доступа к orac через VNC. Например:
jj5@orac:~$ ls -Alt | head
всего 21292
drwx------ 4 jj5 jj5 4096 May 4 18:12 Dropbox
drwx------ 5 jj5 jj5 4096 May 4 18:12 .dropbox
drwx------ 2 jj5 jj5 4096 May 4 18:12 .vnc
-rw------- 1 jj5 jj5 3136 May 4 18:12 .Xauthority
-rw------- 1 jj5 jj5 26860 May 4 18:07 .viminfo
-rw------- 1 jj5 jj5 6692 May 4 17:49 .bash_history
drwx------ 2 jj5 jj5 4096 May 4 17:36 .pulse
-rw-r--r-- 1 jj5 jj5 75 May 4 17:25 .selected_editor
-rw-r--r-- 1 jj5 jj5 697 May 4 17:22 .profile
-rw-r--r-- 1 jj5 jj5 3963 May 4 17:22 .bashrc
Файл dropbox.desktop выглядел так:
jj5@orac:~/archive/2017-05-04-181328$ cat dropbox.desktop
[Desktop Entry]
Name=Dropbox
GenericName=File Synchronizer
Comment=Синхронизируйте свои файлы между компьютерами и с вебом
Exec=dropbox start -i
Terminal=false
Type=Application
Icon=dropbox
Categories=Network;FileTransfer;
StartupNotify=false
Ответ или решение
Иногда проблемы в работе программного обеспечения могут возникать из-за, казалось бы, незначительных и скрытых факторов. В случае использования VNC для удалённого доступа к рабочему столу, важную роль могут сыграть настройки и окружение программ, которые вы используете. Давайте детально рассмотрим возникшую проблему и сделаем разбор её решения.
Теория
VNC (Virtual Network Computing) — это система удаленного доступа, которая позволяет управлять рабочим столом одного компьютера с другого устройства по сети. VNC клиент и сервер обмениваются информацией о графическом интерфейсе, что позволяет пользователю работать с удаленной системой так, как если бы он сидел перед ней.
При установке VNC-сервера и клиента на разные системы, иногда возникают проблемы, такие как разрыв соединения сразу после успешной аутентификации и загрузки начального окна рабочего стола. Подобная ошибка обычно сигнализирует о неправильно настроенной среде пользователя или о программе, вызывающей сбои.
Пример
В приведенном сценарии пользователь установил VNC-сервер (Tight VNC) на компьютере orac
с операционной системой Debian Jessie и средой рабочего стола KDE Plasma, а VNC-клиент на машине tact
с Debian Stretch и той же средой рабочего стола.
После запуска VNC-сервера с orac
, операция сначала проходит успешно— открывается окно, KDE Plasma инициирует свою загрузку и начинает выполнение автозагрузочных скриптов. Однако связь вскоре прерывается с сообщением "VNC server closed connection", а иногда "vncviewer: read: Connection reset by peer", что означает, что сервер неожиданно закрыл соединение.
При дальнейшей диагностике обнаружилось, что причиной такой нестабильности было неподходящее автозагрузочное приложение Dropbox, чья попытка запуска через автозагрузочный скрипт приводила к неожиданному завершению сеанса.
Применение
Для решения проблемы автор выполнил следующие шаги:
-
Анализ модифицированных файлов: Автор просмотрел недавно измененные файлы и директории, чтобы выявить, какие изменения происходят в системе в момент подключения через VNC. Это помогло заметить, что файлы, связанные с Dropbox, были обновлены в момент оконечной загрузки рабочего стола.
-
Удаление проблемного элемента автозагрузки: Поняв, что
dropbox.desktop
вызывает проблему, автор удалил этот файл из каталога автозагрузки, чтобы предотвратить попытку запуска Dropbox при старте KDE Plasma. -
Проверка устойчивости после изменений: После удаления файла, повторная попытка подключения через VNC прошла успешно и без разрывов. Среди уроков, которые можно извлечь из этого случая, особое внимание стоит уделять файлам автозагрузки, так как они могут вводить скрытую нестабильность в работу системы.
Таким образом, множество проблем, связанных с VNC и сбоями в работе, могут быть устранены путём детального анализа окружения пользователя, особенно в отношении программ, которые автоматически запускаются в момент входа в систему. Теперь, понимая, насколько важен надзор за автозагрузочными элементами, можно предотвратить будущее появление подобных ошибок.
Этот пример иллюстрирует общую методологию анализа и решения проблем в IT, где процессы диагностики, идентификации и устранения неисправностей требуют логичного подхода и внимания к деталям. Такой подход помогает поддерживать стабильность систем и благополучие рабочих процессов в вашей технологической инфраструктуре.