Удалённый доступ к Ubuntu: настройка x11vnc за 5 минут
Представьте, что вы можете управлять своим домашним компьютером с Ubuntu из любой точки мира, прямо как в фильмах про хакеров. Больше не нужно бегать между комнатами или мучиться с командной строкой, когда можно работать в привычном графическом интерфейсе.
Всё это реально с технологией VNC! А самый простой и надежный способ её реализовать — использовать сервер x11vnc.
Он кардинально отличается от других решений. Вместо создания нового сеанса, вы подключаетесь к уже запущенному рабочему столу. Это значит, что вы видите ровно то же самое, что и на физическом мониторе.
Идеально для помощи родственникам, удалённой работы или даже управления ПК со смартфона, лежа на диване.
В этом руководстве — только практика. Вы узнаете, как в несколько команд установить x11vnc из официальных репозиториев Ubuntu. Мы разберёмся, как создать защищённый паролем доступ и открыть его для нескольких пользователей одновременно.
Но самое главное — вы научитесь настраивать автозапуск сервера через systemd. Ваш VNC-сервер будет работать всегда, даже после перезагрузки, без вашего вмешательства.
Готовы превратить ваш компьютер в по-настоящему удалённый? Тогда читайте статью — мы уже подготовили для вас все команды и готовые конфигурации!
Довольно часто может понадобиться подключиться к удаленному компьютеру. Если это сервер, то можно подключиться по ssh. Но если это домашний компьютер, то намного удобнее использовать графическую оболочку. Во многих случаях это позволяет намного быстрее выполнить привычные обычному пользователю действия. Есть несколько способов и несколько протоколов, с помощью которых можно получить удаленный доступ к графическому интерфейсу, но самый популярный и самый используемый из них - VNC.
В этой небольшой статье будет рассмотрена настройка x11vnc на Ubuntu. Мы погорим о том как установить VNC в Ubuntu, а также как добавить его в автозагрузку с помощьюs systemd. А теперь перейдем непосредственно к инструкции.
Содержание статьи
Установка x11vnc в Ubuntu 18.04
Один из самых популярных VNC серверов для Linux это x11vnc, его мы и будем устанавливать. Этот VNC сервер распространяется с открытым исходным кодом и его особенность в том, что он позволяет подключиться к уже существующему сеансу X сервера. Это удобно не только для доступа через интернет, но и для того чтобы по локальной сети управлять компьютером с помощью смартфона.
Но перед тем как перейти к настройке, нужно установить саму программу, она есть в официальных репозиториях, поэтому проблем с этим возникнуть не должно. Для установки выполните:
sudo apt install x11vnc
Настройка x11vnc в Ubuntu
Когда установка VNC ubuntu будет завершена, мы сможем перейти к настройке. Сначала создадим пароль для нашего сервера:
x11vnc -storepasswd "пароль" /etc/x11vnc.pass
Команда x11vnc с опцией -storepasswd сохраняет пароль в файл, предварительно его зашифровав. Сделаем этот файл доступным для чтения, чтобы x11vnc смог его прочитать:
sudo chmod ugo+r /etc/x11vnc.pass
Чтобы запустить программу прямо сейчас и проверить работает ли она вы можете воспользоваться такой командой:
x11vnc -noxdamage -shared -dontdisconnect -many -noxfixes -rfbauth /etc/x11vnc.pass
Разберем параметры:
- -rfbauth — использовать пароль для аутентификации пользователей из файла;
- -rfbport — порт, на котором будет работать VNC сервер;
- -bg — работать в фоновом режиме;
- -shared — разрешить подключаться одновременно нескольким пользователям;
- -dontdisconnect — не отключать подключенных пользователей при подключении нового;
- -many — не завершать работу сервера после отключения первого клиента.
После выполнения команды вы можете взять другое устройство и попытаться подключиться к этому по VNC, все должно работать. Можно попробовать подключиться к серверу локально или с другой машины. По умолчанию используется порт 5900:
vncviewer localhost:5900
Вот такую рекурсию можно поймать, если подключаться локально:
Автозагрузка x11vnc с помощью systemd
Если все верно, можно создать скрипт для автоматического запуска во время старта системы. Для этого мы будем использовать systemd:
vi /lib/systemd/system/x11vnc.service
[Unit]
Description=Start x11vnc at startup.
After=multi-user.target
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -noxdamage -shared -dontdisconnect -many -noxfixes -rfbauth /etc/x11vnc.pass
[Install]
WantedBy=multi-user.target
Конфигурационный файл готов, и теперь вы можете добавить его в автозагрузку, но перед этим заставим Systemd перечитать свои конфигурационные файлы:
sudo systemctl daemon-reload
И делаем автозапуск x11vnc ubuntu:
sudo systemctl enable x11vnc.service
Также можно запустить программу сейчас:
sudo systemctl start x11vnc.service
Если что-то не работает, вы можете использовать такую команду, чтобы посмотреть сообщения об ошибках:
sudo systemctl status x11vnc.service
Кроме того, если вам нужна установка x11vnc таким образом, чтобы иметь доступ к уже запущенной сессии X11, вы можете создать такой скрипт:
sudo vi /bin/x11vncstart
!/bin/bash
x11vnc -rfbauth /etc/x11vnc.pass -noxdamage -bg -shared -dontdisconnect -many -noxfixes &
Затем дайте этому скрипту права на выполнение:
chmod ugo+x /bin/x11vncstart
Теперь вы можете запускать этот скрипт когда нужен x11vnc или добавить его в автозагрузку с помощью утилиты автоматически запускаемые приложения. Как это сделать описано в статье как добавить скрипт в автозагрузку Ubuntu.
Выводы
Вот и все, настройка vnc Ubuntu завершена. Теперь вы знаете как выполняется установка x11vnc в Ubuntu 18.04. Это не настолько сложно, как может показаться на первый взгляд. Если вам нужен другой VNC сервер, который бы позволял создавать новые сеансы, а не подключаться к существующим, то смотрите статью о том как установить TigerVNC в Ubuntu. Надеюсь информация была полезной, если остались вопросы, спрашивайте в комментариях!