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
相关推荐
IT成长日记43 分钟前
【Docker基础】Dockerfile多阶段构建:Multi-stage Builds详解
运维·docker·容器·multi-stage·builds
deeper_wind4 小时前
keeplived双击热备配置
linux·运维·网络
GoldKey6 小时前
gcc 源码阅读---语法树
linux·前端·windows
不易思不逸7 小时前
Ubuntu20.04 RTX 4080 Nvidia驱动安装
运维·服务器
筱小虾米7 小时前
Docker配置国内镜像源
运维·docker·容器
黎茗Dawn8 小时前
连接new服务器注意事项
linux·python
L_autinue_Star9 小时前
从0到1实现Shell!Linux进程程序替换详解
linux·运维·服务器·c++·chrome
Ftrans9 小时前
【分享】文件摆渡系统适配医疗场景:安全与效率兼得
大数据·运维·安全
程序员JerrySUN10 小时前
Linux 文件系统实现层详解:原理、结构与驱动衔接
android·linux·运维·数据库·redis·嵌入式硬件
SAP龙哥10 小时前
日常运维问题汇总-58
运维