Недавно решил настроить себе доступ к моему рабочему компу с Kubuntu 20.04 через rdp протокол. Выбор пал на xrdp, т.к. вроде с кедами он ведет себя вполне прилично. Однако, как обычно бывает столкнулся с несколькими подводными камнями, а точнее булыжниками. Тут опишу установку, пару правок конфигов для беспроблемного запуска и оптимизацию в конце. Итак начнем.
sudo apt install -y xrdp ;;инсталлируем
sudo sed -e 's/^new_cursors=true/new_cursors=false/g' -i /etc/xrdp/xrdp.ini ;; исправляем курсор
sudo systemctl enable xrdp
sudo systemctl restart xrdp ;; активируем и стартуем
Открываем /etc/ssh/sshd_config, в нем находим и раскоменчиваем следующие пункты:
AllowTcpForwarding yes
GatewayPorts no
X11Forwarding yes
Далее, настраиваем правила фаерволла: sudo ufw allow proto tcp from 192.168.0.0/24 to any port 3389 ;; где 192.168.0.0/24 - наша подсеть
echo "/usr/bin/startplasma-x11" > ~/.xsession ;; меняем сессию на плазму
export D=/usr/share/plasma:/usr/local/share:/usr/share:/var/lib/snapd/desktop
export C=/etc/xdg/xdg-plasma:/etc/xdg
export C=${C}:/usr/share/kubuntu-default-settings/kf5-settings
cat <<EOF > ~/.xsessionrc
export XDG_SESSION_DESKTOP=KDE
export XDG_DATA_DIRS=${D}
export XDG_CONFIG_DIRS=${C}
EOF ;; экспортируем переменные в сессию
sudo update-alternatives --config x-session-manager ;; если нужно меняем стандартный менеджер сессии
Если что-то глючит или работает не так как надо, логи находятся тут:
/var/log/xrdp.log
/var/log/xrdp-sesman.log
~/.xsession-errors
/root/.xsession-errors
Далее оптимизируем все это дело, для минимальной задержки.
Открываем /etc/xrdp/xrdp.ini
tcp_send_buffer_bytes=4194304 ;;меняем значение
# systemctl restart xrdp ;; рестартуем
Создаем /etc/sysctl.d/xrdp.conf , пишем там: net.core.wmem_max = 8388608
Теперь , т.к. анимация десктопа идет через иксы, выставляем следующие опции композитора для наибольшей производительности:
scale method: crisp
rendering backend: OpenGL 2.0
Tearing prevention: Only when cheap
Keep window thumbnail: never
Allow options to block composting: yes
Если все сделали правильно, теперь xrdp должен без особых проблем и плавненько работать.