Подключаем 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-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.

Читайте так же:

  • Найти копирайтераНайти копирайтера Ищете копирайтинговые услуги? Вам нужно будет найти лучшего копирайтера для вашего проекта. Если вы продаете товары или услуги, вам нужны маркетинговые материалы. Вы хотите, чтобы потенциальные клиенты могли найти вас и быстро понять, кто вы и что предлагаете. Профессиональный […]
  • 4 причины, почему предпринимателям нужно обратить внимание на медиарынок Сооснователь видеоплатформы Privyet Дарко Драшкович-Идремарк Сооснователь видеоплатформы,Privyet В то время как традиционные средства массовой информации с каждым годом теряют большую часть своей аудитории и часы ежедневного просмотра, цифровые медиаканалы […]
  • WhatsApp-маркетинг: как прогревать и продавать в мессенджерах в 2021WhatsApp-маркетинг: как прогревать и продавать в мессенджерах в 2021 Описание Вебинар будет полезен маркетологам и владельцам бизнеса малого и среднего бизнеса. Узнаете, как увеличить эффективность лидогенерации и прогрева аудитории, как доводить до продажи с помощью чат-бота. А также автоматизировать ручной труд менеджеров по квалификации. Сегментации […]
  • Одноклассники запустили звуковые стикерыОдноклассники запустили звуковые стикеры Одноклассники запустили стикеры со звуком — новый формат визуального общения в личных сообщениях и комментариях. Яркие цитаты. Музыка и другие звуки помогут лучше передавать эмоции и разнообразят коммуникацию пользователей. Звуковые стикеры – очередной шаг в развитии платформы ОК для […]