RDP连接Ubuntu远程桌面

之前一直用vncviewer,效果不佳,Microsoft Remote Desktop连ubuntu上的win虚机很好,多了几个工作环境,于是再度试一下用RDP连Ubuntu远程桌面。

几点注意事项

先安装xrdp: apt install xrdp

  • 踢掉ubuntu上的登录用户,例如你远程桌面用user1登录,则pkill掉user1其它会话
  • 修改一下端口,在/etx/xrdp/xrdp.ini, address=tcp://:3390,以免和已存在的windows虚机冲突
  • 修改/etc/xrdp/startwm.sh,加入下面的两个unset
bash 复制代码
if test -r /etc/profile; then
        . /etc/profile
fi

unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR

test -x /etc/X11/Xsession && exec /etc/X11/Xsession
exec /bin/sh /etc/X11/Xsession

此举防止黑屏

  • 打开防火墙端口:sudo ufw allow from any to any port 3390 proto tcp
  • 添加配置文件, vim ~/.xsessionrc
bash 复制代码
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
export XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg

声音问题

主要是安装好两个包:pulseaudio和pulseaudio-module-xrdp,后者作为前者的模块。

安装pulseaudio

直接安装: apt install pulseaudio

也可以源码安装:

bash 复制代码
sudo apt install build-essential dpkg-dev libpulse-dev
sudo apt install pulseaudio
sudo apt build-dep pulseaudio
sudo apt source pulseaudio
cd pulseaudio-XXX
sudo ./configure

安装pulseaudio-module-xrdp

检查一下/usr/lib/pulse-<版本>/modules下是否存在module-xrdp-sink.so和module-xrdp-source.so两个文件,如果没有,则

下载源码编译安装:

bash 复制代码
apt install build-essential dpkg-dev
apt install libpulse-dev
apt build-dep pulseaudio

git clone https://github.com/neutrinolabs/pulseaudio-module-xrdp.git
cd pulseaudio-module-xrdp
## scripts/install_pulseaudio_sources_apt_wrapper.sh 
./bootstrap && ./configure PULSE_DIR=你下载的pulseaudio目录路径(例:/home/linuxuser/pulseaudio-12.2.6)
make
make install

## 手工拷贝动态库到pulse下面
sudo cp module-xrdp-sink.so /usr/lib/pulse-14.2.2/modules/
sudo cp module-xrdp-source.so /usr/lib/pulse-14.2.2/modules/

## 检查
ls $(pkg-config --variable=modlibexecdir libpulse)

reboot
## 最后执行,开启声音传输:
pulseaudio -k
相关推荐
qq_2642208916 分钟前
Nginx优化与 SSL/TLS配置
运维·nginx
ZzzK,28 分钟前
JAVA虚拟机(JVM)
java·linux·jvm
Aspiresky1 小时前
浅析Linux进程信号处理机制:基本原理及应用
linux·运维·信号处理
全栈工程师修炼指南2 小时前
告别手动构建!Jenkins 与 Gitlab 完美协作,根据参数自动化触发CI/CD流水线实践
运维·ci/cd·自动化·gitlab·jenkins
ajassi20002 小时前
linux C 语言开发 (八) 进程基础
linux·运维·服务器
..过云雨2 小时前
05.【Linux系统编程】进程(冯诺依曼体系结构、进程概念、进程状态(注意僵尸和孤儿)、进程优先级、进程切换和调度)
linux·笔记·学习
matlab的学徒3 小时前
Web与Nginx网站服务(改)
linux·运维·前端·nginx·tomcat
Insist7533 小时前
prometheus安装部署与alertmanager邮箱告警
linux·运维·grafana·prometheus
BAGAE4 小时前
MODBUS 通信协议详细介绍
linux·嵌入式硬件·物联网·硬件架构·iot·嵌入式实时数据库·rtdbs
灿烂阳光g4 小时前
SELinux 策略文件编写
android·linux