Настройка vnc server ubuntu
Как установить VNC на Linux Ubuntu и CentOS 🔁
Содержание:
- Подготовка
- Настройка VNC-сервера
- Обеспечение безопасности VNC
- Подключение к сессии VNC
Virtual Network Computing (VNC) – система управления удалённым рабочим столом, использующая протокол RFB (Remote FrameBuffer, англ. «удалённый кадровый буфер»). Соединение осуществляется между двумя устройствами: клиентом (управляющее) и сервером (подчиняющееся).
Взаимодействие между системами происходит путём передачи откликов с периферии клиента (мышь, клавиатура и т. д.) и ретрансляции изображения с удалённого компьютера. Для создания сессии, на каждой из сторон должно быть установлено соответствующее ПО: VNC-клиент (VNC Viewer) и VNC-сервер (VNC Server).
Подробнее узнать, что из себя представляет технология управления удалённым рабочим столом можно здесь.
Далее будет рассказано о том, как установить VNC на Linux и обезопасить подключение. Инструкция подойдёт для двух популярных дистрибутивов: Ubuntu (18.04 и 20.04) и CentOS 7. В качестве VNC-сервера будет использоваться TightVNCServer.
Подготовка
Обновление компонентов
Перед началом выполнения каких-либо действий нужно обновить компоненты системы. Для CentOS также будет установлены дополнительные пакеты: EPEL репозиторий и текстовой редактор Nano.
Ubuntu
sudo apt update -y && sudo apt upgrade -y
CentOS
sudo yum update -y && sudo yum upgrade -y && sudo yum install epel-release nano
Установка окружения
Управление системой через подключение VNC осуществляется посредством графической среды. За основу в статье будет взято окружение XFCE, стабильно работающее в связке с TightVNCServer. Чтобы установить эту оболочку со всеми дополнениями, нужно ввести следующую команду в терминал:
Ubuntu
sudo apt install xfce4 xfce4-goodies
CentOS
sudo yum groupinstall xfce
Установка TightVNCServer
Инсталлировать пакет TightVNCServer вместе с зависимостями можно командой:
Ubuntu
sudo apt install tightvncserver -y
CentOS
sudo yum install tigervnc-server -y
Настройка фаервола CentOS
На серверах под управлением CentOS брандмауэр по умолчанию блокирует доступ к сети сторонним программам. Чтобы дать разрешение TightVNCServer открывать сетевые порты, понадобится ввести команду:
sudo firewall-cmd --permanent --zone=public --add-service vnc-server
Теперь нужно применить изменения:
sudo firewall-cmd --reload
Настройка VNC-сервера
Для начала необходимо произвести «пробный» запуск TightVNCServer, чтобы программа создала конфиги, которые позже понадобятся для настройки VNC. Все файлы сохраняются в домашней папке пользователя, от имени которого запускается программа.
Запустить VNC-сервер можно следующей командой:
vncserver
Далее программа попросит придумать пароль (от 6 до 8 символов), который в дальнейшем будет использоваться для подключения к сессии VNC.
Сменить пароль можно в любой момент командой «vncpasswd».
А также пользователю будет задан вопрос: «Would you like to enter a view-only password (y/n)?» («Вы хотите ввести пароль только для просмотра (да/нет)?») Функция позволяет подключиться к сессии для демонстрации. То есть пользователь будет видеть всё, что происходит на экране, но не сможет управлять удалённым компьютером. Если применять возможность не планируется, то стоит выбрать ответ «n» («нет»).
Ещё важная строка, на которую нужно обратить внимание: «New ‘X’ desktop is test:1» (Ubuntu) или «New ‘test.program.ru:1 (username)’» (CentOS). В предложении говориться о создании новой сессии с порядковым номером «1». Таких «дисплеев» можно запустить несколько и все они будут привязаны к определённым сетевым портам. Например, сессия «1» будет «висеть» по умолчанию на 5901 порте, сессия с номером «2» на 5902 и так далее по порядку.
Подготовка VNC для работы с окружением XFCE
Чтобы при подключении к сессии запускалась графическая среда, необходимо выполнить настройку VNC для работы с XFCE.
Не стоит забывать, что все действия требуется выполнять с одной и той же учётной записи Linux.
Для начала нужно остановить работающий дисплей. Чуть раньше говорилось, что ему присвоен порядковый номер «1», поэтому команда составляется следующим образом:
vncserver -kill :1
Теперь нужно удалить старый конфигурационный файл, отвечающий за запуск графической оболочки:
rm -f ~/.vnc/xstartup
И создать вместо него новый:
nano ~/.vnc/xstartup
Откроется пустой документ, в который необходимо добавить следующий код:
Ubuntu
#!/bin/bash xrdb $HOME/.Xresources startxfce4 &
CentOS
#!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS exec startxfce4
Для сохранения нужно воспользоваться сочетанием клавиш «Ctrl+X», затем «Y» и подтвердить внесений изменений нажатием «Enter».
Остаётся сделать созданный файл исполняемым:
chmod +x ~/.vnc/xstartup
Настройка автозапуска
После перезагрузки удалённого компьютера, запуск VNC-сервера не будет выполняться самостоятельно. Это можно исправить, добавив службу автозапуска.
Для начала нужно создать скрипт, при выполнении которого будет запускаться TightVNCServer с определённым набором параметров:
sudo nano /usr/local/bin/myvnc
Теперь в открывшийся пустой файл нужно занести следующий код:
#!/bin/bash PATH="$PATH:/usr/bin/" DISPLAY="1" DEPTH="16" GEOMETRY="1024x768" OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}" case "$1" in start) /usr/bin/vncserver ${OPTIONS} ;; stop) /usr/bin/vncserver -kill :${DISPLAY} ;; restart) $0 stop $0 start ;; esac exit 0
Переменные, на которые стоит обратить внимание:
- «DISPLAY» – номер запускаемой сессии;
- «DEPTH» – глубина цвета;
- «GEOMETRY» – разрешение экрана.
Остаётся сделать файл исполняемым, чтобы скрипт стал доступен для запуска:
sudo chmod +x /usr/local/bin/myvnc
Теперь можно использовать следующие простые команды, чтобы управлять VNC-сервером:
myvnc start ###запустить vnc myvnc stop ###остановить vnc myvnc restart ###перезапустить vnc
Скрипт готов, но теперь нужно сделать так, чтобы запуск производился каждый раз при загрузке системы. Для этого создаётся юнит:
sudo nano /lib/systemd/system/myvnc.service
В создаваемый файл вносится следующий код:
[Unit] Description=MyVnc [Service] Type=forking ExecStart=/usr/local/bin/myvnc start ExecStop=/usr/local/bin/myvnc stop ExecReload=/usr/local/bin/myvnc restart User=username [Install] WantedBy=multi-user.target
В переменную «User» вводится логин пользователя Linux, от имени которого будет запускаться VNC-сервер.
Теперь нужно сохранить файл и добавить созданную службу в автозагрузку:
sudo systemctl enable myvnc.service
Для применения настроек остаётся перезапустить демон systemd и VNC-сервер следующими командами:
sudo systemctl daemon-reload myvnc restart
Базовая настройка VNC выполнена. Подключиться к сессии можно уже сейчас, но рекомендуется сначала обезопасить соединение, если VNC планируется использовать в публичной сети.
Обеспечение безопасности VNC
Использовать VNC в «голом» виде не рекомендуется по нескольким причинам:
- Отсутствие шифровки трафика.
- На сервере открыты порты, которые может атаковать злоумышленник.
- Пароль ограничен 8 символами.
Всё это делает использование VNC небезопасным. Но есть решение проблемы: туннелирование трафика через протокол SSH, который надёжнее реализован и поддерживает шифровку проходящих данных.
Настройка туннелирования трафика через SSH
Для начала нужно запретить доступ к VNC-серверу извне, чтобы исключить возможность атаки по открытому порту (5901, 5902 и т. д.). Для этого необходимо отредактировать скрипт, созданный на ранних этапах настройки TightVNCServer:
sudo nano /usr/local/bin/myvnc
В файле заменяются строки:
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}" на OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY} -localhost"
«-localhost» – разрешает подключаться к порту только с самого сервера.
После сохранения скрипта необходимо перезагрузить VNC для применения изменений:
myvnc restart
Подключение
Unix
Выполнить подключение с туннелированием трафика на Unix-системах можно с помощью встроенной консольной утилиты. Команда составляется следующим образом:
ssh [email protected] -L 5901:localhost:5901
Значения, которые нужно изменить на собственные:
- «user» – имя пользователя;
- «xxx.xxx.xxx.xxx» – IP-адрес сервера.
Утилита запросит пароль для входа в учётную запись. Внешне подключение будет ничем не отличаться от обычного соединения с сервером через SSH. Туннелирование будет работать до тех пор, пока сессия не будет закрыта.
Windows
Установка соединения на Windows будет рассмотрена на примере распространённого клиента Putty.
Алгоритм подключения
- Открыть программу и перейти по пути: «Соединение» -> «SHH» -> «Туннели».
- В поле «Исходный порт» нужно ввести значение «5901», а в «Назначение» подставить «localhost:5901». Для применения параметров необходимо нажать «Добавить».Можно создать несколько таких профилей, изменив «5901» на значения других портов («5902», «5903» и т.
д.), если планируется подключить сразу несколько сессий.
- Теперь можно вернуться в исходный раздел «Сеанс», ввести данные для подключения к серверу через SSH и нажать «Соединиться».
Чтобы заново не проходить операцию настройки каждый раз, можно сохранить параметры в профиль. Для этого нужно ввести произвольное имя в поле «Управление сеансами» и нажать «Сохранить».
- В открывшемся окне нужно ввести данные для подключения к серверу. Туннелирование начинает работать с этого момента и проходит незаметно для пользователя. Для поддержания соединения достаточно не прерывать сессию SSH.
Подключение к сессии VNC
Подключиться по VNC к Linux можно с помощью клиента TightVNC Viewer, который доступен для загрузки на официальном сайте. Для остальных программ алгоритм установки соединения будет аналогичен.
Сначала нужно открыть TightVNC Viewer и в поле «Remote Host» ввести внешний IP-адрес сервера и порт, разделяя их двоеточием («:»). Если подключение осуществляется с туннелированием трафика, то вместо IP-адреса подставляется стандартное значение локального хоста (например, «localhost» или «127.0.0.1»). Для установки соединения нужно нажать «Connect».
Откроется окно, в котором программа запросит пароль. Для подтверждения остаётся нажать «ОК».
В итоге появится изображение рабочего стола с удалённого сервера.
Как установить и настроить VNC-сервер в Ubuntu
VNC или Virtual Network Computing - это графический инструмент совместного использования рабочего стола, который позволяет удаленно управлять компьютером (сервером или рабочим столом) с другого компьютера (клиента). Сервер VNC передает все события клавиатуры и мыши с клиентского компьютера на серверный компьютер. Если вы еще не знакомы с командами CLI, такими как терминал и т.д., вы можете использовать VNC, чтобы помочь вам управлять файлами, программным обеспечением и системными настройками на удаленных компьютерах.
Мы установим на сервер рабочий стол Linux XFCE, затем установим и настроим VNC-сервер с помощью TightVNC.
Содержание
- Шаг 1 - Обновление системы и создание пользователя
- Шаг 2 - Установите XFCE Desktop и TightVNC
- Шаг 3 - Начальная конфигурация VNC
- Шаг 4 - Настройка TightVNC
- Шаг 5 - Запуск TightVNC в качестве службы
- Шаг 6 - Подключение к серверу VNC через туннель SSH
Шаг 1 - Обновление системы и создание пользователя
Обновите репозиторий Ubuntu, затем обновите систему с помощью команд apt, приведенных ниже.
sudo apt update sudo apt upgrade
После обновления, при необходимости, перегрузите компьютер.
В данном руководстве рабочий стол VNC будет доступен для пользователя, не являющегося root. Поэтому нам нужно создать нового пользователя и добавить его в группу sudo для получения root-доступа.
Создайте нового пользователя под именем 'vncuser' и задайте ему пароль.
useradd -m -s /bin/bash vncuser passwd vncuser
Теперь добавьте пользователя 'vncuser' в группу sudo для доступа с привилегиями root.
usermod -a -G sudo vncuser
Был создан новый пользователь 'vncuser' для доступа к VNC, и он сможет получить доступ к привилегиям root.
su - vncuser sudo su
Шаг 2 - Установите XFCE Desktop и TightVNC
Linux имеет несколько окружений рабочего стола, таких как Gnome, Unity, KDE, LXDE, XFCE и т.д. В этом руководстве мы будем использовать рабочий стол XFCE в качестве среды рабочего стола VNC.
Установите рабочий стол XFCE, включая все зависимости, с помощью команды apt, приведенной ниже.
sudo apt install xfce4 xfce4-goodies
Если установка рабочего стола XFCE завершена, установите пакеты 'tightvncserver'.
Выполните команду apt, приведенную ниже.
sudo apt install -y tightvncserver
Шаг 3 - Начальная конфигурация VNC
В этом шаге мы создадим конфигурацию VNC для пользователя 'edward'.
Войдите под именем 'vncuser'
su - vncuser
Теперь запустите конфигурацию VNC для пользователя 'vncuser' командой ниже.
vncserver
Вам будет предложено ввести пароль VNC-сервера - введите его. А пароль 'только для просмотра' вы можете включить или отключить. Пользователь, который войдет на сервер, используя пароль "только для просмотра", не сможет управлять мышью и клавиатурой.
При первом запуске команды 'vncserver' автоматически создается новый каталог конфигурации '.vnc' и запускается первая сессия VNC.
Проверьте это с помощью команды ниже.
ls -lah ~/.vnc/ ps -ef | grep Xtightvnc
Вы получите результат, как показано ниже.
Шаг 4 - Настройка TightVNC
В этом шаге мы настроим VNC-сервер для использования рабочего стола XFCE. Мы отредактируем файл конфигурации VNC 'xstartup' в каталоге '.vnc'.
Прежде чем редактировать конфигурацию, убейте первый сеанс VNC с помощью следующей команды.
vncserver -kill :1
Теперь сделайте резервную копию конфигурации по умолчанию и создайте новую с помощью vim.
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak nano ~/.vnc/xstartup
Вставьте туда следующую конфигурацию.
#!/bin/bash xrdb $HOME/.Xresources startxfce4 &
Сохраните и выйдите.
Теперь сделайте скрипт исполняемым с помощью chmod и снова запустите команду 'vncserver'.
chmod +x ~/.vnc/xstartup vncserver
Проверьте список сессий.
ps -ef | grep Xtightvnc
И вы получите результат, как показано ниже.
Шаг 5 - Запуск TightVNC в качестве службы
В этом руководстве мы будем запускать VNC-сервер как службу. Поэтому нам нужно создать для него новый служебный файл.
Перейдите в каталог '/etc/systemd/system' и создайте новый служебный файл '[email protected]'.
cd /etc/systemd/system nano [email protected]
Вставьте туда следующий скрипт службы vnc.
[Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking User=vncuser PIDFile=/home/vncuser/.vnc/%H:%i.pid ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i ExecStop=/usr/bin/vncserver -kill :%i [Install] WantedBy=multi-user.target
Сохраните файл и выйдите из редактора.
Теперь перезагрузите службы systemd и запустите службу VNC-сервера.
systemctl daemon-reload systemctl start [email protected]
если при запуске сервиса получаем ошибку, создаем PID файл вручную
к примеру
> /home/vncuser/.vnc/virtual-machine:1.pid
Если все прошло без ошибок, добавьте службу во время загрузки и проверьте ее состояние с помощью systemctl.
systemctl enable [email protected] systemctl status [email protected]
Ниже приведены результаты в нашем случае:
Сервер VNC установлен, и первая сессия теперь запущена под пользователем 'vncuser'.
Шаг 6 - Подключение к серверу VNC через туннель SSH
В этом шаге мы подключимся к нашему VNC-серверу через ssh-туннель.
Теперь откройте приложение 'vnc viewer', создайте новое соединение и введите адрес VNC сервера с IP локального хоста IP адрес сервера и порт 5901, как показано ниже.
Подключитесь к VNC-серверу, и вам будет предложено ввести пароль VNC-сервера. Введите пароль и нажмите 'OK'.
Теперь вы получите рабочий стол XFCE с вашего сервера.
Как установить VNC-сервер на Ubuntu и удаленно управлять Linux-машиной
Главная » Блоги » Как установить VNC-сервер на Ubuntu и удаленно управлять Linux-машиной
Ubuntu — один из самых популярных дистрибутивов Linux. Вот почему VNC Server для Ubuntu может пригодиться, когда вы хотите удаленно получить доступ к машине, на которой работает этот дистрибутив. Более того, VNC Connect позволяет вам делать это безопасно.
- Богдан Беле
- 21 октября 2022 г.
- 6 минут чтения
VNC для Ubuntu — отличный инструмент, особенно если вы постоянно работаете или поддерживаете несколько устройств. Установка не может быть проще. Необходимо выполнить два компонента и три важных шага:
- Установить VNC Server для Linux на машину, к которой вы хотите подключиться
- Установите VNC Viewer для Linux на машину, к которой вы подключаетесь
- Быстро подключитесь к своей машине с Ubuntu!
Хотя это руководство относится к серверу VNC в Ubuntu, я должен упомянуть, что VNC Connect является мультиплатформенным. Это включает в себя подключение к Windows, macOS, Linux, Raspberry Pi, Android и iOS и обратно.
С учетом сказанного давайте вернемся к VNC-серверу для Linux. hree
Как установить VNC-сервер на Ubuntu
Как упоминалось выше, вам понадобится VNC-сервер на машине, которой вы хотите управлять. Итак, на вашем компьютере с Ubuntu (список поддерживаемых операционных систем можно найти здесь) откройте браузер и загрузите комбинированный установщик.
Если у вас еще нет учетной записи, вам необходимо создать ее на этом этапе и подписаться на 14-дневную пробную версию.
После этого извлеките программу установки и запустите ее. Затем выберите «Установить сервер VNC». Установщик сотворит свое волшебство и выполнит все необходимые настройки за вас.
На этом этапе установка VNC Server Ubuntu должна быть готова к работе. Его просто нужно немного настроить, прежде чем вы сможете его использовать. Для этого запустите его.
Первым делом нужно будет лицензировать его с помощью созданной вами учетной записи VNC. Если нет, не беспокойтесь. Вы можете создать учетную запись здесь. И если у вас уже есть учетная запись, вы можете легко изменить свой пароль, если вам это нужно. В любом случае убедитесь, что вы создали надежный пароль.
Далее (если у вас есть лицензия Enterprise) выберите, хотите ли вы разрешить облачные подключения. Если вы будете получать удаленный доступ к своему компьютеру с Ubuntu, соединения через облачное хранилище более безопасны. И это потому, что вы не будете раскрывать порты и данные в Интернете. Вы можете узнать больше о том, как обеспечить безопасность с помощью удаленного доступа, здесь.
Однако, если в вашей среде данные не могут покидать сеть, также доступны прямые подключения.
Следующий шаг касается безопасности. Мы предоставляем несколько вариантов аутентификации в зависимости от ваших потребностей. Выберите тот, который лучше всего подходит вам. Все соединения VNC Connect используют сквозное шифрование по умолчанию, но вы можете увеличить уровень шифрования, если хотите.
Затем вам нужно решить, кто может подключаться к компьютеру и должен ли пользователь на компьютере всегда одобрять подключение. В среде поддержки ИТ это отличная идея. Если, например, пользователь обрабатывает конфиденциальные данные, он может позволить вам войти только после того, как закроет файл клиента.
Вот оно! Теперь вы установили VNC-сервер на Ubuntu.
Как установить VNC Viewer на Ubuntu
Мне не нужно упоминать, что в тот момент, когда вы лицензировали свой VNC-сервер, вы можете получить доступ к своему компьютеру Ubuntu с компьютера, на котором запущена программа RealVNC VNC Viewer. Это не зависит от платформы, при условии, что они вошли в систему, используя учетную запись RealVNC, которая является частью той же команды, что и сервер VNC.
Однако для доступа к другим устройствам с вашего компьютера с Ubuntu просто установите VNC Viewer. Теперь вы можете использовать тот же установщик, который вы загрузили, выполнив описанные выше шаги. Большая разница в том, что вы, конечно же, нажмете Install VNC Viewer .
После установки я рекомендую вам войти в свою учетную запись RealVNC. Это даст вам доступ к облачным соединениям и значительно упростит работу. Не говоря уже о том, что ваш список машин в вашей команде уже будет там.
Вы подключитесь к нему через несколько секунд!
Богдан Беле
Поделиться публикацией
Блоги, которые могут вас заинтересовать:
Как подготовить сервер Ubuntu VNC
Вы управляете серверами Ubuntu, но не любите делать все в командной строке? Возможно, вам удобнее управлять серверами через удаленный рабочий стол (и это совершенно нормально). К счастью для вас, есть способ получить удаленный доступ к вашим системам, настроив сервер Ubuntu VNC.
Предварительные условия
Этот учебник представляет собой практическую демонстрацию. Если вы хотите продолжить, убедитесь, что у вас есть следующее.
- Вам нужен сервер Ubuntu. В этом руководстве используется Ubuntu Server 20.04.
- На сервере установлена среда рабочего стола. В этом руководстве будет использоваться рабочий стол XFCE в Ubuntu.
- Вам понадобится SSH-клиент для удаленного входа на сервер.
- У вас должна быть учетная запись пользователя без полномочий root с правами sudo .
- Вам также потребуется клиент VNC, такой как VNC Viewer, который будет использоваться в этом руководстве.
Установка VNC-сервера Ubuntu
По умолчанию в Ubuntu не установлен VNC-сервер. Вам нужно будет сначала установить сервер Ubuntu VNC, прежде чем вы сможете получить доступ к удаленному рабочему столу вашего сервера.
TightVNC — популярный сервер VNC, известный низкими требованиями к ресурсам и высокой производительностью. Таким образом, TightVNC — хороший выбор сервера Ubuntu VNC для плавных и стабильных сеансов VNC даже при медленном интернет-соединении.
Выполните следующие действия, чтобы установить TightVNC .
1. Сначала откройте SSH-клиент и войдите на сервер Ubuntu.
2. Запустите приведенную ниже команду, чтобы убедиться, что на вашем сервере Ubuntu установлены последние списки пакетов.
sudo apt update -y
3. Теперь установите сервер TightVNC, выполнив приведенную ниже команду. sudo apt установить плотный vncserver -y
sudo apt install tightvncserver -y
Дождитесь завершения установки, и вы должны получить результат, аналогичный показанному на снимке экрана ниже.
Установка TightVNC в качестве VNC-сервера Ubuntu 4. После установки VNC-сервер не запускается автоматически. Чтобы вручную запустить сервер VNC, выполните приведенную ниже команду.
vncserver
5. При первом запуске экземпляра VNC сервер попросит вас создать пароль. Введите новый защищенный пароль и нажмите Введите . Этот пароль понадобится вам для удаленного подключения к вашему VNC-серверу с другого компьютера.
Пароль должен содержать от шести до восьми символов. Пароли длиннее восьми символов будут усечены, чтобы соответствовать максимальной длине восьми символов.
После создания пароля vncserver
попросит вас установить пароль только для просмотра. Эта опция позволяет пользователям просматривать ваш сеанс VNC без возможности его контролировать. Не ставьте В настоящее время пароль только для просмотра. Введите n
и нажмите Enter.
Если вам потребуется изменить пароль VNC позже, вы можете сделать это, выполнив команду
vncpasswd
.![]()
6. После того, как вы нажмете , введите , vncserver
запустится, и вы увидите следующий вывод. vncserver
создает сценарий запуска с именем .vnc/xstartup
в вашем домашнем каталоге.
5 901 — это порт VNC по умолчанию, также называемый портом дисплея. Последняя цифра представляет собой номер экземпляра сервера VNC. Если вам нужно запустить другой экземпляр сервера VNC, выполните команду
vncserver
и добавьте номер экземпляра.Например, чтобы запустить экземпляр сервера VNC на порту 5902 (экземпляр 2), выполните команду
vncserver :2
.
Настройка Ubuntu VNC Server Desktop Manager
На данный момент у вас есть работающий сервер Ubuntu VNC. Но прежде чем вы сможете начать его использовать, вам нужно указать серверу VNC среду рабочего стола по умолчанию, которая будет запускаться при входе в систему.
1. Прежде чем вносить какие-либо изменения, уничтожьте экземпляр сервера VNC по умолчанию, работающий на порту 5901, выполнив следующую команду. . vncserver -kill :1
Останов экземпляра сервера Ubuntu VNC
vncserver -kill :1
Если у вас запущено более одного экземпляра VNC-сервера, вы можете убить их с помощью
vncserver -kill :2
иvncserver -kill :3
и так далее.
2. Сделайте резервную копию файла конфигурации сервера VNC по умолчанию, выполнив следующую команду. Вы должны сделать резервную копию файла, если вам нужно отменить изменения.
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
3. Теперь откройте файл ~/.vnc/xstartup
для редактирования. В этом примере используется nano
в качестве текстового редактора.
nano ~/.vnc/xstartup
4. Заполните файл следующим кодом. Чтобы лучше понять код, ниже приведены краткие пояснения к каждой строке.
-
#! /bin/bash
: Эта строка сообщает системе, какой интерпретатор использовать для выполнения последующих команд. В данном случае интерпретатор Bash. -
xrdb $HOME/.Xresources
: Эта строка указывает серверу VNC прочитать.Xresources пользователя
файл (если существует). Этот файл содержит настройки, которые изменяют внешний вид графического рабочего стола, такие как графические цвета и рендеринг шрифтов. -
startxfce4 &
: Эта строка запускает среду рабочего стола XFCE. Вы можете заменить эту строку наstartkde
илиstartgnome
, если вы используете среду рабочего стола KDE или GNOME соответственно. Символи
в конце указывает, что команда должна выполняться в фоновом режиме
#!/бин/баш xrdb $HOME/.Xresources startxfce4 &
Ваш файл должен выглядеть примерно так, как показано на скриншоте ниже.
и
в конце указывает, что команда должна выполняться в фоновом режиме. 5. Затем сделайте файл xstartup
исполняемым. Приведенная ниже команда указывает системе дать владельцу файла (вам) разрешение на выполнение файла.
chmod +x ~/.vnc/xstartup
Защита доступа к серверу Ubuntu VNC
По умолчанию сервер VNC принимает входящие соединения с любого хоста. Этот параметр по умолчанию оставляет ваш VNC-сервер Ubuntu открытым для всех, кто знает ваш IP-адрес, что может представлять угрозу безопасности.
Вы можете защитить свое соединение VNC с помощью туннеля SSH. Туннель SSH создаст безопасное соединение между вашим локальным компьютером и сервером Ubuntu VNC. Таким образом, вам не нужно будет открывать новые порты в брандмауэре, чтобы разрешить подключение к экземплярам вашего VNC-сервера.
1. Сначала запустите экземпляр сервера VNC на своем сервере, выполнив приведенную ниже команду. Параметр
-localhost
привязывает экземпляр сервера VNC к петлевому интерфейсу сервера. Этот экземпляр VNC будет принимать только локальные соединения и эффективно блокировать доступ из любого места.
vncserver -localhost
2. После запуска экземпляра VNC-сервера откройте новое окно терминала на своем компьютере и установите SSH-туннель к удаленному VNC-серверу Ubuntu, выполнив следующие действия: ssh
командная строка. Чтобы лучше понять команду, обратитесь к встроенным комментариям.
# Создайте туннель SSH для сервера Ubuntu VNC ## -L : создает безопасный туннель от локального порта (59000) к удаленному порту (5901) на сервере VNC. ## -C : сжать все данные, отправляемые через туннель, для оптимизации использования полосы пропускания. ## -N : говорит ssh не выполнять никаких удаленных команд, и вы не получите оболочку. ## -l : указать имя пользователя для входа в систему. Не используйте здесь учетную запись root.
## SSHServer : замените его IP-адресом, полным доменным именем или именем хоста вашего VNC-сервера Ubuntu. сш-л 59000:localhost:5901 -C -N -l имя пользователя SSHServer
Если вы подключаетесь к серверу в первый раз, ssh
попросит вас подтвердить отпечаток хоста. Введите да
и нажмите Enter.
Введите пароль учетной записи пользователя в строке ввода пароля и нажмите Enter. На данный момент туннель SSH открыт. Не закрывайте терминал, иначе туннель SSH также прервется.
Создание туннеля SSH 3. Теперь откройте предпочитаемую программу просмотра VNC на своем компьютере. Тип localhost:59000
в текстовом поле адреса вверху и нажмите Введите .
4. Введите свой пароль VNC в запрос аутентификации и нажмите OK .
Подключение к сеансу VNCТеперь у вас будет безопасное подключение к рабочему столу VNC, как показано ниже.
Доступ к удаленному рабочему столу через VNCНастройка Ubuntu VNC Server как службы
Сервер VNC устанавливается без встроенного демона. Эта ситуация означает, что по умолчанию вам нужно запускать экземпляр сервера VNC вручную каждый раз, когда вам нужно получить доступ к удаленному рабочему столу.
Но вы можете обойти это ограничение, превратив сервер VNC в службу, которая запускается автоматически при запуске. А ниже приведены шаги, чтобы включить автозапуск сервера Ubuntu VNC.
1. Сначала завершите работающий экземпляр сервера VNC.
vncserver -kill :1
2. Запустите приведенную ниже команду, чтобы создать новый файл модуля systemd и открыть его в nano
для редактирования. Имя юнита может быть каким угодно. В этом примере имя будет atavncserver.service
.
sudo nano /etc/systemd/system/atavncserver.service
Затем скопируйте приведенный ниже код и вставьте его в текстовый редактор.
Обязательно замените каждое слово ИМЯ ПОЛЬЗОВАТЕЛЯ
своим именем пользователя.
Чтобы настроить глубину цвета и разрешение экрана, измените значения параметров -depth
и -geometry
соответственно. В этом примере глубина цвета составляет
24
(бит), а разрешение — 1280x800
.
[Единица измерения] Описание=VNC-сервер After=syslog.target network.target [Услуга] Тип = разветвление Пользователь=ИМЯ ПОЛЬЗОВАТЕЛЯ Группа=ИМЯ ПОЛЬЗОВАТЕЛЯ Рабочий каталог=/home/ИМЯ ПОЛЬЗОВАТЕЛЯ PIDFile=/home/ИМЯ ПОЛЬЗОВАТЕЛЯ/.vnc/%H:1.pid ExecStartPre=-/usr/bin/vncserver -kill :1 > /dev/null 2>&1 ExecStart=/usr/bin/vncserver -depth 24 -геометрия 1280x800 -localhost:1 ExecStop=/usr/bin/vncserver -kill :1 [Установить] WantedBy=multi-user.target
Сохраните файл, нажав Ctrl+O
→ Введите
→ Ctrl+X
.
4. Затем запустите описанную ниже перезагрузку конфигурации диспетчера systemd
. Этот шаг фактически добавляет созданную вами службу в список доступных служб. sudo systemctl daemon-reload
sudo systemctl daemon-reload
5. Теперь, когда система распознает новую службу atavncserver
, выполните приведенную ниже команду, чтобы включить эту службу.
sudo systemctl enable atavncserver.service
6. Запустите экземпляр сервера VNC как службу, выполнив эту команду.
sudo systemctl start atavncserver
7. Чтобы узнать, запущена ли служба, выполните приведенную ниже команду, чтобы проверить состояние службы. sudo systemctl status atavncserver
sudo systemctl status atavncserver
Вы должны увидеть похожее на скриншот ниже, показывающий, что статус службы активен (работает)
.
Теперь у вас есть служба Ubuntu VNC-сервера, которая автоматически запускается при запуске. И, будучи службой, теперь вы можете выполнить start
, stop
, reload
и перезапустить
с помощью команды systemctl
.
Заключение
Из этого руководства вы узнали, как установить и настроить сервер Ubuntu VNC. Вы также научились защищать свое соединение VNC с помощью туннеля SSH.