Подключаем RDP-клиента Windows к MacOS

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Привет, Хабр! Меня зовут Холодаев Алексей, я младший системный администратор в Cloud4Y. Сегодня хочу поделиться способом подключения стандартного RDP-клиента Windows к MacOS. Если интересно, ныряйте под кат.

Вы наверняка знаете, что в MacOS есть встроенный VNC сервер, к которому можно подключаться через VNC клиента. Однажды я задумался: а почему бы не использовать стандартный RDP client Windows для подключения к яблочной операционной системе? Немного погуглив, я обнаружил, что существует бесплатный RDP сервер на MacOS — xRDP. Данный сервер легко устанавливается на ОС Linux/Unix. Об установке и настройке этого сервера расскажу далее.

Установку я производил на свой макбук с MacOS Big Sur.

Для начала необходимо установить инструменты командной строки Xcode. Для этого выполняем команду в ПО терминала.

xcode-select --install

Далее установим менеджер сторонних пакетов Homebrew командой

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Установим библиотеку OpenSSL командой

brew install openssl

После установки OpenSSL присвоим переменной CPPFLAGS путь к библиотеке, чтобы компилятор смог данную библиотеку найти. Выполним команду

export CPPFLAGS="-I/usr/local/opt/openssl/include"
Установим необходимые пакеты командами
brew install automake
brew install libtool
brew install pkgconfig
brew install nasm

Установим XQuartz – программное средство системы X Window System. Скачать программу можно с официального сайта. После установки необходимо перезайти в систему.

Для удобства работы создадим отдельную папку: mkdir /Users/admin/Documents/xrdp/

Теперь включим встроенный VNC сервер. Для этого перейдём в «Системные настройки»

Далее выбираем общий доступ:

Включаем функцию «Общий экран» и переходим в настройки компьютера

Включаем опцию “любой пользователь может запросить разрешение управлять экраном” и задаём пароль в пункте “Пользователи VNC могут получить управление экраном по паролю

Теперь загрузим необходимые пакеты.

Нам требуются xRDP и xOrgRDP в формате исходного кода.

Загрузить их можно отсюда  (tar.gz архивы). После загрузки переместим данные архивы в папку, которую мы ранее создали, и извлечём их.

cp /Users/admin/Downloads/xrdp-0.9.11.tar /Users/admin/Documents/xrdp/
tar -xvf xrdp-0.9.11.tar
rm xrdp-0.9.11.tar

cp /Users/admin/Downloads/xorgxrdp-0.2.11.tar /Users/admin/Documents/xrdp/
tar -xvf xorgxrdp-0.2.11.tar
rm xorgxrdp-0.2.11.tar

Сборка xRDP

Запустим Bootstrapper и сконфигурируем сборку с помощью OpenSSL. Затем запустим make установщик.

Если вы получаете ошибку на этом шаге, то скорей всего это связано с неправильным экспортом OpenSSL CPPFLAGS.

Сборка xOrgRDP

Запустим Bootstrapper и сконфигурируем сборку так, чтоб она происходила при помощи OpenSSL. Затем запустим make установщик.

cd ../xorgxrdp-0.2.11/
./bootstrap
./configure PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig
make
sudo make install

Если вы столкнулись с ошибкой, убедитесь, что вы перезапустили сессию после установки сервера xQuartz X11. Если вы получаете ошибку /opt/X11/include/xorg/dixfontstr.h:30:10:fatal error ‘X11/fonts/libxfont2.h’ file not found, необходимо поправить файл dixfontstr.h, прописав #include “/opt/X11/fonts/libxfont2.h” вместо #include “/X11/fonts/libxfont2.h”.

xRDP сервер почти готов. Теперь необходимо настроить его. Давайте откроем файл xrdp.ini.

sudo vi /etc/xrdp/xrdp.ini

Найдём секцию в файле со всеми типами сессий.

[Xorg]
name=Xorg
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
code=20

