Помогите довести до ума удаленный доступ.
Есть рабочий ПК на Ubuntu 20.04. Есть домашний ПК на Windows 7.
Хотелось бы иметь возможность подключения к рабочему ПК (можно к открытой сессии, но лучше с созданием новой сессии) и с возможностью адаптирования разрешения. Лучше всего, как это сделано в RDP.
Что я пробовал делать.
Вначале я попробовал воспользоваться штатной функцией — то что в десктопе Ubuntu называется Sharing. Настройки - Sharing - включить. Затем Настройки - Sharing - Screen Sharing - включить.
Но по умолчанию при этом запрашивается подтверждение — что уже неудобно. Правда можно задать использование пароля.
Впрочем главной проблемой было то, что я не нашел способа, как этот параметр включить через терминал. С помощью gsettings можно изменять разные параметры сервера Vino, но включить шаринг нельзя, это нужно делать в GUI.
И второй момент — я не нашел vnc-клиента в Windows, который бы смог подключиться к такому десктопу, так как используется неподдерживаемый формат шифрования.
Если шифрование отключить (с помощью gsettings set org.gnome.Vino require-encryption true), то подключится удалось, но вот качество было не очень — лаги и подвисания.
Затем я установил x11vnc, подключился по терминалу и выполнил DISPLAY=:0 x11vnc.
После этого удалось подключиться vnc-клиентом.
Это уже гораздо удобнее для использование — можно зайти через терминал, включить перенаправление дисплея и подключится по VNC, для разовых подключений удобно.
Но качество так же было не очень, даже на быстром интернете наблюдаются небольшие лаги.
Тем не менее, сейчас я именно этим способом и пользуюсь. Но он меня не очень устраивает и я бы хотел его улучшить.
Первое — можно ли как-то улучшить "гладкость" и отзывчивость работы?
В Windows удаленный рабочий стол работает очень комфортно, ни малейших лагов или задержек. Потому что при подключении по RDP сервер рисует прямо на rdp-дисплее клиента. А при использовании VNC по сети по всей видимости передаются растровые изображения.
Я пробовал установить xrdp и подключаться RDP-клиентом Windows — но лучше не стало, видимо xrdp просто туннелирует VNC внутри RDP-сеанса.
Возможно это никак не исправить, потому что архитектура графического интерфейса в Linux и Windows разная. Но может быть есть какие-то способы оптимизации или улучшения?
Второе — сейчас я подключаюсь к уже существующей сессии, с разрешением дисплея FHD. А на моем домашнем ПК разрешение 1280x1024 и экран приходится масштабировать — и надписи при этом плохо читаются. Ну и как я понимаю, в этот момент на экране рабочего ПК видно все, что происходит.
Я бы хотел переопределить разрешение при подключении. Лучше всего как в RDP — чтобы оно адаптировалось к разрешению родительского окна. Но если так нельзя, то хотя бы задать какое-то фиксированное разрешение — но чтобы оно отменилось после отключения VNC.
Ну и я хотел бы при подключении создавать новую сессию, чтобы мой десктоп на работе оставался заблокированным. Что-то мне подсказывает, что для этого мне нужно перенаправлять в VNC не дисплей :0, а другой дисплей — но самому разобраться не получилось.