Служба X11vnc работает, но клиент не может найти сервер.

Вопрос или проблема

Я хочу настроить безголовый сервер и подключиться к нему с ноутбука (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. Я следовал фактически тем же шагам выше, но это все равно не работало. Нужно внести два дополнения.

  1. x11vnc НЕ будет работать, если его запускать от имени root. Это произойдет через systemctl, если вы не установите пользователя/группу. В поле [Service] добавьте следующее:

    User=<USERNAME>
    Group=<USERNAME>
    

    Сделав это и перезапустив x11vnc, вы получите новую ошибку (которая устраняется тем, что я описал в пункте #2).

  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. Убедитесь, что все параметры конфигурации верны, чтобы избежать дальнейших проблем с подключением.

Оцените материал
Добавить комментарий

Капча загружается...