[Xvnc]
name=Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
#xserverbpp=24
#delay_ms=2000

[vnc-any]
name=vnc-any
lib=libvnc.so
ip=ask
port=ask5900
username=na
password=ask
#pamusername=asksame
#pampassword=asksame
#pamsessionmng=127.0.0.1
#delay_ms=2000

[neutrinordp-any]
name=neutrinordp-any
lib=libxrdpneutrinordp.so
ip=ask
port=ask3389
username=ask
password=ask

Я буду подключаться через модуль Xvnc. Используем библиотеку libvnc.dylib вместо libvnc.so. Я закомментирую все модули, которые не буду использовать. Вот так будет выглядеть изменённая секция с типами сессий в файле xrdp.ini.

#[Xorg]
#name=Xorg
#lib=libxup.so
#username=ask
#password=ask
#ip=127.0.0.1
#port=-1
#code=20

[Xvnc]
name=Xvnc
lib=libvnc.dylib
username=ask
password=ask
ip=127.0.0.1
port=5900
xserverbpp=24
#delay_ms=2000

#[vnc-any]
#name=RDP to VNC Connector
#lib=libvnc.so
#ip=127.0.0.1
#port=5900
#username=ask
#password=ask
#xserverbpp=24
#pamusername=asksame
#pampassword=asksame
#pamsessionmng=127.0.0.1
#delay_ms=2000

#[neutrinordp-any]
#name=neutrinordp-any
#lib=libxrdpneutrinordp.so
#ip=ask
#port=ask3389
#username=ask
#password=ask

Примечание: В редакторе vi нажмите клавишу «i», чтобы войти в режим редактирования. Чтобы сохранить и выйти, нажмите «ESC» и введите :wq!

Теперь запустим демоны xRDP и xRDP-sesman. Они находятся по пути /usr/local/sbin/.

Выполним следующие команды:

sudo /usr/local/sbin/xrdp
sudo /usr/local/sbin/xrdp-sesman

Пробуем подключиться по RDP. Вводим логин и пароль, нажимаем ENTER.

Если у вас появилось окно авторизации MacOS, значит, всё работает правильно.

Если у вас возникают какие-либо ошибки, смотрите логи. Они находятся по пути:

/var/logs/xrdp.log

/var/logs/xrdp-sesman.log

Вот таким способом можно предоставить доступ на MAC OS по протоколу RDP. Спасибо за внимание!


Что ещё интересного есть в блоге Cloud4Y

→ История Game Genie — чит-устройства, которое всколыхнуло мир

→ Как я случайно заблокировал 10 000 телефонов в Южной Америке

→ Странные продукты Apple

→ WD-40: средство, которое может почти всё

→ Как ИИ учится рисовать аниме

Подписывайтесь на наш Telegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.

Источник: https://habr.com/ru/company/cloud4y/blog/647679/


Интересные статьи

Интересные статьи

Субботний вечер омрачен скандалом - сайт не работает, провайдер негодяй, админы - не специалисты, а сервера - решето. Вызов принят, или почему при всей нелюбви к 1С-Битри...
В Windows 10 имеется удобная функция, которой я постоянно пользуюсь - поиск в меню "Пуск". Конкретно имею ввиду возможность нажать на клавиатуре клавишу "Пуск" и сразу начать вводить, нап...
Предыстория Когда-то у меня возникла необходимость проверять наличие неотправленных сообщений в «1С-Битрикс: Управление сайтом» (далее Битрикс) и получать уведомления об этом. Пробле...
«Проводник тратит 700 мс на то, чтобы открыть контекстное меню панели задач. 75% этого времени он выполняет 114 801 операцию считывания из одного файла, средний объём считываемых данных 68 байт...
Приложения, размещенные в строке меню, уже давно известны пользователям macOS. У некоторых из этих приложений есть «обычная» часть, другие размещены только в строке меню. В этом руководстве вы н...