Вопрос или проблема
Я запускаю Xubuntu 20.04 как виртуальную машину на Ubuntu Server 20.04 с мостовым интерфейсом. Я могу подключаться к виртуальной машине по SSH (также используя Putty на Windows 10, который будет получать доступ к виртуальной машине).
Используя VNCViewer (часть проекта TigerVNC) на Windows 10, я ввёл IP-адрес виртуальной машины. Появилось всплывающее окно для ввода пароля, где я ввёл пароль, но когда я нажимаю «подключиться», я получаю
TigerVNC
Произошла неожиданная ошибка при взаимодействии с сервером:
Ошибка аутентификации: проверка пароля не удалась!
Попробовать переподключиться?
[Нет] [Да]
Я установил x11vnc
обычным способом с помощью apt
. Следуя инструкциям в интернете, я создал
-
зашифрованный файл пароля
sudo x11vnc -storepasswd PASSWORD /home/USER/.vnc/passwd
-
незашифрованный файл пароля
echo PASSWORD > /home/USER/.vnc/password
Соответственно, я выполнил
x11vnc -forever -shared -display :0 -rfbauth /home/user/.vnc/passwd
для зашифрованного и
x11vnc -forever -shared -display :0 -passwdfile /home/xubuntu/.vnc/passwd
для незашифрованного файла пароля.
Примечание: Очевидно, что я не делал оба варианта одновременно. Также опечатка в пароле невозможна из-за простоты пароля (что-то вроде “abcd”).
Оба варианта дали следующий лог в терминале SSH:
x11vnc -forever -shared -display :0 -passwdfile /home/xubuntu/.vnc/passwd
30/03/2022 10:38:02 версия x11vnc: 0.9.16 последняя модификация: 2019-01-05 pid: 6641
30/03/2022 10:38:02 Используется X отображение :0
30/03/2022 10:38:02 rootwin: 0x53b reswin: 0x3800001 dpy: 0xc07a6840
30/03/2022 10:38:02
30/03/2022 10:38:02 ------------------ ПОЛЕЗНАЯ ИНФОРМАЦИЯ ------------------
30/03/2022 10:38:02 X DAMAGE доступен на дисплее, используем его для запроса обновлений.
30/03/2022 10:38:02 Чтобы отключить это поведение, используйте: '-noxdamage'
30/03/2022 10:38:02
30/03/2022 10:38:02 Большинство композитных менеджеров окон, таких как 'compiz' или 'beryl'
30/03/2022 10:38:02 приводят к сбоям X DAMAGE, поэтому вы можете не видеть никаких обновлений экрана
30/03/2022 10:38:02 через VNC. Либо отключите 'compiz' (рекомендуется), либо
30/03/2022 10:38:02 укажите опцию командной строки x11vnc '-noxdamage'.
30/03/2022 10:38:02
30/03/2022 10:38:02 Отображение каркаса: -wireframe режим действует при перемещении окон.
30/03/2022 10:38:02 Если это приводит к нежелательному поведению (плохой отклик, ошибки рисования
30/03/2022 10:38:02 и т. д.), это можно отключить:
30/03/2022 10:38:02 - используйте '-nowf', чтобы полностью отключить отображение каркасом.
30/03/2022 10:38:02 - используйте '-nowcr', чтобы отключить Копирование Прямоугольника после
30/03/2022 10:38:02 освобождения перемещенного окна на новом месте.
30/03/2022 10:38:02 Также смотрите раздел -help для настройки параметров.
30/03/2022 10:38:02 Вы можете нажать 3 раза клавишу Alt_L (левую клавишу "Alt"), чтобы
30/03/2022 10:38:02 обновить экран; также смотрите опцию -fixscreen для
30/03/2022 10:38:02 периодического обновления.
30/03/2022 10:38:02
30/03/2022 10:38:02 XFIXES доступны на дисплее, сброс режима курсора
30/03/2022 10:38:02 на: '-cursor most'.
30/03/2022 10:38:02 Чтобы отключить это поведение, используйте: '-cursor arrow'
30/03/2022 10:38:02 или '-noxfixes'.
30/03/2022 10:38:02 используем XFIXES для рисования курсора.
30/03/2022 10:38:02 GrabServer контроль через XTEST.
30/03/2022 10:38:02
30/03/2022 10:38:02 Обнаружение прокрутки: -scrollcopyrect режим активен для
30/03/2022 10:38:02 использования RECORD расширения для попытки обнаружить прокручиваемые окна
30/03/2022 10:38:02 (вызываемые либо нажатием клавиш, либо вводом мыши).
30/03/2022 10:38:02 Если это приводит к нежелательному поведению (плохой отклик, ошибки рисования
30/03/2022 10:38:02 и т. д.), это можно отключить через: '-noscr'
30/03/2022 10:38:02 Также смотрите раздел -help для настройки параметров.
30/03/2022 10:38:02 Вы можете нажать 3 раза клавишу Alt_L (левую клавишу "Alt"), чтобы
30/03/2022 10:38:02 обновить экран; также смотрите опцию -fixscreen для
30/03/2022 10:38:02 периодического обновления.
30/03/2022 10:38:02
30/03/2022 10:38:02 XKEYBOARD: количество символов клавиатуры для кодов клавиш 7 больше
30/03/2022 10:38:02 чем 4, и 51 символ клавиатуры отображается выше 4.
30/03/2022 10:38:02 Автоматически переключение в режим -xkb.
30/03/2022 10:38:02 Если это ухудшает отображение клавиш, вы можете
30/03/2022 10:38:02 отключить это с помощью параметра "-noxkb".
30/03/2022 10:38:02 Также помните о "-remap DEAD" для акцентирования символов.
30/03/2022 10:38:02
30/03/2022 10:38:02 Расширение X FBPM не поддерживается.
Xlib: расширение "DPMS" отсутствует на дисплее ":0".
30/03/2022 10:38:02 X дисплей не поддерживает DPMS.
30/03/2022 10:38:02 --------------------------------------------------------
30/03/2022 10:38:02
30/03/2022 10:38:02 ID визуализации по умолчанию: 0x21
30/03/2022 10:38:02 Читаем начальные данные из X дисплея в кадр.
30/03/2022 10:38:02 инициализация_экрана: fb_depth/fb_bpp/fb_Bpl 24/32/4096
30/03/2022 10:38:02
30/03/2022 10:38:02 X дисплей :0 имеет глубину 32 бита = 24 истинного цвета
30/03/2022 10:38:02
30/03/2022 10:38:02 Автопоиск TCP порта
30/03/2022 10:38:02 Автопоиск выбраного TCP порта 5901
30/03/2022 10:38:02 Автопоиск TCP6 порта
30/03/2022 10:38:02 rfbListenOnTCP6Port: ошибка привязки IPv6 сокета: Адрес уже используется
30/03/2022 10:38:02 Автопоиск выбраного TCP6 порта 5901
30/03/2022 10:38:02 listen6: bind: Адрес уже используется
30/03/2022 10:38:02 Не слушаем на интерфейсе IPv6.
30/03/2022 10:38:02
30/03/2022 10:38:02 Xinerama присутствует и активна (например, многоголовая система).
30/03/2022 10:38:02 Xinerama: количество субэкранов: 1
30/03/2022 10:38:02 Xinerama: не требуется чернота (только один субэкран)
30/03/2022 10:38:02
30/03/2022 10:38:02 скорость чтения fb: 230 МБ/сек
30/03/2022 10:38:02 быстрое чтение: сброс -wait мс до: 10
30/03/2022 10:38:02 быстрое чтение: сброс -defer мс до: 10
30/03/2022 10:38:02 X сервер сообщает, что имеется 10 кнопок мыши.
30/03/2022 10:38:02 настройка экрана завершена.
30/03/2022 10:38:02
Виртуальный стол VNC: SZA-DT043-L-VM0:1
ПОРТ=5901
******************************************************************************
Вы пробовали x11vnc '-ncache' функцию кэширования пикселей на стороне клиента VNC?
Схема сохраняет данные пикселей в оффскрин на стороне VNC viewer для более быстрого
извлечения. Это должно работать с любым VNC viewer. Попробуйте это, запустив:
x11vnc -ncache 10 ...
Также можно добавить -ncache_cr для плавного перемещения окна 'copyrect'.
Больше информации: http://www.karlrunge.com/x11vnc/faq.html#faq-client-caching
Я заметил, что, по крайней мере в случае создания незашифрованного файла пароля, запуск x11vnc
с sudo
вызывает ошибку
30/03/2022 10:46:06 версия x11vnc: 0.9.16 последняя модификация: 2019-01-05 pid: 6708
Протокол не указан
30/03/2022 10:46:06 XOpenDisplay(":0") потерпел неудачу.
30/03/2022 10:46:06 Повторная попытка с XAUTHLOCALHOSTNAME=localhost ...
Протокол не указан
30/03/2022 10:46:06 ***************************************
30/03/2022 10:46:06 *** Не удалось открыть X DISPLAY ":0"
***x11vnc не смог открыть X DISPLAY ":0", он не может продолжать
***Возможно, выше есть сообщение об ошибке "Xlib:" с деталями о сбое
Некоторые советы и рекомендации
...
Я не знаю, как это влияет на проблему, с которой я столкнулся, но подумал, что это может дать какое-то представление более знающим людям здесь.
Поскольку это внутренняя корпоративная сеть, я не переживаю о том, что кто-то может взломать мою виртуальную машину (которая, кстати, предназначена для утилизации). Я попробую настроить X11VNC без какой-либо аутентификации (если возможно), но даже если это сработает, я всё равно хотел бы понять причину текущей проблемы.
Решение было довольно абсурдным. Я использую TigerVNC Viewer. Очевидно, он ожидает порт 5900 (надеюсь, это стандартный порт VNC), но мой x11vnc всегда начинает с 5901. Все, что мне нужно было сделать, это добавить порт. В случае, если кто-то еще столкнётся с этой проблемой, используйте <REMOTE_MACHINE_IP_ADDR>:<PORT>
, чтобы получить доступ к вашей машине, если порт не 5900.
Проблему также можно решить, добавив опцию -rfbport 5900
x11vnc -forever -shared -display :0 -rfbport 5900 -passwdfile /home/xubuntu/.vnc/passwd
Ответ или решение
Проблема с ошибкой "Authentication failure: password check failed!" при подключении к x11vnc через VNCViewer может быть вызвана несколькими факторами, несмотря на то, что вы уверены в правильности пароля. Ниже рассмотрим возможные причины и решения.
Причины проблемы
-
Неправильный порт: Как вы упомянули, x11vnc по умолчанию прослушивает порт 5901, а многие VNC-клиенты, включая TigerVNC, ожидают подключения на порту 5900. Если вы не указали порт при подключении, клиент может беспокоиться о неверном пароле.
-
Файлы паролей: Убедитесь, что вы используете правильный файл пароля. У вас есть как зашифрованный, так и незашифрованный файл, и вы должны запускать x11vnc с соответствующим параметром:
- Для зашифрованного:
-rfbauth /home/USER/.vnc/passwd
- Для незашифрованного:
-passwdfile /home/USER/.vnc/passwd
- Для зашифрованного:
-
Проблемы с правами доступа: Если вы запускаете x11vnc с
sudo
, это может вызвать проблемы с доступом к графическому окружению. X11 не позволяет авторизованным пользователям запускать приложения, которые требуют доступа к дисплею другого пользователя. Попробуйте запустить x11vnc безsudo
от имени пользователя, под которым работает графическая сессия (например,xubuntu
).
Решения
-
Укажите порт при подключении: Если ваш x11vnc запущен на порту 5901, убедитесь, что вы подключаетесь, указав порт, например:
<REMOTE_MACHINE_IP_ADDR>:5901
-
Измените порт: Если вы хотите использовать стандартный порт 5900, запустите x11vnc с дополнительным параметром:
x11vnc -forever -shared -display :0 -rfbport 5900 -passwdfile /home/XUBUNTU/.vnc/passwd
-
Проверьте файлы пароля: Убедитесь, что файл пароля создан корректно и имеется правильный путь к нему. Путь должен быть указан с учетом регистра букв и без ошибок.
-
Проверка прав доступа: Если вы всё ещё сталкиваетесь с проблемами, попробуйте запустить x11vnc от имени пользователя, которому принадлежит десктоп, без использования
sudo
.
Дополнительные советы
- Если вы хотите временно отключить аутентификацию для тестирования, вы можете запустить x11vnc без параметра
-rfbauth
или-passwdfile
. Однако имейте в виду, что это небезопасно и не рекомендуется в долгосрочной перспективе. - Внимательно следите за журналами ошибок в терминале при запуске x11vnc для нахождения возможных указаний на решения.
Следуя этим шагам, вы сможете устранить проблему с подключением к x11vnc и избежать ошибки с паролем.