RDP-клиенты для Linux
RDP ( сокращение «Remote Desktop Protocol») — это проприетарный протокол для доступа к удаленному рабочему столу. По умолчанию он установлен во все современные ОС линейки Windows, однако в качестве сервера может выступать и линукс-система с графическим интерфейсом и установленным пакетом xrdp. В рамках этой статьи мы сосредоточимся на linux rdp клиентах и их настройке, а также рассмотрим основные принципы его работы.
Remote Desktop Protocol
RDP расположен на прикладном уровне сетевой модели OSI и работает на основе протокола транспортного уровня TCP. Схема его работы выглядит следующим образом:
- Устанавливается соединение с помощью TCP на транспортном уровне;
- Инициализируется сессия RDP;
- Аутентифицируется RDP-клиента и согласовываются параметры передачи данных;
- Реализуется сеанс удаленной работы: на RDP-клиент получает управление над сервером.
Сервер — это компьютер, К которому происходит удаленное подключение. RDP-клиент — приложение на компьютере, С которого происходит подключение. Во время сессии все вычислительные процессы лежат на плечах сервера. На RDP-клиент поступает графический интерфейс ОС сервера, которой RDP-клиент управляет с помощью устройств ввода. Графический интерфейс на RDP-клиент поступает в виде точной копии графического вывода ОС сервера или в виде графических примитивов (прямоугольники, круги, текст и т.п.) для экономии трафика. По умолчанию RDP использует порт 3389, но его можно поменять при необходимости.
Пример использования RDP — управление с linux удаленным рабочим столом Windows. Находясь в любой точке мира, вы можете подключиться к нему через интернет и работать, не задумываясь о производительности вашего RDP-клиента.
Изначально RDP появился в WIndows NT 4.0. По умолчанию этот протокол предустановлен во всех ОС линейки Windows. Однако реализация Linux remote desktop требует установки специального программного обеспечения.
Безопасность RDP
Для обеспечения безопасности RDP-сессии используются два метода: внутренний и внешний.
Standart RDP Security — это внутренняя подсистема безопасности. Сервер генерирует ключи RSA и сертификат открытого ключа. Во время подключения RDP клиент получает их. В случае подтверждения проводится аутентификация.
Enhanced RDP Security — это метод обеспечения безопасности с помощью внешних средств. Существуют различные способы обеспечения защиты передаваемых данных, например, протокол TLS.
Плюсы RDP
- RDP непривередлив к сети: он может работать через VPN, NAT, по TCP или UDP. Поддерживает переадресацию и т.п. Также RDP устойчив к разрывам связи;
- Для работы достаточно 300-500 кбит скорости;
- Мощный сервер позволяет запускать на слабом RDP-клиенте тяжелые приложения;
- Возможность сеанса подключения linux rdp to windows.
Минусы RDP
- Использование приложений, требовательных к пингу (времени отклика), такие, как игры или просмотр видео, может быть затруднено;
- Требование к стабильности сервера;
- Передача данных (файлов, документов) между rdp-клиентом и сервером из-за скорости интернета может быть усложнена.
Настройка RDP-сервера на Windows
Наиболее распространенный сценарий использования RDP — подключение к выделенному Windows-серверу с компьютера, работающего под другой системой, например с помощью linux-клиента.
Выгодно арендовать выделенный сервер можно на cloud.timeweb.com
Чтобы сделать удаленный доступ с клиента в принципе возможным, необходимо правильно настроить целевое устройство. Сама настройка довольно простая — все должно работать «из коробки» во всех современных Windows системах (в большинстве редакций). Как уже упоминалось, rdp клиент windows также предустановлен в большинстве современных систем.
Сначала разрешаем подключение к компьютеру через RDP. Делается это во вкладке Удаленный доступ в Свойствах системы :
Также тут можно выбрать пользователей, у которых будет доступ (по умолчанию только у администратора).
Не лишним будет проверить настройки брандмауэра, который может блокировать соединение. В некоторых системах профиль «Общий» и «Частный» для входящих подключений RDP по умолчанию выключен, и, если сервер не входит в домен, то RDP работать не будет. Поэтому переходим в Брандмауэр Windows->Разрешенные приложения и ставим необходимые галочки:
Если система находится за роутером, то возможно понадобится настройка портов. Сделать это можно через веб-интерфейс роутера в разделе Port Forwarding (зависит от модели роутера). Напомним, что RDP использует порт TCP 3389 по умолчанию.
RDP-клиенты для linux
rdesktop
Rdesktop linux — это свободный, легкий и надежный RDP-клиент (лицензия GPL), доступный для Linux, BSD и Microsoft Windows. Реализует большинство функций RDP 5: кеширование bitmap, сжатие и шифрование потоков, автоматическую аутентификацию, RemoteApp, NLA. Также поддерживает RDP 4.0, используемый в Windows NT 4.0 Terminal Server Edition и Windows 2000 Server.
Содержится в репозиториях многих дистрибутивов, так что скачать и установить ubuntu rdp client или debian rdp client можно с помощью пакетного менеджера. Например, в Ubuntu это делается командой:
sudo apt install rdesktop
Подключение и настройка происходит полностью в командной строке. Формат rdp команды:
rdesktop [опция] сервер[:порт]
- -u — логин юзера удаленной машины;
- -p — пароль юзера удаленной машины;
- -f — запуск в полноэкранном режим;
- -g — в окне с разрешением (WIDTHxHEIGHT).
Остальные ключи можно посмотреть в man .
remmina
Remmina linux — программа-клиент удаленного рабочего стола с графическим интерфейсом, написанная на GTK+. Идет под лицензией GPL. Помимо RDP, remmina работает также с протоколами VNC, NXM XDMCP, SPICE, X2Go и SSH.
Одной из главных особенностей является расширение возможностей с помощью плагинов, например добавление поддержки новых протоколов. Поэтому при базовой установке в настройках remmina вы не найдете RDP. Для этого нужно установить дополнительный плагин (пакет freerdp). После этого перезагрузите программу, и RDP станет доступным из меню.
Для добавления нового соединения нажмите выделенную кнопку:
Далее откроется окно с настройкой подключения. Здесь раскрывается еще один плюс Remmina — возможность гибкой настройки (скорость и качество отображения, фоновый рисунок, горячие клавиши, темы оформления, анимации и т.д.). Не волнуйтесь, для обычного подключения вам нужно знать лишь данные пользователя удаленной машины и IP-адрес:
Сохраняем настройку. Теперь мы можем подключаться к нужной машине в два клика из главного меню:
Если возникла необходимость запуска remmina на windows , то на официальном сайте есть соответствующий гайд .
FreeRDP
FreeRDP — форк проекта rdesktop, распространяемый под лицензией Apache. В отличие от своего прародителя, который в последний раз обновлялся в 2019 году, FreeRDP активно поддерживается создателями.
FreeRDP является терминальным клиентом. Запуск и настройка происходят полностью в командной строке. Структура команды и ключи практически такие же, как и у rdesktop, например:
xfreerdp -u USERNAME -p PASSWORD -g WIDTHxHEIGHT IP
С помощью этой команды происходит подключение к серверу по адресу IP под именем USERNAME с паролем PASSWORD с отображением рабочего стола в окне:
Apache Guacamole
Самый простой и при этом самый сложный вариант удаленного управления linux . Простой, потому что не нужно никаких программ, сервисов и клиентов — все работает прямо в браузере. Сложный, потому что для функционирования требуется один раз установить и сконфигурировать сервер.
Apache Guacamole — это клиентский шлюз для удаленного подключения, работающий на HTML5. Он позволяет использовать целый набор протоколов удаленного доступа : Telnet, SSH, VNC, RDP — через веб-интерфейс. Документация по установке и конфигурации сервиса очень внушительна, однако на просторах Интернета есть множество готовых скриптов, которые автоматически помогут сделать базовую конфигурацию.
Скачиваем скрипт установки:
wget https://git.io/fxZq5 -O guac-install.sh
После установки скрипт выдаст адрес для подключения и пароль. Чтобы подключиться к серверу Windows через RDP, в панели администрирования заходим в «Настройки», выбираем «Подключения» и создаем новое:
Так как для RDP нужно знать лишь данные пользователя на удаленной машине и IP-адрес, вводим минимально нужное количество информации:
Теперь на главной странице доступно настроенное подключение, через которое мы можем получить удаленный рабочий стол:
Заключение
RDP протокол — это удобное средство для подключения к удаленной машине под управлением Windows или Linux-системы с графическим интерфейсом. Сервер практически не требует настроек, кроме пары галочек и конфигурации брандмауэра, а клиентские программы радуют своим разнообразием.
Как подключиться к виртуальному серверу Windows по RDP из Linux?
Либо можно точно так же установить всё это через менеджер пакетов Synaptic:
После установки запускаем remmina и настраиваем подключение к удалённому серверу.
В поле “Сервер” вписываете ip-адрес вашего сервера, имя пользователя сервера и пароль, который вам выдали при создании.
Параметр “Глубина цвета” следует задать таким, чтобы соединение не тормозило. Часто возникает ошибка, если его поставить слишком большим.
Вы можете копировать фалы из этой сетевой папки в папки на сервере и обратно. Для того, чтобы файлы возможно было копировать на сервер, можно задать общую папку, в данном примере имя папки “rdpfiles”.
Не забываем сохранить подключение, с соответствующим именем.
После первого подключения, вам предложат принять сертификат. Соглашаемся с этим.
После подключения и всех настроек, можно будет управлять удалённым VPS-сервером. Подключённая папка будет доступна через проводник.
Либо, в случае, если у сервера нет графического интерфейса, то через PowerShell по адресу
Обратите внимание, что имя папки дано для примера. В вашем случае это имя может быть отличное от “rdpfiles”, но в любом случае это будет подпапка папки \\TSCLIENT .
Из обнаруженных проблем, клиента Remmina – иногда некорректно монтируется удалённая папка и сервер её не видит. Для этого необходимо полностью отключить клиент Remmina (в том числе выйти из фоновой версии программы) и перезапустить её. Тогда подключение работает корректно.