- Удаленный рабочий стол на Ubuntu
- Подготовка системы
- Установка и настройка VNC сервера
- Если используем XFCE
- Установка
- Настройка
- Если используем Gnome
- Установка
- Настройка
- Подключаемся к удаленному рабочему столу
- Автозапуск сервиса
- Смена пароля
- xRDP для подключения из Windows
- linux-notes.org
- Установка и настройка VNC Server на Debian/Ubuntu/Linux Mint
- Делаем возможность подключения для нескольких пользователей.
- Предотвращение запуск Gnome при загрузке на сервере.
- VNC шифрование через ssh туннель
- 4 thoughts on “ Установка и настройка VNC Server на Debian/Ubuntu/Linux Mint ”
- Добавить комментарий Отменить ответ
- Установка VNC-сервера на Linux Ubuntu и CentOS
- Подготовка
- Обновление компонентов
- Ubuntu
- CentOS
- Установка окружения
- Ubuntu
- CentOS
- Установка TightVNCServer
- Ubuntu
- CentOS
- Настройка фаервола CentOS
- Настройка VNC-сервера
- Подготовка VNC для работы с окружением XFCE
- Настройка автозапуска
- Обеспечение безопасности VNC
- Настройка туннелирования трафика через SSH
- Подключение
- Windows
- Подключение к сессии VNC
Удаленный рабочий стол на Ubuntu
В статье рассказано о настройке возможности подключения к Ubuntu по удаленному рабочему столу (аналогично RDP в Windows). Примеры команд проверены на Linux Ubuntu 16.04 и 18.04.
Мы рассмотрим реализацию с помощью сервера VNC (подключиться к нашему компьютеру можно будет как с помощью клиента VNC, который доступен как для Linux, так и Windows). Также мы рассмотрим возможность использования клиента RDP из Windows, настроив xRDP.
Подготовка системы
Все действия описанные ниже мы будем выполнять с правами суперпользователя. Для этого переходим в режим sudo:
. или заходим под root:
* по умолчанию, в Ubuntu не задан пароль от root и данная команда не сработает. В этом случае сначала задаем пароль руту — passwd root.
Если используется брандмауэр, добавляем правило:
iptables -A INPUT -p tcp —dport 5901 -j ACCEPT
* в данном примере, мы разрешаем входящие соединения на порту 5901. Для работы с несколькими портами, добавляем их по аналогии.
Установка и настройка VNC сервера
Рассмотрим два варианта использования графической оболочки — xfce и gnome.
Если используем XFCE
Установка
Установку выполняем следующей командой:
apt install xfce4 xfce4-goodies tightvncserver
Задаем пароль для доступа по удаленному рабочему столу. Для этого вводим команду:
. на запрос пароля вводим его дважды.
* Если система не затребует второй раз пароль, проверьте внимательно сообщение. Сервер может выдать ошибку, если пароль будет короткий.
После будет предложено ввод пароля для гостевого доступа — можно согласиться (y) и ввести пароль или отказаться (n).
Настройка
Для начала, останавливаем экземпляр VNC сервера:
vncserver -kill :1
* экземпляр :1, по умолчанию, слушает на порту 5900+1 (5901).
Настраиваем VNC сервер:
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4
Снова запускаем vncserver:
Если используем Gnome
Установка
Установку выполняем следующей командой:
apt install ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal vnc4server
Задаем пароль для доступа по удаленному рабочему столу. Для этого вводим команду:
. на запрос пароля вводим его дважды.
* Если система не затребует второй раз пароль, проверьте внимательно сообщение. Сервер может выдать ошибку, если пароль будет короткий.
После будет предложено ввод пароля для гостевого доступа — можно согласиться (y) и ввести пароль или отказаться (n).
Настройка
Для начала, останавливаем экземпляр VNC сервера:
vncserver -kill :1
* экземпляр :1, по умолчанию, слушает на порту 5900+1 (5901).
Настраиваем VNC сервер для текущего пользователя:
#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80×24+10+10 -ls -title «$VNCDESKTOP Desktop» &
x-window-manager &
gnome-panel &
gnome-settings-daemon &
metacity &
Снова запускаем vncserver:
Подключаемся к удаленному рабочему столу
Запускаем клиент VNC. Например, в Linux — Remmina, в Windows — TightVNC Viewer или RealVNC. Вводим IP-адрес компьютера с VNC и номер порта:
Будет запрошен пароль — вводим тот, что устанавливали при настройке.
Автозапуск сервиса
Чтобы VNC сервер запускался после перезагрузки, создаем новый юнит в systemd:
[Unit]
Description=VNC server
After=syslog.target network.target
[Service]
Type=forking
User=root
PAMName=login
PIDFile=/root/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :1 > /dev/null 2>&1
ExecStart=/usr/bin/vncserver
ExecStop=/usr/bin/vncserver -kill :1
Разрешаем автозапуск сервиса:
systemctl enable vncserver
Смена пароля
Для смены пароля на подключения к VNC, вводим команду:
Система напишет, в каком файле на данный момент хранится пароль и запросит ввод нового:
Using password file /root/.vnc/passwd
Password:
Warning: password truncated to the length of 8.
Verify:
Would you like to enter a view-only password (y/n)? n
* как видим, файл для хранения пароля в данном примере — /root/.vnc/passwd; требование по минимальной длине пароля — 8 символов; также после ввода нового пароля система предложит ввод пароля на режим «только для чтения».
Если необходимо указать конкретный файл, в котором должен хранится пароль, вводим, например, такую команду:
xRDP для подключения из Windows
Если мы не хотим устанавливать на Windows никакого дополнительного программного обеспечения, а хотим использовать стандартное подключение к удаленному рабочему столу (mstsc), можно установить на Linux xRDP. Для этого вводим:
Источник
linux-notes.org
Установка и настройка VNC Server на Debian/Ubuntu/Linux Mint
Virtual Network Computing (VNC) — система для подключения к рабочему столу удаленно используя протокол RFB (англ. Remote FrameBuffer, удалённый кадровый буфер).
VNC состоит из VNC-клиента, который называется VNC viewer, он только запущен на одной ОС и можно подключаться к VNC-серверу который работает на другой операционной системе. Реализация клиентской и серверной части есть почти для всех ОС, даже для Java (которая включает J2ME). На один VNC-сервер одновременно могут быть подключены большое множество клиентов. Наиболее популярный способ использования VNC — это удалённое подключение к рабочему компьютеру из дома для технической поддержки вашего сервера. В своей статье «Установка и настройка VNC Server на Debian/Ubuntu/Linux Mint» я расскажу как это можно сделать.
Чтобы установить VNC, достаточно выполнить команду:
Вы можете использовать любого пользователя для входа в свой VNC Server, но по соображениям безопасности, я собираюсь создать VNC пользователя для моего VNC Server-а:
Устанавливаем для него пароль:
Теперь переключимся на этого пользователя (vncuser) для создания некоторых конфигурационных файлов для VNC:
После этого, запускаем VNC сервер:
После запуска VNC-сервера, вам будет предложено создать VNC пароль. Устанавливаем любой удобный для вас пароль, но не более 9 символов ( если больше, то он обрежит его).
На рисунке ниже видно как стартанул наш vnc сервер, но нам его нужно немного подредактировать:
Чтобы сделать настройку в сценарие запуска, мы должны убить сессию, что мы только что создали:
После чего нужно открыть и поправить файл конфигурации:
Измените немного конфигурацию по вашему усмотрению ( у меся я поправил разрешение экрана), мой готовый конфигурационный файл я выложил и прочитать его можно тут, чтобы скачать используйте команду:
После чего запускаем нашу сессию с разрешением экрана 1024×600:
Установка Gnome X Window для Ubuntu (на стороне клиента, можно установить и другую среду):
Вот еще моя статья как установить другую графическую оболочку:
Установка GUI на Debian/Ubuntu/Mint
PS: не забываем прописывать нужную строку в конфиг xstartup.
Если вы решите использовать другие графические интерфейсы:
Для Gnome-Desktop Environment
Для KDE-Desktop Environment
Для MATE-Desktop Environment
Для LXDE-Desktop Environment
Для Cinnamon-Desktop Environment
Для Openbox-Desktop Environment
Я собрал это все до кучи и закоментировал не нужные строки, оставил только gnome, т.к я его устанавливал. Вы можете скачать данный конфиг и отредактировать его для настройки своего VNC сервера (для своего графического интерфейса):
Я приведу пример со своим использованием, я юзаю windows 8, по этому я скачал vnc- viewer.
Использование VNC Viewer для просмотра и управления VNC-сервера с удаленного хоста.
Перед тем как использовать vnc-viewer, нужно его скачать. После чего запускаем его и вводим в поле IP адрес хоста (у меня это сделать не получилось и не знаю по чему), я использую виртуальную машину, по этому я ввел следующее:
ubuntu:1
Открылось окно и я ввел свой пароль, который я вводил (создал) немного выше. Вот и все, работает все)
После перезагрузки сервера, мы не будем иметь возможность подключиться к серверу с VNC, это потому, что команда «vncserver -geometry 1024×600» , что мы набрали выше не является постоянным. Чтобы решить эту проблему, я будем использовать отличный сценарий Джастин Buser.
Для начала создадим следующее:
Затем создайте пустой сценарий инициализации и сделайте его исполняемым:
И добавьте текст который можно найти и прочитать тут, так же можете просто его скачать и разместить у себя ( только не забудьте сделать его исполняемым):
Обновим все это:
Сейчас перезапустим наш сервер:
Если вы не можете получить доступ к VNC-сервера, то убедитесь, что вы открыли порты VNC в IPTables:
если не открыли, то открываем их:
и сохраняем все изменения:
Делаем возможность подключения для нескольких пользователей.
Создание локального пользователя, с помощью следующей команды:
Переключитесь на вновь созданного пользователя и запустить этого vncserver командой:
vncserver для дополнительного сервера
Перейдем в домашнюю директорию и отредактируем файл XStartup:
и вставляем в этот файл тоже самое что и для моего первого юзера, берем его от сюда.
Теперь откройте файл /etc/vncserver/vncservers.conf как рут пользователь:
Добавим в уже имеющийся конфиг:
Ребутим наш сервер:
Предотвращение запуск Gnome при загрузке на сервере.
Гном автоматически запускается при загрузке в Ubuntu 12.04 LTS, если мы подключить монитор к нашему серверу мы увидим, что GUI запустился и ждет чтобы мы вошли, это не очень удобно. Сейчас мы это исправим. Чтобы это предотвратить нужно отредактировать файл gdm.conf:
Нужно в этом файле конфигурации закомментировать 6 строчек:
VNC шифрование через ssh туннель
По умолчанию, VNC не является безопасным протоколом, по этому (так безопаснее) мы запустим сервер VNC только на 127.0.0.1 (локальный) и пробросим его через туннель SSH (для этого, есть варианты в Putty).
В Ubuntu нужно отредактировать:
Нужно добавить опцию «-localhost»
проксирование vnc-server на localhost
Запустите PuTTY/ Kitty, введите IP-адрес или имя хоста сервера VNC:
использование vnc через kitty
Переходим на другую вкладку, Session->Connection->SSH.
использование vnc через kitty, настройка
Через команду можно посмотреть что все работает:
После чего уже запускаем непосредственно, vnc viewer и прописываем заместо нашего реального ИП, localhost:1 (или 2). Вводим пароль и можно использовать.
Надеюсь что эта статья «Установка и настройка VNC Server на Debian/Ubuntu/Linux Mint» помогла вам и на этом я закончу ее.
4 thoughts on “ Установка и настройка VNC Server на Debian/Ubuntu/Linux Mint ”
Все настроил как тут описано, но в итоге после отключения завершается сеанс, это очень не удобно.
Как сделать что бы он не завершался
Я думаю что Вы не прописали (добавили) автозапуск vncserver-а.
# update-rc.d vncserver defaults 99
# service vncserver restart
А не подскажете, как лучше настроить сервер, для того что бы клиент мог работать на двух мониторах? Находил решение удвоить значение width в geometry (например, два монитора по 1024×800, то значение -geometry 2048×800, в фулскрин-моде ложится на два монитора). А вот если мониторы разные?
Удвоить длину наименьшего монитора.
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Источник
Установка VNC-сервера на Linux Ubuntu и CentOS
Содержание:
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
CentOS
Установка окружения
Управление системой через подключение VNC осуществляется посредством графической среды. За основу в статье будет взято окружение XFCE, стабильно работающее в связке с TightVNCServer. Чтобы установить эту оболочку со всеми дополнениями, нужно ввести следующую команду в терминал:
Ubuntu
CentOS
Установка TightVNCServer
Инсталлировать пакет TightVNCServer вместе с зависимостями можно командой:
Ubuntu
CentOS
Настройка фаервола CentOS
На серверах под управлением CentOS брандмауэр по умолчанию блокирует доступ к сети сторонним программам. Чтобы дать разрешение TightVNCServer открывать сетевые порты, понадобится ввести команду:
Теперь нужно применить изменения:
Настройка VNC-сервера
Для начала необходимо произвести «пробный» запуск TightVNCServer, чтобы программа создала конфиги, которые позже понадобятся для настройки VNC. Все файлы сохраняются в домашней папке пользователя, от имени которого запускается программа.
Запустить VNC-сервер можно следующей командой:
Далее программа попросит придумать пароль (от 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», поэтому команда составляется следующим образом:
Теперь нужно удалить старый конфигурационный файл, отвечающий за запуск графической оболочки:
И создать вместо него новый:
Откроется пустой документ, в который необходимо добавить следующий код:
Ubuntu
CentOS
Для сохранения нужно воспользоваться сочетанием клавиш «Ctrl+X», затем «Y» и подтвердить внесений изменений нажатием «Enter».
Остаётся сделать созданный файл исполняемым:
Настройка автозапуска
После перезагрузки удалённого компьютера, запуск VNC-сервера не будет выполняться самостоятельно. Это можно исправить, добавив службу автозапуска.
Для начала нужно создать скрипт, при выполнении которого будет запускаться TightVNCServer с определённым набором параметров:
Теперь в открывшийся пустой файл нужно занести следующий код:
Переменные, на которые стоит обратить внимание:
- «DISPLAY» – номер запускаемой сессии;
- «DEPTH» – глубина цвета;
- «GEOMETRY» – разрешение экрана.
Остаётся сделать файл исполняемым, чтобы скрипт стал доступен для запуска:
Теперь можно использовать следующие простые команды, чтобы управлять VNC-сервером:
Скрипт готов, но теперь нужно сделать так, чтобы запуск производился каждый раз при загрузке системы. Для этого создаётся юнит:
В создаваемый файл вносится следующий код:
В переменную «User» вводится логин пользователя Linux, от имени которого будет запускаться VNC-сервер.
Теперь нужно сохранить файл и добавить созданную службу в автозагрузку:
Для применения настроек остаётся перезапустить демон systemd и VNC-сервер следующими командами:
Базовая настройка VNC выполнена. Подключиться к сессии можно уже сейчас, но рекомендуется сначала обезопасить соединение, если VNC планируется использовать в публичной сети.
Обеспечение безопасности VNC
Использовать VNC в «голом» виде не рекомендуется по нескольким причинам:
- Отсутствие шифровки трафика.
- На сервере открыты порты, которые может атаковать злоумышленник.
- Пароль ограничен 8 символами.
Всё это делает использование VNC небезопасным. Но есть решение проблемы: туннелирование трафика через протокол SSH, который надёжнее реализован и поддерживает шифровку проходящих данных.
Настройка туннелирования трафика через SSH
Для начала нужно запретить доступ к VNC-серверу извне, чтобы исключить возможность атаки по открытому порту (5901, 5902 и т. д.). Для этого необходимо отредактировать скрипт, созданный на ранних этапах настройки TightVNCServer:
В файле заменяются строки:
«-localhost» – разрешает подключаться к порту только с самого сервера.
После сохранения скрипта необходимо перезагрузить VNC для применения изменений:
Подключение
Выполнить подключение с туннелированием трафика на Unix-системах можно с помощью встроенной консольной утилиты. Команда составляется следующим образом:
Значения, которые нужно изменить на собственные:
- «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».
Откроется окно, в котором программа запросит пароль. Для подтверждения остаётся нажать «ОК».
В итоге появится изображение рабочего стола с удалённого сервера.
Начни экономить на хостинге сейчас — 14 дней бесплатно!
Источник