- Linux mint xrdp настройка
- Установка RDP-сервера xrdp
- Установка x11rdp
- Добавление русской раскладки клавиатуры в xUbuntu
- exec startlxde
- Диагностика
- Ошибки xRDP сервера в Linux и их решения
- Настройка брандмауэра
- Проблема «При подключении с клиента по RDP виден чёрный пустой экран»
- Remmina RDP Client — подключение к серверу
- Различные проблемы
- Безопасность
- RDP на Debian/Ubuntu/Mint с помощью XRDP
Linux mint xrdp настройка
Рассмотрим процес установки и настройки rdp сервера (xrdp, x11rdp) на ОС linux Mint, Debian, Ubuntu, для удаленного доступа из ОС Windows стандартными средствами, через удаленный рабочий стол windows. Добавление русской раскладки клавиатуры.
RDP (Remote Desktop Protocol) — Протокол удалённого рабочего стола, ипользуется для удаленного подключения и управления к рабочим столам ОС Windows. Получил большое распространение в связи с тем, что по умолчанию присуствует во всех системах Windows, причем как серверная так и клиентская часть.
Для того чтобы подключиться из window стандартным клиентом к рабочему столу linux, необходимо чтобы на linux был запущен rdp сервер.
Установка RDP-сервера xrdp
Я установил xrdp через Центр Приложений Ubuntu, набрав в поиске xrdp и нажав кнопку установить.
Можно установить и из терминала следующей командой.
Впринципе после установки доступ к Linux машине из windows, используя стандартный клиент rdp я получил.
Надо сказать, что все работало не так, как хотелось. Подключиться через модуль sesman-X11rdp неполучилось, после авторизации клиент rdp закрывался. Зато заработало через sesman-Xvnc, правдо с переодическими тормазами, также отсуствовал в раскладке клавиатуры русский язык и доставить его было невозможно.
Выход из сложившейся ситуации был найден. Пришлось собрать x11rdp.
Установка x11rdp
Установим отдельно x11rdp (RDP сервера для Linux) следующими командами.
1.Установим следующие пакеты:
sudo apt-get install subversion gcc libice-dev pkg-config zlib1g-dev cvs autoconf libtool libssl-dev libpam0g-dev libx11-dev libxfixes-dev xfonts-base
2.Извлекаем repos/main в директорию с названием x11rdp_xorg71 в текущей директории.
sudo svn co svn://server1.xrdp.org/srv/svn/repos/main/x11rdp_xorg71
3.Создаем директорию X11rdp.
sudo mkdir /usr/local/X11rdp
4.Переходим в директорию с извлеченными компанентами x11rdp.
sudo sh buildx.sh /usr/local/X11rdp
Процедура компиляции занимает довольно много времени, у меня этот процесс длился минут 20.
6.Сделаем символьные ссылки.
sudo ln -s /usr/local/X11rdp/bin/X11rdp /usr/local/bin sudo ln -s /usr/share/fonts/X11 /usr/local/X11rdp/lib/X11/fonts
7.Устанавливаем по умолчанию подключение через модуль sesman-X11rdp в окне «login to xrdp».
Для этого правим файл /etc/xrdp/xrdp.ini и ставим на первое место секцию «[xrdp0]» с sesman-X11rdp.
[globals] bitmap_cache=yes bitmap_compression=yes port=3389 crypt_level=low channel_code=1 max_bpp=24 [xrdp0] name=sesman-X11rdp lib=libxup.so username=ask password=ask ip=127.0.0.1 port=-1 xserverbpp=24 [xrdp1] name=sesman-Xvnc lib=libvnc.so username=ask password=ask ip=127.0.0.1 port=-1 .
Теперь можно пробывать подключаться по rdp. Я завел себе отдельного пользователя специально для работы по rdp. При первом входе отсуствовал русский язык. Его нужно было добавить в настройках клавиатуры. Ниже рассмотрим как это сделать на примере xUbuntu.
Добавление русской раскладки клавиатуры в xUbuntu
Открываем «Диспечер Настроек», выбираем «Клавиатура», переходим на вкладку «Раскладка».
1.»Использовать стандартные системные параметры»: снимаем галочку.
2.»Изменить параметры раскладки» выбираем: Alt+Shift.
3.»Раскладка клавиатуры»: нажимаем «добавить», выбираем раскладку: Русская.
Для удобства добавим на панель модуль переключения раскладки клавиатуры, отображающим значок с текущим выбранным языком.
Открываем «Диспечер Настроек», выбираем «Панель», переходим на вкладку «Элементы», нажимаем «плюсик», выбираем «Раскладки Клавиатуры» и «Добавить»
На этом все, rdp сервер установлен и отлично работает под ОС Linux. Комментируем, подписываемся ну и всем пока:)
exec startlxde
Универсальный файл ~/.xinitrc для любых рабочих столов можно найти на stackoverflow (необходима установка slim).
Диагностика
Перезагружаем ПК, который выполняет роль сервера.
Проверяем с него же, что сервер Xorg запускается без ошибок:
sudo Xorg :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp
На этом этапе экран может погаснуть, если вы проверяете XRDP с того же ПК, на котором запущена начальная сессия Xorg. Нужно нажать Ctrl+Alt+F1 ввести имя и пароль, при помощи команды ps -aux | grep xrdp найти номер процесса » sudo xrdp » и завершить его командой » sudo kill «.
В текстовом выводе результата этой команды будет содержаться причина ошибки.
Если же сообщение «(EE) Cannot establish any listening sockets — Make sure an X server isn’t already running(EE)»,
нужно перезагрузить ПК и повторить диагностику.
Второй вариант проверки — перед первым подключением к серверу XRDP, завершаем текущий сеанс «Пуск» — «Выйти» — «Выйти из системы». Так как клиент RDP не сможет создать второй сеанс такого же пользователя (с ошибкой в файле ~/.xorgxrdp.10.log: «(EE) Caught signal 11 (Segmentation fault). Server aborting»).
Либо, нужно создать второго пользователя для тестирования подключения к xRDP, которым будем подключаться по протоколу RDP:
sudo useradd -m ivanov-rdp passwd ivanov-rdp
Ошибки xRDP сервера в Linux и их решения
Настройка брандмауэра
При невозможности подключения по протоколу RDP к серверу, прежде всего проверить открытие порта на FireWall:
sudo apt install nmap sudo nmap 192.168.55.100 -p 3389
где вместо 192.168.55.100 укажите IP-адрес сервера в локальной сети.
Не забываем открыть локальный порт 3389 в firewall:
Если порт открыт, то вывод:
PORT STATE SERVICE
3389/tcp open ms-wbt-server
Проблема «При подключении с клиента по RDP виден чёрный пустой экран»
На сервере не установлен пакет xorgxrdp — программная «прослойка» между xorg и rdp сервером, который отображает графику — Рабочий стол, указатель мыши и иконки.
Решение — установить на сервер пакет xorgxrdp :
sudo apt-get install xorgxrdp sudo service xrdp restart
Сеанс xRDP теперь должен работать. Пробуем подключиться!
Примечание: Пакет «xorgxrdp — Remote Desktop Protocol (RDP) modules for X.org» входит в большинство дистрибутивов Debian, а также Ubuntu 18.04 «bionic», 20.04 LTS «focal», 21.04 «hirsute», 21.10 «impish», 22.04 LTS «jammy» (вышла 21.04.2022), и производных ОС на основе DEB-пакетной базы Ubuntu (таких как Runtu, Lubuntu, Xubuntu, Kubuntu и др.), а также дистрибутивы на основе RPM: Fedora, Arch и др.. Поэтому данная инструкция должна работать с множеством версий Linux.
Remmina RDP Client — подключение к серверу
sudo apt-get install remmina remmina-plugin-rdp remmina-plugin-secret sudo reboot remmina
Добавляем подключение — тип RDP.
Если VPN не используется, то в IP адрес вводим «белый» IP-адрес домашнего роутера.
При работе через VPN IP адрес относится к внутренней (локальной, домашней) сети.
Имя и пароль — такие же как при входе «с клавиатуры» на сервере.
Нижние кнопки окна Remmina на нетбуках с разрешением экрана 1024×600 пикселей могут быть обрезаны и видны частично.
«Отменить» — «Сохранить как значения по умолчанию» — «Сохранить» — «Подключиться» — «Сохранить и подключиться»
Нажимаем крайнюю правую кнопку «Сохранить и подключиться».
Различные проблемы
Журналы ошибок в системной каталоге /var/log/:
Журналы ошибок в каталоге пользователя ~:
Просмотреть их можно командами:
sudo cat /var/log/xrdp.log sudo cat /var/log/xrdp-sesman.log sudo cat /var/log/Xorg.0.log sudo cat /var/log/Xorg.10.log sudo cat ~/.xorgxrdp.log
Если при подключении с ПК под управлением Windows к ПК под управлением Linux после ввода имени пользователя пароля виден сине-зелёный однотонный фон без текста и иконок,
или в файле XRDP.LOG многочисленные ошибки, значит подключение произошло, но не запустилась графика Xorg — скорее всего из-за старой версии OpenGL, либо прав, см. выше.
Пример ошибки на стороне клиента при попытке подключения с помощью программы MSTSC.EXE:
Сообщения об ошибка в журнале XRDP.LOG на стороне сервера:
или аналогичная [DEBUG] Closed socket 17 (AF_UNIX)
Решение — диагностика командой с рабочего стола машины-сервера:
sudo Xorg :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp
Нужно добиться отсутствия ошибок Xorg в файле /var/log/Xorg.10.log.
Если при подключении с ПК под управлением Windows виден на мгновение чёрный экран, который тут же закрывается, один из вариантов:
- неправильной имя/пароль пользователя
- неправильный скрипт ~/.xinitrc (не запустилась сессия рабочего стола). Проверьте файл ~/.xinitrc на наличие команды exec .
- пользователь, которым вы подключаетесь к ПК удалённо, имеет открытую сессию в операционной системе локально (использует компьютер в данный момент).
Безопасность
Теперь любой ПК в локальной сети сможет подключаться к вашему компьютеру по протоколу RDP. Следует установить для учётной записи пользователя сложный пароль. Если подключение к ПК из Интернет — можно дополнительно использовать VPN с шифрованием трафика.
Дата последнего редактирования 25.04.2022
RDP на Debian/Ubuntu/Mint с помощью XRDP
Надоело использовать консоль? Вы не знаете как пользоваться консолью и Вам проще использовать графическую оболочку? Выход есть и сейчас я покажу как я это делал у себя на сервере. Хочу рассказать в своей статье «RDP на Debian/Ubuntu/Mint с помощью XRDP» как я настроил RDP на Debian.
Желательно выполнить обновление всего:
# sudo apt-get update && sudo apt-get upgrade
Установим сначала дополнительное программное обеспечение:
# sudo apt-get install ubuntu-desktop
Можно ознакомиться с другими графическими оболочками в моей теме:
После того как установится xRDP, мы его запустим:
Теперь создадим пользователя под управление нашего соединения, у меня это будет пользователь XRDP:
Может такая команды и не выполниться, то нужно сделать «финт ушами», а именно запустить с параметром:
# adduser XRDP --force-badname
Даем нашему пользователю ( у меня — XRDP) права полного доступа ( рута):
Так же, зададим пароль для пользователя:
Теперь запустите «Remote Desktop Connection,» на вашей локальной машине. Можно ввести «MSTSC» перешел в Пуск -> Выполнить или вы можете найти программу в вашем меню.
В открывшееся окно вводим IP адрес нашего сервера (если кто не знает какой ИП, то выполните ifconfig), вводим пользователя и нажимаем «подключить».
У меня открылось окно, вроде бы все хорошо, а вот нет! Почитал логи, все чисто было. Оказалось нужно еще кое что добавить и немного установить. Сейчас мы этим займемся.
Была проблема в том, что если вы используете только консоль ( это же логично, зачем на серверах ставить GUI), то на машине не установлены графические оболочки.
Устанавливаем xfce4 на сервер, но перед этим всем обновимся:
# sudo apt-get update # sudo apt-get install xfce4
После установки графической среды, пропишем параметр входа в систему:
# echo xfce4-session >~/.xsession
Но т.к я юзаю пользователя XRDP, то нужно и для него это сделать:
# echo xfce4-session > /home/XRDP/.xsession
Перезапускаем саму службу:
# sudo service xrdp restart
После чего можно пробовать подключатся! Должно все работать.
Для удобства можно заюзать следующий скрипт:
# vim /etc/xrdp/start_xRDP.sh #!/bin/sh if [ -r /etc/default/locale ]; then . /etc/default/locale export LANG LANGUAGE fi #. /etc/X11/Xsession startxfce4 # or startlxde, startlubuntu, gnome-session, startkde
# chmod +x /etc/xrdp/start_xRDP.sh
PS: можно так же установить Gnome, KDE, LXDE, но это кто к чему привык. Но не забывайте прописать в файл с сессией строки запуска X. Но как по мне, Это извращение ставить графическую оболочку! Юзайте консоль, люди!