Categories: Шпаргалки

Удаленный рабочий стол на Ubuntu

Тематические термины: Linux , Ubuntu

В статье рассказано о настройке возможности подключения к Ubuntu по удаленному рабочему столу (аналогично RDP в Windows). Примеры команд проверены на Linux Ubuntu 16.04 и 18.04.

Мы рассмотрим реализацию с помощью сервера VNC (подключиться к нашему компьютеру можно будет как с помощью клиента VNC, который доступен как для Linux, так и Windows). Также мы рассмотрим возможность использования клиента RDP из Windows, настроив xRDP.

Подготовка системы

Все действия описанные ниже мы будем выполнять с правами суперпользователя. Для этого переходим в режим sudo:

sudo su

… или заходим под root:

su — 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

Задаем пароль для доступа по удаленному рабочему столу. Для этого вводим команду:

vncserver

… на запрос пароля вводим его дважды.

* Если система не затребует второй раз пароль, проверьте внимательно сообщение. Сервер может выдать ошибку, если пароль будет короткий.

После будет предложено ввод пароля для гостевого доступа — можно согласиться ( y ) и ввести пароль или отказаться ( n ).

Настройка

Для начала, останавливаем экземпляр VNC сервера:

vncserver -kill :1

* экземпляр :1 , по умолчанию, слушает на порту 5900+1 (5901).

Настраиваем VNC сервер:

vi ~/.vnc/xstartup

#!/bin/bash
xrdb $HOME/.Xresources
startxfce4

Снова запускаем vncserver:

vncserver

Если используем Gnome

Установка

Установку выполняем следующей командой:

apt install ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal vnc4server

Задаем пароль для доступа по удаленному рабочему столу. Для этого вводим команду:

vncserver

… на запрос пароля вводим его дважды.

* Если система не затребует второй раз пароль, проверьте внимательно сообщение. Сервер может выдать ошибку, если пароль будет короткий.

После будет предложено ввод пароля для гостевого доступа — можно согласиться ( y ) и ввести пароль или отказаться ( n ).

Настройка

Для начала, останавливаем экземпляр VNC сервера:

vncserver -kill :1

* экземпляр :1 , по умолчанию, слушает на порту 5900+1 (5901).

Настраиваем VNC сервер для текущего пользователя:

vi ~/.vnc/xstartup

#!/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:

vncserver

Подключаемся к удаленному рабочему столу

Запускаем клиент VNC. Например, в Linux — Remmina, в Windows — TightVNC Viewer или RealVNC . Вводим IP-адрес компьютера с VNC и номер порта:

Будет запрошен пароль — вводим тот, что устанавливали при настройке.

Автозапуск сервиса

Чтобы VNC сервер запускался после перезагрузки, создаем новый юнит в systemd:

vi /etc/systemd/system/vncserver.service

[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

[Install]
WantedBy=multi-user.target

Обновляем systemd:

systemctl daemon-reload

Разрешаем автозапуск сервиса:

systemctl enable vncserver

Смена пароля

Для смены пароля на подключения к VNC, вводим команду:

vncpasswd

Система напишет, в каком файле на данный момент хранится пароль и запросит ввод нового:

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 символов; также после ввода нового пароля система предложит ввод пароля на режим «только для чтения».

Если необходимо указать конкретный файл, в котором должен хранится пароль, вводим, например, такую команду:

vncpasswd /etc/vnc/passwd.txt

xRDP для подключения из Windows

Если мы не хотим устанавливать на Windows никакого дополнительного программного обеспечения, а хотим использовать стандартное подключение к удаленному рабочему столу (mstsc), можно установить на Linux xRDP. Для этого вводим:

apt install xfce4 xrdp

Создаем пользователя xrdp и добавляем его в группу ssl-cert:

adduser xrdp ssl-cert

* по умолчанию, сервис xrdp будет запускаться от пользователя xrdp и для доступа к системным сертификатам нужно, чтобы он был в группе ssl-cert . Сами же сертификаты используются для шифрования RDP-соединения.

Открываем файл и приводим его к виду:

vi ~/.xsession

Мы открываем конфигурационный файл для текущего пользователя. Но если нам нужно ввести настройку для другого пользователя, под которым будем подключаться по RDP, путь должен вести на его домашнюю директорию.

Например для пользователя dima:

vi /home/dima/.xsession

* как правило, домашние директории находятся в каталоге /home , но не всегда. Проверить можно командой getent passwd dima | awk -F ‘:’ ‘{print $6}’ , где dima — имя учетной записи.

Добавим строку:

xfce4-session

Разрешаем автозагрузку сервиса и перезапускаем его:

systemctl enable xrdp

systemctl restart xrdp

Если в нашей системе используется брандмауэр, не забываем добавить порт 3389:

iptables -I INPUT -p tcp —dport 3389 -j ACCEPT

iptables -I INPUT -p udp —dport 3389 -j ACCEPT

Для сохранения правил исполььзуем iptables-persistent:

apt install iptables-persistent

netfilter-persistent save

Запускаем «Подключение к удаленному рабочему столу» — вводим IP-адрес нашего сервера:

В открывшемся окне вводим логин и пароль от нашего пользователя, например:

Сменить порт xRDP

Если нам нужно, чтобы сервис работал на другом порту, открываем конфигурационный файл xRDP:

vi /etc/xrdp/xrdp.ini

Находим и редактируем опцию:

port=3390

* в данном примере мы задали порт 3390 .

Перезапускаем службу:

systemctl restart xrdp

Готово.

admin

Recent Posts

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

2 месяца ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

2 месяца ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

2 месяца ago

Что такое Zabbix

Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…

2 месяца ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

2 месяца ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

2 месяца ago