Памятка по Xpra

Aug 21, 2024 00:53


Мдя, не зря когда-то давно в своё время Microsoft купила у Polycom-а NetMeeting и встроила во все свои продукты RDP. В мире OpenSource с удалённым доступом с графическим интерфейсом как-то всё прям очень-очень грустно. Не, у X11 конечно есть нативный Forwarding куда угодно, но оно такое, несжатый растр по сети гонять. Есть всякие поделки вокруг VNC со всеми его приколами. Есть наследники NoMachine в виде X2Go. Есть xRDP, причем как ни странно это самый перспективный инструмент (привет Microsoft-у), хоть и глюкавый. Второй по фичастости и скорости работы после него - питонописный Xpra. Тоже глюкавый шо ппц. Но вариантов, увы, не так-то и много. Всё остальное ещё хуже. Поэтому в энный раз пошел его ковырять. По результатам родилась эта памятка.
  1. Инсталлировать нужно только из дистрибутивов разработчика, а не из встроенных системных. Потому что новые версии выходят со скоростью [censored], при этом не всякий клиент подходит не ко всякому серверу. Автор, конечно, утверждает, что можно брать "любые поддерживаемые", но мы-то знаем...
  2. По факту на момент написания этого поста самая древняя версия из числа ещё юзабельных - пятая. Типа стабильная - шестая.
  3. В идеале версии клиента и сервера должны совпадать. Но этого не всегда можно добиться, особенно на каких-нибудь oldstable Debian. Поэтому иногда приходится искать клиента потухлее. Под форточки оные живут здесь. И да, зацените размер инсталлированного клиента под винду (в мегабайтах) и подЫвитесь.
  4. Клиент всё время хочет включить OpenGL Acceleration, которое есть не везде и не всегда. Поэтому если ругается, надо запускать с ключом "--opengl=no".
  5. Shadow-сессии работают только в том случае, когда второй подключающийся пытается залезть под тем же юзером / аккаунтом, что и первый. Неудобно, но херъ что сделаешь.
  6. Серверную часть имеет смысл запускать сразу с ключами "--pulseaudio=no --webcam=no --mdns=no --resize-display=1200x900". Первые три всё равно нормально не работают. А без явного указания resize клиента будет пидорасить со страшной силой.
  7. Как systemd-сервис у меня так и не получилось его пустить по-нормальному. Но можно как user-service (systemctl --user блаблабла).
  8. Когда серверная часть запускается в режиме прослушки TCP-сокета, надо явно настраивать шифрование канала. Потому что клиент не хочет авторизоваться по нешифрованному соединению, и в данном случае это не про TLS. Надо какие-то симметричные ключи куда-то там прописывать. Я так и не осилил, плюнул, сделал поверх SSH.
  9. Самое, блин, главное. Если между клиентом и сервером где-то сломан PMTU Discovery и толстые пакеты не пролезают (например, в транзите есть всякие IPSec / VPN), то клиент поверх SSH просто не подключится не выдав никакой информативной ошибки. Называется "иди и ищи". И надо колдовать со всякими TCPMSS или MTU чтобы починить.
  10. Если надо запустить рабочий стол гном "как есть" вместе со всеми менюшками и launcher-ом, то это директива "start-desktop --start-child=gnome-shell", а не "gnome-session", как почему-то написано во всех мануалах.
  11. Нарвался на капец странный глюк. По FQDN-имени клиент изо всех сил отказывался подключаться к серверу, а по IP-адресу - на здоровье, сколько угодно. Вот это меня вообще убило, но причин так и не выяснил.
Вот такая грузть-писялька. В следующий раз наверное таки всё же xrdp возьму. Что-то меня ентот xpra совсем расстраивает.

hints, трудовыебудни, памятка

Previous post Next post
Up