Linux安装xrdp让Windows可以用远程桌面客户端连接Linux图形界面

经常遇到给开发人员分配Linux服务器后,告诉我说,没法用远程桌面连接。。。

最近疫情影响,一直在家办公,发现Linux还有个叫xrdp的好东西,它的原理其实也不复杂,首先linux下有个rdesktop的客户端,是用来远程windows用的,既然协议知道那么就有人基于这个协议做了个服务端,它就是xrdp,当然,xrdp也没多做事情,它在本地的图形来源依然是vnc,也就是远程桌面会创建一个临时vnc服务,用于远程桌面用,而且是根据客户端请求来的分辨率自动创建的,这个非常赞!
并且这样也不用考虑让大家拷贝或安装vnc客户端的问题了,远程桌面全搞定!

废话不多说,我们开始吧。先说CentOS/Redhat上的安装方法

1
2
3
4
yum install -y epel-release
yum install -y xrdp
systemctl enable xrdp
systemctl start xrdp

然后就可以用windows的远程桌面连接了,不过这里我遇到一个bug,也就是远程桌面客户端如果设置成15位色,那么登陆之后会报错(大约是无法连接本机新创建的vnc的5910端口)改成16位色或者以上就可以了。

接下来是Debian/Ubuntu的安装方法

1
2
3
sudo apt install xrdp
sudo systemctl enable xrdp
sudo systemctl start xrdp

一般安装好之后还需要修改一下,否则可能会遇到这个错误(login failed for display 0 )

1
2
3
4
5
sudo vi /etc/X11/Xwrapper.config

allowed_users=console
改为
allowed_users=anybody

Ubuntu20.04可能还会遇到黑屏问题

1
2
3
4
sudo vi /etc/xrdp/startwm.sh
把下面两行加入文件倒数第二行test -x /etc/X11/Xsession && exec /etc/X11/Xsession前面
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR

重启xrdp服务即可生效,之后就可以用远程桌面连接Linux了。