xrdp远程桌面
xrdp是支持Microsoft的Remote Desktop Protocol(RDP)的服务,使用Xvnc, X11rdp 或 xorgxrdp 作为后端。
安装
Arch Linux平台xrdp通过 Arch Linux AUR 安装:
yay -S xrdp
xrdp通过systemd可以激活:
systemctl start xrdp.service systemctl start xrdp-sesman.service
如果要启动时激活,执行:
systemctl enable xrdp.service
systemctl enable xrdp-sesman.service
服务器端添加 firewalld防护墙服务 规则:
firewall-cmd --zone=public --add-service rdp
xrdp.ini
我实践发现,在使用微软RDP客户端访问xrdp服务时,有可能不能同时存储用户名和密码在客户端,而是只存储用户名,例如 huatai
,这样访问xrdp的时候,会提示访问错误:
connecting to sesman ip 127.0.0.1 port 3350
sesman connect ok
sending login info session manager, please wait...
login failed for display 0

此时确认OK以后,会弹出一个让你选择会话的窗口,选择 Xvnc
会话,然后输入用户名和密码就可以访问图形桌面:

实际上这个可选Session配置全部在服务器的 /etc/xrdp/xrdp.ini
color depth
在 /etc/xrdp/sesman.ini
中配置项 [Xvnc]
段落添加以下两项可以允许客户端以任何色彩深度连接xrdp服务:
param=-depth
param=32
然后重启服务:
systemctl restart xrdp
systemctl restart xrdp-sesman
不过,需要注意,如果已经使用过xrdp远程登陆过桌面,系统中会有一个Xvnc进程已经启动,类似如下:
Xvnc :10 -auth .Xauthority -geometry 1024x768 -depth 32 -rfbauth /home/huatai/.vnc/sesman_passwd-huatai@zcloud:10 -bs -nolisten tcp -localhost -dpi 96
需要杀掉这个进程再从客户端连接,否则xrdp认证以后连接这个桌面会因为参数不一致导致断开连接。杀掉上述进程之后再登陆,可以看到再次启动的Xvnc进程多了一个参数 -depth 32
Xvnc :10 -auth .Xauthority -geometry 1024x768 -depth 32 -rfbauth /home/huatai/.vnc/sesman_passwd-huatai@zcloud:10 -bs -nolisten tcp -localhost -dpi 96 -depth 32
xrdp客户端for macOS
微软官方提供了macOS的Remote Desktop Client,可以参考 Get started with the macOS client 从 AppStore 安装 Microsoft Remote Desktop 10 ,不过这个App需要切换到美国App市场安装。
rdp客户端for Linux
在Linux平台上有很多rdp的客户端,实际上都是基于 rdesktop 和 freerdp 软件。如果你需要轻量级的解决方案,建议直接使用 rdesktop
终端命令,实际上只需要简单的参数就可以:
rdesktop -g 1440x900 -P -z -x l -r sound:off -r clipboard:CLIPBOARD -r disk:test=/home/u -u USERNAME -p PASSWORD 192.168.1.100:3389
备注
-r disk:test=/home/u
映射本地目录到远程磁盘,方便数据共享