Вопрос или проблема
Я хочу настроить безголовый сервер и подключиться к нему с ноутбука (Windows). Он работает на Kubuntu 15.04, и я установил X11vnc по этому описанию:
VNC/Servers – Автоматический запуск x11vnc через systemd в любой среде (Vivid+)
После перезагрузки служба включена и активна (я думаю?), но я не могу подключиться с ноутбука, используя UltraVNC.
Только когда я запускаю
x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /home/USERNAME/.vnc/passwd -rfbport 5900 -shared
в терминале, я могу подключиться к серверу с UltraVNC.
Я не хочу каждый раз вводить эту команду, когда хочу подключиться к серверу. Я хочу иметь возможность подключаться к серверу после перезагрузки, не делая ничего на сервере.
Есть идеи, что может быть не так?
Похоже, вы не настроили x11vnc как системную службу, чтобы она автоматически запускалась при загрузке системы. Я только что сделал то же самое, что и вы, и это работает. Выполните следующее, и это должно решить вашу проблему.
Шаг 1: Установите пароль, специфичный для вашего имени пользователя, который вы будете использовать для входа в x11vnc с удаленной системы.
x11vnc -storepasswd
Введите пароль и сохраните файл в: /home/USERNAME/.vnc/passwd
Примечание: обязательно замените USERNAME на ваше настоящее имя пользователя.
Шаг 2: Настройте файл ‘x11vnc.service’, чтобы vnc автоматически запускался при загрузке системы. Вы можете использовать любой текстовый редактор, но вам будет нужен доступ sudo для редактирования файла. Я использую nano в этом примере.
sudo nano /lib/systemd/system/x11vnc.service
Скопируйте и вставьте следующие строки в nano.
[Unit]
Description=Запустить x11vnc при запуске.
After=multi-user.target
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /home/USERNAME/.vnc/passwd -rfbport 5900 -shared
[Install]
WantedBy=multi-user.target
Выйдите и сохраните файл, нажав ‘Ctrl-X’, затем введите ‘Y’ и нажмите ‘Enter’. Снова убедитесь, что вы заменили USERNAME на ваше настоящее имя пользователя.
Шаг 3: Перезагрузите службы, чтобы ваш компьютер узнал о службе x11vnc, которую вы только что настроили на шаге 2 выше. И включите службу x11vnc.
sudo systemctl daemon-reload
sudo systemctl enable x11vnc.service
Шаг 4: Запустите службу x11vnc.
sudo systemctl start x11vnc
Шаг 5: Поздравьте себя! 🙂
Вывод
Следуя этим шагам, вы должны запустить x11vnc и настроить вашу систему так, чтобы systemd, менеджер систем и служб, запускал x11vnc автоматически каждый раз при загрузке компьютера.
Ссылки: Я взял этот ответ из документации Ubuntu по VNC/Службам. В частности, я ссылался на разделы с заголовками “x11vnc” и “Автоматический запуск x11vnc через systemd в любой среде (Vivid+)”. Второй раздел, на который я ссылаюсь, относится к Ubuntu Vivid Vervet 15.04. Если вы используете другую версию дистрибутива Debian Linux, вам нужно будет обратиться к правильному разделу на странице VNC/Службы Ubuntu.
Дополняю то, что написал MikeyE. Я следовал фактически тем же шагам выше, но это все равно не работало. Нужно внести два дополнения.
-
x11vnc НЕ будет работать, если его запускать от имени root. Это произойдет через
systemctl
, если вы не установите пользователя/группу. В поле[Service]
добавьте следующее:User=<USERNAME> Group=<USERNAME>
Сделав это и перезапустив
x11vnc
, вы получите новую ошибку (которая устраняется тем, что я описал в пункте #2). -
После выполнения вышеуказанного будет выведена новая ошибка. Теперь вам нужно указать -display (или установить его через
EXPORT
).
Чтобы проверить, является ли это вашей проблемой, введитеEXPORT DISPLAY=:0
перед запуском службы, как описывает MikeyE. После ввода команды ‘EXPORT DISPLAY=:0
‘ затемsudo systemctl restart x11vnc
. Теперь это сработало для меня.Вам нужно будет найти постоянный способ установить DISPLAY, так как метод EXPORT, описанный выше, теряется при перезагрузке. Вышеупомянутые изменения в посте MikeyE позволили мне войти в систему на моих установках Ubuntu.
Ответ или решение
Служба x11vnc запущена, но клиент не может найти сервер: возможные решения
Введение
Для настройки подключения к безголовому серверу на базе Kubuntu 15.04 с использованием x11vnc необходимо обеспечить автоматический запуск сервера при запуске системы. Однако, как вы отметили, клиент UltraVNC не может подключиться к серверу, если вы не запускаете команду вручную через терминал. Давайте разберемся, как это исправить.
Шаги по автоматизации запуска x11vnc
1. Настройка пароля
Для начала необходимо установить пароль для подключения к x11vnc. Это можно сделать с помощью следующей команды:
x11vnc -storepasswd
При выполнении команды будет предложено ввести и подтвердить пароль, который будет сохранен в файле /home/USERNAME/.vnc/passwd
. Замените USERNAME
на ваше имя пользователя.
2. Конфигурация сервиса x11vnc
Следующим шагом является создание конфигурационного файла для системы systemd
. Используйте текстовый редактор с правами администратора для редактирования файла /lib/systemd/system/x11vnc.service
:
sudo nano /lib/systemd/system/x11vnc.service
Добавьте следующие строки в файл:
[Unit]
Description=Start x11vnc at startup.
After=multi-user.target
[Service]
Type=simple
User=USERNAME
Group=USERNAME
Environment=DISPLAY=:0
ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /home/USERNAME/.vnc/passwd -rfbport 5900 -shared
[Install]
WantedBy=multi-user.target
Не забудьте заменить USERNAME
на ваше имя пользователя. Важно установить пользователя и группу, чтобы x11vnc работал корректно, так как запуск от имени root
может вызвать сбои.
3. Перезагрузка системных служб
Сохраните файл и перезагрузите службы системы, чтобы изменения вступили в силу:
sudo systemctl daemon-reload
sudo systemctl enable x11vnc.service
4. Запуск сервиса x11vnc
Теперь вы можете запустить службу x11vnc:
sudo systemctl start x11vnc
Этот шаг гарантирует, что x11vnc будет запускаться автоматически при старте системы.
Дополнительные советы
Если после выполнения вышеуказанных шагов вы все еще не можете подключиться к серверу, проверьте следующее:
-
Порт 5900: Убедитесь, что порт 5900 открыт на сервере и не блокируется брандмауэром. Вы можете использовать утилиту
ufw
чтобы проверить настройки:sudo ufw allow 5900
-
Состояние службы: Проверьте статус службы x11vnc:
sudo systemctl status x11vnc.service
Это поможет выявить возможные ошибки.
-
Логи: Анализируйте логи x11vnc для поиска дополнительных сведений о проблемах. Логи можно найти в системе:
journalctl -u x11vnc.service
Заключение
Следуя приведенным шагам и рекомендациям, вы сможете настроить автоматический запуск службы x11vnc при загрузке системы и обеспечить доступ к вашему безголовому серверу из клиентского приложения UltraVNC. Убедитесь, что все параметры конфигурации верны, чтобы избежать дальнейших проблем с подключением.